Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
83890c66
Commit
83890c66
authored
Dec 30, 2011
by
Diego Biurrun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
swscale: K&R reformatting cosmetics for header files
parent
a83f5b8a
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
157 additions
and
144 deletions
+157
-144
yuv2rgb_altivec.h
libswscale/ppc/yuv2rgb_altivec.h
+12
-7
rgb2rgb.h
libswscale/rgb2rgb.h
+15
-15
swscale.h
libswscale/swscale.h
+2
-3
swscale_internal.h
libswscale/swscale_internal.h
+128
-119
No files found.
libswscale/ppc/yuv2rgb_altivec.h
View file @
83890c66
...
@@ -25,11 +25,16 @@
...
@@ -25,11 +25,16 @@
#define SWSCALE_PPC_YUV2RGB_ALTIVEC_H
#define SWSCALE_PPC_YUV2RGB_ALTIVEC_H
#define YUV2PACKEDX_HEADER(suffix) \
#define YUV2PACKEDX_HEADER(suffix) \
void ff_yuv2 ## suffix ## _X_altivec(SwsContext *c, const int16_t *lumFilter, \
void ff_yuv2 ## suffix ## _X_altivec(SwsContext *c, \
const int16_t **lumSrc, int lumFilterSize, \
const int16_t *lumFilter, \
const int16_t *chrFilter, const int16_t **chrUSrc, \
const int16_t **lumSrc, \
const int16_t **chrVSrc, int chrFilterSize, \
int lumFilterSize, \
const int16_t **alpSrc, uint8_t *dest, \
const int16_t *chrFilter, \
const int16_t **chrUSrc, \
const int16_t **chrVSrc, \
int chrFilterSize, \
const int16_t **alpSrc, \
uint8_t *dest, \
int dstW, int dstY);
int dstW, int dstY);
YUV2PACKEDX_HEADER
(
abgr
);
YUV2PACKEDX_HEADER
(
abgr
);
...
...
libswscale/rgb2rgb.h
View file @
83890c66
...
@@ -36,32 +36,33 @@ extern void (*rgb24tobgr32)(const uint8_t *src, uint8_t *dst, int src_size);
...
@@ -36,32 +36,33 @@ extern void (*rgb24tobgr32)(const uint8_t *src, uint8_t *dst, int src_size);
extern
void
(
*
rgb24tobgr16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb24tobgr16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb24tobgr15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb24tobgr15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb32tobgr24
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb32tobgr24
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb32to16
)
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb32to16
)
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb32to15
)
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb32to15
)
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb15to16
)
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb15to16
)
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb15tobgr24
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb15tobgr24
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb15to32
)
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb15to32
)
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb16to15
)
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb16to15
)
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb16tobgr24
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb16tobgr24
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb16to32
)
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb16to32
)
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb24tobgr24
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb24tobgr24
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb24to16
)
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb24to16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb24to15
)
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb24to15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
shuffle_bytes_2103
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb32tobgr16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb32tobgr16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb32tobgr15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb32tobgr15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb24to32
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
shuffle_bytes_2103
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb32to24
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb24to32
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb32to24
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb16tobgr32
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb16tobgr32
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb16to24
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb16to24
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb16tobgr16
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb16tobgr16
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb16tobgr15
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb16tobgr15
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb15tobgr32
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb15tobgr32
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb15to24
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb15to24
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb15tobgr16
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb15tobgr16
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb15tobgr15
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb15tobgr15
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
bgr8torgb8
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
bgr8torgb8
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
shuffle_bytes_0321
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
shuffle_bytes_0321
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
shuffle_bytes_1230
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
shuffle_bytes_1230
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
...
@@ -138,7 +139,6 @@ extern void (*yvu9_to_yuy2)(const uint8_t *src1, const uint8_t *src2, const uint
...
@@ -138,7 +139,6 @@ extern void (*yvu9_to_yuy2)(const uint8_t *src1, const uint8_t *src2, const uint
int
srcStride1
,
int
srcStride2
,
int
srcStride1
,
int
srcStride2
,
int
srcStride3
,
int
dstStride
);
int
srcStride3
,
int
dstStride
);
extern
void
(
*
uyvytoyuv420
)(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
extern
void
(
*
uyvytoyuv420
)(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
int
width
,
int
height
,
int
width
,
int
height
,
int
lumStride
,
int
chromStride
,
int
srcStride
);
int
lumStride
,
int
chromStride
,
int
srcStride
);
...
...
libswscale/swscale.h
View file @
83890c66
...
@@ -132,7 +132,6 @@ const char *swscale_license(void);
...
@@ -132,7 +132,6 @@ const char *swscale_license(void);
*/
*/
const
int
*
sws_getCoefficients
(
int
colorspace
);
const
int
*
sws_getCoefficients
(
int
colorspace
);
// when used for filters they must have an odd number of elements
// when used for filters they must have an odd number of elements
// coeffs cannot be shared between vectors
// coeffs cannot be shared between vectors
typedef
struct
{
typedef
struct
{
...
@@ -232,9 +231,9 @@ struct SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat
...
@@ -232,9 +231,9 @@ struct SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat
* the destination image
* the destination image
* @return the height of the output slice
* @return the height of the output slice
*/
*/
int
sws_scale
(
struct
SwsContext
*
c
,
const
uint8_t
*
const
srcSlice
[],
int
sws_scale
(
struct
SwsContext
*
c
,
const
uint8_t
*
const
srcSlice
[],
const
int
srcStride
[],
int
srcSliceY
,
int
srcSliceH
,
const
int
srcStride
[],
int
srcSliceY
,
int
srcSliceH
,
uint8_t
*
const
dst
[],
const
int
dstStride
[]);
uint8_t
*
const
dst
[],
const
int
dstStride
[]);
/**
/**
* @param inv_table the yuv2rgb coefficients, normally ff_yuv2rgb_coeffs[x]
* @param inv_table the yuv2rgb coefficients, normally ff_yuv2rgb_coeffs[x]
...
...
libswscale/swscale_internal.h
View file @
83890c66
...
@@ -32,9 +32,9 @@
...
@@ -32,9 +32,9 @@
#include "libavutil/pixfmt.h"
#include "libavutil/pixfmt.h"
#include "libavutil/pixdesc.h"
#include "libavutil/pixdesc.h"
#define STR(s)
AV_TOSTRING(s) //
AV_STRINGIFY is too long
#define STR(s)
AV_TOSTRING(s) //
AV_STRINGIFY is too long
#define FAST_BGR2YV12 //use 7-bit instead of 15-bit coefficients
#define FAST_BGR2YV12 //
use 7-bit instead of 15-bit coefficients
#define MAX_FILTER_SIZE 256
#define MAX_FILTER_SIZE 256
...
@@ -56,10 +56,9 @@
...
@@ -56,10 +56,9 @@
struct
SwsContext
;
struct
SwsContext
;
typedef
int
(
*
SwsFunc
)(
struct
SwsContext
*
context
,
const
uint8_t
*
src
[],
typedef
int
(
*
SwsFunc
)(
struct
SwsContext
*
context
,
const
uint8_t
*
src
[],
int
srcStride
[],
int
srcSliceY
,
int
srcSliceH
,
int
srcStride
[],
int
srcSliceY
,
int
srcSliceH
,
uint8_t
*
dst
[],
int
dstStride
[]);
uint8_t
*
dst
[],
int
dstStride
[]);
/**
/**
* Write one line of horizontally scaled data to planar output
* Write one line of horizontally scaled data to planar output
...
@@ -73,7 +72,7 @@ typedef int (*SwsFunc)(struct SwsContext *context, const uint8_t* src[],
...
@@ -73,7 +72,7 @@ typedef int (*SwsFunc)(struct SwsContext *context, const uint8_t* src[],
* @param dither ordered dither array of type int16_t and size 8
* @param dither ordered dither array of type int16_t and size 8
* @param offset Dither offset
* @param offset Dither offset
*/
*/
typedef
void
(
*
yuv2planar1_fn
)
(
const
int16_t
*
src
,
uint8_t
*
dest
,
int
dstW
,
typedef
void
(
*
yuv2planar1_fn
)(
const
int16_t
*
src
,
uint8_t
*
dest
,
int
dstW
,
const
uint8_t
*
dither
,
int
offset
);
const
uint8_t
*
dither
,
int
offset
);
/**
/**
...
@@ -89,7 +88,7 @@ typedef void (*yuv2planar1_fn) (const int16_t *src, uint8_t *dest, int dstW,
...
@@ -89,7 +88,7 @@ typedef void (*yuv2planar1_fn) (const int16_t *src, uint8_t *dest, int dstW,
* @param dstW width of destination pixels
* @param dstW width of destination pixels
* @param offset Dither offset
* @param offset Dither offset
*/
*/
typedef
void
(
*
yuv2planarX_fn
)
(
const
int16_t
*
filter
,
int
filterSize
,
typedef
void
(
*
yuv2planarX_fn
)(
const
int16_t
*
filter
,
int
filterSize
,
const
int16_t
**
src
,
uint8_t
*
dest
,
int
dstW
,
const
int16_t
**
src
,
uint8_t
*
dest
,
int
dstW
,
const
uint8_t
*
dither
,
int
offset
);
const
uint8_t
*
dither
,
int
offset
);
...
@@ -108,8 +107,11 @@ typedef void (*yuv2planarX_fn) (const int16_t *filter, int filterSize,
...
@@ -108,8 +107,11 @@ typedef void (*yuv2planarX_fn) (const int16_t *filter, int filterSize,
* output, this is in uint16_t
* output, this is in uint16_t
* @param dstW width of chroma planes
* @param dstW width of chroma planes
*/
*/
typedef
void
(
*
yuv2interleavedX_fn
)
(
struct
SwsContext
*
c
,
const
int16_t
*
chrFilter
,
int
chrFilterSize
,
typedef
void
(
*
yuv2interleavedX_fn
)(
struct
SwsContext
*
c
,
const
int16_t
**
chrUSrc
,
const
int16_t
**
chrVSrc
,
const
int16_t
*
chrFilter
,
int
chrFilterSize
,
const
int16_t
**
chrUSrc
,
const
int16_t
**
chrVSrc
,
uint8_t
*
dest
,
int
dstW
);
uint8_t
*
dest
,
int
dstW
);
/**
/**
...
@@ -141,8 +143,9 @@ typedef void (*yuv2interleavedX_fn) (struct SwsContext *c, const int16_t *chrFil
...
@@ -141,8 +143,9 @@ typedef void (*yuv2interleavedX_fn) (struct SwsContext *c, const int16_t *chrFil
* but can be used to generate comfort noise using dithering
* but can be used to generate comfort noise using dithering
* for some output formats.
* for some output formats.
*/
*/
typedef
void
(
*
yuv2packed1_fn
)
(
struct
SwsContext
*
c
,
const
int16_t
*
lumSrc
,
typedef
void
(
*
yuv2packed1_fn
)(
struct
SwsContext
*
c
,
const
int16_t
*
lumSrc
,
const
int16_t
*
chrUSrc
[
2
],
const
int16_t
*
chrVSrc
[
2
],
const
int16_t
*
chrUSrc
[
2
],
const
int16_t
*
chrVSrc
[
2
],
const
int16_t
*
alpSrc
,
uint8_t
*
dest
,
const
int16_t
*
alpSrc
,
uint8_t
*
dest
,
int
dstW
,
int
uvalpha
,
int
y
);
int
dstW
,
int
uvalpha
,
int
y
);
/**
/**
...
@@ -173,9 +176,11 @@ typedef void (*yuv2packed1_fn) (struct SwsContext *c, const int16_t *lumSrc,
...
@@ -173,9 +176,11 @@ typedef void (*yuv2packed1_fn) (struct SwsContext *c, const int16_t *lumSrc,
* but can be used to generate comfort noise using dithering
* but can be used to generate comfort noise using dithering
* for some output formats.
* for some output formats.
*/
*/
typedef
void
(
*
yuv2packed2_fn
)
(
struct
SwsContext
*
c
,
const
int16_t
*
lumSrc
[
2
],
typedef
void
(
*
yuv2packed2_fn
)(
struct
SwsContext
*
c
,
const
int16_t
*
lumSrc
[
2
],
const
int16_t
*
chrUSrc
[
2
],
const
int16_t
*
chrVSrc
[
2
],
const
int16_t
*
chrUSrc
[
2
],
const
int16_t
*
alpSrc
[
2
],
uint8_t
*
dest
,
const
int16_t
*
chrVSrc
[
2
],
const
int16_t
*
alpSrc
[
2
],
uint8_t
*
dest
,
int
dstW
,
int
yalpha
,
int
uvalpha
,
int
y
);
int
dstW
,
int
yalpha
,
int
uvalpha
,
int
y
);
/**
/**
* Write one line of horizontally scaled Y/U/V/A to packed-pixel YUV/RGB
* Write one line of horizontally scaled Y/U/V/A to packed-pixel YUV/RGB
...
@@ -203,9 +208,10 @@ typedef void (*yuv2packed2_fn) (struct SwsContext *c, const int16_t *lumSrc[2],
...
@@ -203,9 +208,10 @@ typedef void (*yuv2packed2_fn) (struct SwsContext *c, const int16_t *lumSrc[2],
* but can be used to generate comfort noise using dithering
* but can be used to generate comfort noise using dithering
* or some output formats.
* or some output formats.
*/
*/
typedef
void
(
*
yuv2packedX_fn
)
(
struct
SwsContext
*
c
,
const
int16_t
*
lumFilter
,
typedef
void
(
*
yuv2packedX_fn
)(
struct
SwsContext
*
c
,
const
int16_t
*
lumFilter
,
const
int16_t
**
lumSrc
,
int
lumFilterSize
,
const
int16_t
**
lumSrc
,
int
lumFilterSize
,
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
**
chrVSrc
,
int
chrFilterSize
,
const
int16_t
**
chrVSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
uint8_t
*
dest
,
const
int16_t
**
alpSrc
,
uint8_t
*
dest
,
int
dstW
,
int
y
);
int
dstW
,
int
y
);
...
@@ -308,11 +314,11 @@ typedef struct SwsContext {
...
@@ -308,11 +314,11 @@ typedef struct SwsContext {
int
dstY
;
///< Last destination vertical line output from last slice.
int
dstY
;
///< Last destination vertical line output from last slice.
int
flags
;
///< Flags passed by the user to select scaler algorithm, optimizations, subsampling, etc...
int
flags
;
///< Flags passed by the user to select scaler algorithm, optimizations, subsampling, etc...
void
*
yuvTable
;
// pointer to the yuv->rgb table start so it can be freed()
void
*
yuvTable
;
// pointer to the yuv->rgb table start so it can be freed()
uint8_t
*
table_rV
[
256
];
uint8_t
*
table_rV
[
256
];
uint8_t
*
table_gU
[
256
];
uint8_t
*
table_gU
[
256
];
int
table_gV
[
256
];
int
table_gV
[
256
];
uint8_t
*
table_bU
[
256
];
uint8_t
*
table_bU
[
256
];
//Colorspace stuff
//Colorspace stuff
int
contrast
,
brightness
,
saturation
;
// for sws_getColorspaceDetails
int
contrast
,
brightness
,
saturation
;
// for sws_getColorspaceDetails
...
@@ -364,15 +370,15 @@ typedef struct SwsContext {
...
@@ -364,15 +370,15 @@ typedef struct SwsContext {
DECLARE_ALIGNED
(
8
,
uint64_t
,
yOffset
);
DECLARE_ALIGNED
(
8
,
uint64_t
,
yOffset
);
DECLARE_ALIGNED
(
8
,
uint64_t
,
uOffset
);
DECLARE_ALIGNED
(
8
,
uint64_t
,
uOffset
);
DECLARE_ALIGNED
(
8
,
uint64_t
,
vOffset
);
DECLARE_ALIGNED
(
8
,
uint64_t
,
vOffset
);
int32_t
lumMmxFilter
[
4
*
MAX_FILTER_SIZE
];
int32_t
lumMmxFilter
[
4
*
MAX_FILTER_SIZE
];
int32_t
chrMmxFilter
[
4
*
MAX_FILTER_SIZE
];
int32_t
chrMmxFilter
[
4
*
MAX_FILTER_SIZE
];
int
dstW
;
///< Width of destination luma/alpha planes.
int
dstW
;
///< Width of destination luma/alpha planes.
DECLARE_ALIGNED
(
8
,
uint64_t
,
esp
);
DECLARE_ALIGNED
(
8
,
uint64_t
,
esp
);
DECLARE_ALIGNED
(
8
,
uint64_t
,
vRounder
);
DECLARE_ALIGNED
(
8
,
uint64_t
,
vRounder
);
DECLARE_ALIGNED
(
8
,
uint64_t
,
u_temp
);
DECLARE_ALIGNED
(
8
,
uint64_t
,
u_temp
);
DECLARE_ALIGNED
(
8
,
uint64_t
,
v_temp
);
DECLARE_ALIGNED
(
8
,
uint64_t
,
v_temp
);
DECLARE_ALIGNED
(
8
,
uint64_t
,
y_temp
);
DECLARE_ALIGNED
(
8
,
uint64_t
,
y_temp
);
int32_t
alpMmxFilter
[
4
*
MAX_FILTER_SIZE
];
int32_t
alpMmxFilter
[
4
*
MAX_FILTER_SIZE
];
// alignment of these values is not necessary, but merely here
// alignment of these values is not necessary, but merely here
// to maintain the same offset across x8632 and x86-64. Once we
// to maintain the same offset across x8632 and x86-64. Once we
// use proper offset macros in the asm, they can be removed.
// use proper offset macros in the asm, they can be removed.
...
@@ -420,13 +426,16 @@ typedef struct SwsContext {
...
@@ -420,13 +426,16 @@ typedef struct SwsContext {
yuv2packed2_fn
yuv2packed2
;
yuv2packed2_fn
yuv2packed2
;
yuv2packedX_fn
yuv2packedX
;
yuv2packedX_fn
yuv2packedX
;
/// Unscaled conversion of luma plane to YV12 for horizontal scaler.
void
(
*
lumToYV12
)(
uint8_t
*
dst
,
const
uint8_t
*
src
,
void
(
*
lumToYV12
)(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
width
,
uint32_t
*
pal
);
///< Unscaled conversion of luma plane to YV12 for horizontal scaler.
int
width
,
uint32_t
*
pal
);
/// Unscaled conversion of alpha plane to YV12 for horizontal scaler.
void
(
*
alpToYV12
)(
uint8_t
*
dst
,
const
uint8_t
*
src
,
void
(
*
alpToYV12
)(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
width
,
uint32_t
*
pal
);
///< Unscaled conversion of alpha plane to YV12 for horizontal scaler.
int
width
,
uint32_t
*
pal
);
/// Unscaled conversion of chroma planes to YV12 for horizontal scaler.
void
(
*
chrToYV12
)(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
void
(
*
chrToYV12
)(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
width
,
uint32_t
*
pal
);
///< Unscaled conversion of chroma planes to YV12 for horizontal scaler.
int
width
,
uint32_t
*
pal
);
/**
/**
* Functions to read planar input, such as planar RGB, and convert
* Functions to read planar input, such as planar RGB, and convert
...
@@ -434,7 +443,8 @@ typedef struct SwsContext {
...
@@ -434,7 +443,8 @@ typedef struct SwsContext {
*/
*/
/** @{ */
/** @{ */
void
(
*
readLumPlanar
)(
uint8_t
*
dst
,
const
uint8_t
*
src
[
4
],
int
width
);
void
(
*
readLumPlanar
)(
uint8_t
*
dst
,
const
uint8_t
*
src
[
4
],
int
width
);
void
(
*
readChrPlanar
)(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src
[
4
],
int
width
);
void
(
*
readChrPlanar
)(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src
[
4
],
int
width
);
/** @} */
/** @} */
/**
/**
...
@@ -496,19 +506,20 @@ typedef struct SwsContext {
...
@@ -496,19 +506,20 @@ typedef struct SwsContext {
* to simplify creating SIMD code.
* to simplify creating SIMD code.
*/
*/
/** @{ */
/** @{ */
void
(
*
hyScale
)(
struct
SwsContext
*
c
,
int16_t
*
dst
,
int
dstW
,
const
uint8_t
*
src
,
void
(
*
hyScale
)(
struct
SwsContext
*
c
,
int16_t
*
dst
,
int
dstW
,
const
int16_t
*
filter
,
const
int16_t
*
filterPos
,
const
uint8_t
*
src
,
const
int16_t
*
filter
,
int
filterSize
);
const
int16_t
*
filterPos
,
int
filterSize
);
void
(
*
hcScale
)(
struct
SwsContext
*
c
,
int16_t
*
dst
,
int
dstW
,
const
uint8_t
*
src
,
void
(
*
hcScale
)(
struct
SwsContext
*
c
,
int16_t
*
dst
,
int
dstW
,
const
int16_t
*
filter
,
const
int16_t
*
filterPos
,
const
uint8_t
*
src
,
const
int16_t
*
filter
,
int
filterSize
);
const
int16_t
*
filterPos
,
int
filterSize
);
/** @} */
/** @} */
void
(
*
lumConvertRange
)(
int16_t
*
dst
,
int
width
);
///< Color range conversion function for luma plane if needed.
/// Color range conversion function for luma plane if needed.
void
(
*
chrConvertRange
)(
int16_t
*
dst1
,
int16_t
*
dst2
,
int
width
);
///< Color range conversion function for chroma planes if needed.
void
(
*
lumConvertRange
)(
int16_t
*
dst
,
int
width
);
/// Color range conversion function for chroma planes if needed.
void
(
*
chrConvertRange
)(
int16_t
*
dst1
,
int16_t
*
dst2
,
int
width
);
int
needs_hcscale
;
///< Set if there are chroma planes to be converted.
int
needs_hcscale
;
///< Set if there are chroma planes to be converted.
}
SwsContext
;
}
SwsContext
;
//FIXME check init (where 0)
//FIXME check init (where 0)
...
@@ -557,63 +568,61 @@ const char *sws_format_name(enum PixelFormat format);
...
@@ -557,63 +568,61 @@ const char *sws_format_name(enum PixelFormat format);
(!(av_pix_fmt_descriptors[x].flags & PIX_FMT_PAL) && \
(!(av_pix_fmt_descriptors[x].flags & PIX_FMT_PAL) && \
av_pix_fmt_descriptors[x].nb_components <= 2)
av_pix_fmt_descriptors[x].nb_components <= 2)
#else
#else
#define isGray(x) ( \
#define isGray(x) \
(x)==PIX_FMT_GRAY8 \
((x) == PIX_FMT_GRAY8 || \
|| (x)==PIX_FMT_Y400A \
(x) == PIX_FMT_Y400A || \
|| (x)==PIX_FMT_GRAY16BE \
(x) == PIX_FMT_GRAY16BE || \
|| (x)==PIX_FMT_GRAY16LE \
(x) == PIX_FMT_GRAY16LE)
)
#endif
#endif
#define isRGBinInt(x)
(
\
#define isRGBinInt(x)
\
(x)==PIX_FMT_RGB48BE
\
((x) == PIX_FMT_RGB48BE ||
\
|| (x)==PIX_FMT_RGB48LE
\
(x) == PIX_FMT_RGB48LE ||
\
|| (x)==PIX_FMT_RGB32
\
(x) == PIX_FMT_RGB32 ||
\
|| (x)==PIX_FMT_RGB32_1
\
(x) == PIX_FMT_RGB32_1 ||
\
|| (x)==PIX_FMT_RGB24
\
(x) == PIX_FMT_RGB24 ||
\
|| (x)==PIX_FMT_RGB565BE
\
(x) == PIX_FMT_RGB565BE ||
\
|| (x)==PIX_FMT_RGB565LE
\
(x) == PIX_FMT_RGB565LE ||
\
|| (x)==PIX_FMT_RGB555BE
\
(x) == PIX_FMT_RGB555BE ||
\
|| (x)==PIX_FMT_RGB555LE
\
(x) == PIX_FMT_RGB555LE ||
\
|| (x)==PIX_FMT_RGB444BE
\
(x) == PIX_FMT_RGB444BE ||
\
|| (x)==PIX_FMT_RGB444LE
\
(x) == PIX_FMT_RGB444LE ||
\
|| (x)==PIX_FMT_RGB8
\
(x) == PIX_FMT_RGB8 ||
\
|| (x)==PIX_FMT_RGB4
\
(x) == PIX_FMT_RGB4 ||
\
|| (x)==PIX_FMT_RGB4_BYTE
\
(x) == PIX_FMT_RGB4_BYTE ||
\
|| (x)==PIX_FMT_MONOBLACK
\
(x) == PIX_FMT_MONOBLACK ||
\
|| (x)==PIX_FMT_MONOWHITE \
(x) == PIX_FMT_MONOWHITE)
)
#define isBGRinInt(x)
(
\
#define isBGRinInt(x)
\
(x)==PIX_FMT_BGR48BE
\
((x) == PIX_FMT_BGR48BE ||
\
|| (x)==PIX_FMT_BGR48LE
\
(x) == PIX_FMT_BGR48LE ||
\
|| (x)==PIX_FMT_BGR32
\
(x) == PIX_FMT_BGR32 ||
\
|| (x)==PIX_FMT_BGR32_1
\
(x) == PIX_FMT_BGR32_1 ||
\
|| (x)==PIX_FMT_BGR24
\
(x) == PIX_FMT_BGR24 ||
\
|| (x)==PIX_FMT_BGR565BE
\
(x) == PIX_FMT_BGR565BE ||
\
|| (x)==PIX_FMT_BGR565LE
\
(x) == PIX_FMT_BGR565LE ||
\
|| (x)==PIX_FMT_BGR555BE
\
(x) == PIX_FMT_BGR555BE ||
\
|| (x)==PIX_FMT_BGR555LE
\
(x) == PIX_FMT_BGR555LE ||
\
|| (x)==PIX_FMT_BGR444BE
\
(x) == PIX_FMT_BGR444BE ||
\
|| (x)==PIX_FMT_BGR444LE
\
(x) == PIX_FMT_BGR444LE ||
\
|| (x)==PIX_FMT_BGR8
\
(x) == PIX_FMT_BGR8 ||
\
|| (x)==PIX_FMT_BGR4
\
(x) == PIX_FMT_BGR4 ||
\
|| (x)==PIX_FMT_BGR4_BYTE
\
(x) == PIX_FMT_BGR4_BYTE ||
\
|| (x)==PIX_FMT_MONOBLACK
\
(x) == PIX_FMT_MONOBLACK ||
\
|| (x)==PIX_FMT_MONOWHITE \
(x) == PIX_FMT_MONOWHITE)
)
#define isAnyRGB(x)
(
\
#define isAnyRGB(x)
\
isRGBinInt(x)
\
(isRGBinInt(x) ||
\
|| isBGRinInt(x) \
isBGRinInt(x))
)
#define isALPHA(x) \
#define isALPHA(x) \
(av_pix_fmt_descriptors[x].nb_components == 2 || \
(av_pix_fmt_descriptors[x].nb_components == 2 || \
av_pix_fmt_descriptors[x].nb_components == 4)
av_pix_fmt_descriptors[x].nb_components == 4)
#define isPacked(x)
(
\
#define isPacked(x)
\
(
av_pix_fmt_descriptors[x].nb_components >= 2 &&
\
(
(av_pix_fmt_descriptors[x].nb_components >= 2 &&
\
!(av_pix_fmt_descriptors[x].flags & PIX_FMT_PLANAR)) || \
!(av_pix_fmt_descriptors[x].flags & PIX_FMT_PLANAR)) || \
(x) == PIX_FMT_PAL8\
(x) == PIX_FMT_PAL8)
)
#define isPlanar(x) \
#define isPlanar(x) \
(av_pix_fmt_descriptors[x].nb_components >= 2 && \
(av_pix_fmt_descriptors[x].nb_components >= 2 && \
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment