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
b8e89339
Commit
b8e89339
authored
May 26, 2011
by
Anton Khirnov
Committed by
Ronald S. Bultje
May 28, 2011
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sws: replace all long with int.
Signed-off-by:
Ronald S. Bultje
<
rsbultje@gmail.com
>
parent
7d8c17b5
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
410 additions
and
410 deletions
+410
-410
internal_bfin.S
libswscale/bfin/internal_bfin.S
+4
-4
swscale_bfin.c
libswscale/bfin/swscale_bfin.c
+4
-4
colorspace-test.c
libswscale/colorspace-test.c
+1
-1
swscale_altivec_template.c
libswscale/ppc/swscale_altivec_template.c
+2
-2
swscale_template.c
libswscale/ppc/swscale_template.c
+2
-2
yuv2rgb_altivec.c
libswscale/ppc/yuv2rgb_altivec.c
+1
-1
rgb2rgb.c
libswscale/rgb2rgb.c
+74
-74
rgb2rgb.h
libswscale/rgb2rgb.h
+67
-67
rgb2rgb_template.c
libswscale/rgb2rgb_template.c
+85
-85
swscale.c
libswscale/swscale.c
+26
-26
swscale.h
libswscale/swscale.h
+2
-2
swscale_internal.h
libswscale/swscale_internal.h
+9
-9
swscale_template.c
libswscale/swscale_template.c
+26
-26
rgb2rgb_template.c
libswscale/x86/rgb2rgb_template.c
+73
-73
swscale_template.c
libswscale/x86/swscale_template.c
+34
-34
No files found.
libswscale/bfin/internal_bfin.S
View file @
b8e89339
...
@@ -466,8 +466,8 @@ DEFUN_END(yuv2rgb24_line)
...
@@ -466,8 +466,8 @@ DEFUN_END(yuv2rgb24_line)
#define ARG_srcStride 40
#define ARG_srcStride 40
DEFUN(uyvytoyv12, mL3, (const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
DEFUN(uyvytoyv12, mL3, (const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
long width, long
height,
int width, int
height,
long lumStride, long chromStride, long
srcStride)):
int lumStride, int chromStride, int
srcStride)):
link 0;
link 0;
[--sp] = (r7:4,p5:4);
[--sp] = (r7:4,p5:4);
...
@@ -539,8 +539,8 @@ DEFUN(uyvytoyv12, mL3, (const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8
...
@@ -539,8 +539,8 @@ DEFUN(uyvytoyv12, mL3, (const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8
DEFUN_END(uyvytoyv12)
DEFUN_END(uyvytoyv12)
DEFUN(yuyvtoyv12, mL3, (const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
DEFUN(yuyvtoyv12, mL3, (const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
long width, long
height,
int width, int
height,
long lumStride, long chromStride, long
srcStride)):
int lumStride, int chromStride, int
srcStride)):
link 0;
link 0;
[--sp] = (r7:4,p5:4);
[--sp] = (r7:4,p5:4);
...
...
libswscale/bfin/swscale_bfin.c
View file @
b8e89339
...
@@ -38,12 +38,12 @@
...
@@ -38,12 +38,12 @@
#endif
#endif
int
ff_bfin_uyvytoyv12
(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
int
ff_bfin_uyvytoyv12
(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
)
L1CODE
;
int
lumStride
,
int
chromStride
,
int
srcStride
)
L1CODE
;
int
ff_bfin_yuyvtoyv12
(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
int
ff_bfin_yuyvtoyv12
(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
)
L1CODE
;
int
lumStride
,
int
chromStride
,
int
srcStride
)
L1CODE
;
static
int
uyvytoyv12_unscaled
(
SwsContext
*
c
,
uint8_t
*
src
[],
int
srcStride
[],
int
srcSliceY
,
static
int
uyvytoyv12_unscaled
(
SwsContext
*
c
,
uint8_t
*
src
[],
int
srcStride
[],
int
srcSliceY
,
int
srcSliceH
,
uint8_t
*
dst
[],
int
dstStride
[])
int
srcSliceH
,
uint8_t
*
dst
[],
int
dstStride
[])
...
...
libswscale/colorspace-test.c
View file @
b8e89339
...
@@ -52,7 +52,7 @@ int main(int argc, char **argv)
...
@@ -52,7 +52,7 @@ int main(int argc, char **argv)
int
src_bpp
;
int
src_bpp
;
int
dst_bpp
;
int
dst_bpp
;
const
char
*
name
;
const
char
*
name
;
void
(
*
func
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
(
*
func
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
}
func_info
[]
=
{
}
func_info
[]
=
{
FUNC
(
2
,
2
,
rgb15to16
),
FUNC
(
2
,
2
,
rgb15to16
),
FUNC
(
2
,
3
,
rgb15to24
),
FUNC
(
2
,
3
,
rgb15to24
),
...
...
libswscale/ppc/swscale_altivec_template.c
View file @
b8e89339
...
@@ -29,13 +29,13 @@ altivec_packIntArrayToCharArray(int *val, uint8_t* dest, int dstW)
...
@@ -29,13 +29,13 @@ altivec_packIntArrayToCharArray(int *val, uint8_t* dest, int dstW)
register
int
i
;
register
int
i
;
vector
unsigned
int
altivec_vectorShiftInt19
=
vector
unsigned
int
altivec_vectorShiftInt19
=
vec_add
(
vec_splat_u32
(
10
),
vec_splat_u32
(
9
));
vec_add
(
vec_splat_u32
(
10
),
vec_splat_u32
(
9
));
if
((
unsigned
long
)
dest
%
16
)
{
if
((
unsigned
int
)
dest
%
16
)
{
/* badly aligned store, we force store alignment */
/* badly aligned store, we force store alignment */
/* and will handle load misalignment on val w/ vec_perm */
/* and will handle load misalignment on val w/ vec_perm */
vector
unsigned
char
perm1
;
vector
unsigned
char
perm1
;
vector
signed
int
v1
;
vector
signed
int
v1
;
for
(
i
=
0
;
(
i
<
dstW
)
&&
for
(
i
=
0
;
(
i
<
dstW
)
&&
(((
unsigned
long
)
dest
+
i
)
%
16
)
;
i
++
)
{
(((
unsigned
int
)
dest
+
i
)
%
16
)
;
i
++
)
{
int
t
=
val
[
i
]
>>
19
;
int
t
=
val
[
i
]
>>
19
;
dest
[
i
]
=
(
t
<
0
)
?
0
:
((
t
>
255
)
?
255
:
t
);
dest
[
i
]
=
(
t
<
0
)
?
0
:
((
t
>
255
)
?
255
:
t
);
}
}
...
...
libswscale/ppc/swscale_template.c
View file @
b8e89339
...
@@ -30,7 +30,7 @@ static inline void RENAME(yuv2yuvX)(SwsContext *c, const int16_t *lumFilter,
...
@@ -30,7 +30,7 @@ static inline void RENAME(yuv2yuvX)(SwsContext *c, const int16_t *lumFilter,
const
int16_t
**
chrVSrc
,
int
chrFilterSize
,
const
int16_t
**
chrVSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
const
int16_t
**
alpSrc
,
uint8_t
*
dest
,
uint8_t
*
uDest
,
uint8_t
*
vDest
,
uint8_t
*
dest
,
uint8_t
*
uDest
,
uint8_t
*
vDest
,
uint8_t
*
aDest
,
long
dstW
,
long
chrDstW
)
uint8_t
*
aDest
,
int
dstW
,
int
chrDstW
)
{
{
yuv2yuvX_altivec_real
(
lumFilter
,
lumSrc
,
lumFilterSize
,
yuv2yuvX_altivec_real
(
lumFilter
,
lumSrc
,
lumFilterSize
,
chrFilter
,
chrUSrc
,
chrVSrc
,
chrFilterSize
,
chrFilter
,
chrUSrc
,
chrVSrc
,
chrFilterSize
,
...
@@ -45,7 +45,7 @@ static inline void RENAME(yuv2packedX)(SwsContext *c, const int16_t *lumFilter,
...
@@ -45,7 +45,7 @@ static inline void RENAME(yuv2packedX)(SwsContext *c, const int16_t *lumFilter,
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
,
long
dstW
,
long
dstY
)
int
dstW
,
int
dstY
)
{
{
/* The following list of supported dstFormat values should
/* The following list of supported dstFormat values should
match what's found in the body of ff_yuv2packedX_altivec() */
match what's found in the body of ff_yuv2packedX_altivec() */
...
...
libswscale/ppc/yuv2rgb_altivec.c
View file @
b8e89339
...
@@ -793,7 +793,7 @@ ff_yuv2packedX_altivec(SwsContext *c, const int16_t *lumFilter,
...
@@ -793,7 +793,7 @@ ff_yuv2packedX_altivec(SwsContext *c, const int16_t *lumFilter,
vector
signed
short
RND
=
vec_splat_s16
(
1
<<
3
);
vector
signed
short
RND
=
vec_splat_s16
(
1
<<
3
);
vector
unsigned
short
SCL
=
vec_splat_u16
(
4
);
vector
unsigned
short
SCL
=
vec_splat_u16
(
4
);
DECLARE_ALIGNED
(
16
,
unsigned
long
,
scratch
)[
16
];
DECLARE_ALIGNED
(
16
,
unsigned
int
,
scratch
)[
16
];
vector
signed
short
*
YCoeffs
,
*
CCoeffs
;
vector
signed
short
*
YCoeffs
,
*
CCoeffs
;
...
...
libswscale/rgb2rgb.c
View file @
b8e89339
...
@@ -29,70 +29,70 @@
...
@@ -29,70 +29,70 @@
#include "swscale.h"
#include "swscale.h"
#include "swscale_internal.h"
#include "swscale_internal.h"
void
(
*
rgb24tobgr32
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
(
*
rgb24tobgr32
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
(
*
rgb24tobgr16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
(
*
rgb24tobgr16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
(
*
rgb24tobgr15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
(
*
rgb24tobgr15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
(
*
rgb32tobgr24
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
(
*
rgb32tobgr24
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
(
*
rgb32to16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
(
*
rgb32to16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
(
*
rgb32to15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
(
*
rgb32to15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
(
*
rgb15to16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
(
*
rgb15to16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
(
*
rgb15tobgr24
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
(
*
rgb15tobgr24
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
(
*
rgb15to32
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
(
*
rgb15to32
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
(
*
rgb16to15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
(
*
rgb16to15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
(
*
rgb16tobgr24
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
(
*
rgb16tobgr24
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
(
*
rgb16to32
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
(
*
rgb16to32
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
(
*
rgb24tobgr24
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
(
*
rgb24tobgr24
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
(
*
rgb24to16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
(
*
rgb24to16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
(
*
rgb24to15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
(
*
rgb24to15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
(
*
shuffle_bytes_2103
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
(
*
shuffle_bytes_2103
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
(
*
rgb32tobgr16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
(
*
rgb32tobgr16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
(
*
rgb32tobgr15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
(
*
rgb32tobgr15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
(
*
yv12toyuy2
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
void
(
*
yv12toyuy2
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
dstStride
);
int
lumStride
,
int
chromStride
,
int
dstStride
);
void
(
*
yv12touyvy
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
void
(
*
yv12touyvy
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
dstStride
);
int
lumStride
,
int
chromStride
,
int
dstStride
);
void
(
*
yuv422ptoyuy2
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
void
(
*
yuv422ptoyuy2
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
dstStride
);
int
lumStride
,
int
chromStride
,
int
dstStride
);
void
(
*
yuv422ptouyvy
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
void
(
*
yuv422ptouyvy
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
dstStride
);
int
lumStride
,
int
chromStride
,
int
dstStride
);
void
(
*
yuy2toyv12
)(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
void
(
*
yuy2toyv12
)(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
);
int
lumStride
,
int
chromStride
,
int
srcStride
);
void
(
*
rgb24toyv12
)(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
void
(
*
rgb24toyv12
)(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
);
int
lumStride
,
int
chromStride
,
int
srcStride
);
void
(
*
planar2x
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
width
,
long
height
,
void
(
*
planar2x
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
width
,
int
height
,
long
srcStride
,
long
dstStride
);
int
srcStride
,
int
dstStride
);
void
(
*
interleaveBytes
)(
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
uint8_t
*
dst
,
void
(
*
interleaveBytes
)(
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
uint8_t
*
dst
,
long
width
,
long
height
,
long
src1Stride
,
int
width
,
int
height
,
int
src1Stride
,
long
src2Stride
,
long
dstStride
);
int
src2Stride
,
int
dstStride
);
void
(
*
vu9_to_vu12
)(
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
void
(
*
vu9_to_vu12
)(
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
uint8_t
*
dst1
,
uint8_t
*
dst2
,
uint8_t
*
dst1
,
uint8_t
*
dst2
,
long
width
,
long
height
,
int
width
,
int
height
,
long
srcStride1
,
long
srcStride2
,
int
srcStride1
,
int
srcStride2
,
long
dstStride1
,
long
dstStride2
);
int
dstStride1
,
int
dstStride2
);
void
(
*
yvu9_to_yuy2
)(
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
const
uint8_t
*
src3
,
void
(
*
yvu9_to_yuy2
)(
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
const
uint8_t
*
src3
,
uint8_t
*
dst
,
uint8_t
*
dst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
srcStride1
,
long
srcStride2
,
int
srcStride1
,
int
srcStride2
,
long
srcStride3
,
long
dstStride
);
int
srcStride3
,
int
dstStride
);
void
(
*
uyvytoyuv420
)(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
void
(
*
uyvytoyuv420
)(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
);
int
lumStride
,
int
chromStride
,
int
srcStride
);
void
(
*
uyvytoyuv422
)(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
void
(
*
uyvytoyuv422
)(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
);
int
lumStride
,
int
chromStride
,
int
srcStride
);
void
(
*
yuyvtoyuv420
)(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
void
(
*
yuyvtoyuv420
)(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
);
int
lumStride
,
int
chromStride
,
int
srcStride
);
void
(
*
yuyvtoyuv422
)(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
void
(
*
yuyvtoyuv422
)(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
);
int
lumStride
,
int
chromStride
,
int
srcStride
);
#define RGB2YUV_SHIFT 8
#define RGB2YUV_SHIFT 8
#define BY ((int)( 0.098*(1<<RGB2YUV_SHIFT)+0.5))
#define BY ((int)( 0.098*(1<<RGB2YUV_SHIFT)+0.5))
...
@@ -123,10 +123,10 @@ void sws_rgb2rgb_init(void)
...
@@ -123,10 +123,10 @@ void sws_rgb2rgb_init(void)
rgb2rgb_init_x86
();
rgb2rgb_init_x86
();
}
}
void
rgb32to24
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
void
rgb32to24
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
long
i
;
int
i
;
long
num_pixels
=
src_size
>>
2
;
int
num_pixels
=
src_size
>>
2
;
for
(
i
=
0
;
i
<
num_pixels
;
i
++
)
{
for
(
i
=
0
;
i
<
num_pixels
;
i
++
)
{
#if HAVE_BIGENDIAN
#if HAVE_BIGENDIAN
/* RGB32 (= A,B,G,R) -> BGR24 (= B,G,R) */
/* RGB32 (= A,B,G,R) -> BGR24 (= B,G,R) */
...
@@ -141,9 +141,9 @@ void rgb32to24(const uint8_t *src, uint8_t *dst, long src_size)
...
@@ -141,9 +141,9 @@ void rgb32to24(const uint8_t *src, uint8_t *dst, long src_size)
}
}
}
}
void
rgb24to32
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
void
rgb24to32
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
long
i
;
int
i
;
for
(
i
=
0
;
3
*
i
<
src_size
;
i
++
)
{
for
(
i
=
0
;
3
*
i
<
src_size
;
i
++
)
{
#if HAVE_BIGENDIAN
#if HAVE_BIGENDIAN
/* RGB24 (= R,G,B) -> BGR32 (= A,R,G,B) */
/* RGB24 (= R,G,B) -> BGR32 (= A,R,G,B) */
...
@@ -160,7 +160,7 @@ void rgb24to32(const uint8_t *src, uint8_t *dst, long src_size)
...
@@ -160,7 +160,7 @@ void rgb24to32(const uint8_t *src, uint8_t *dst, long src_size)
}
}
}
}
void
rgb16tobgr32
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
void
rgb16tobgr32
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint16_t
*
end
;
const
uint16_t
*
end
;
uint8_t
*
d
=
dst
;
uint8_t
*
d
=
dst
;
...
@@ -183,7 +183,7 @@ void rgb16tobgr32(const uint8_t *src, uint8_t *dst, long src_size)
...
@@ -183,7 +183,7 @@ void rgb16tobgr32(const uint8_t *src, uint8_t *dst, long src_size)
}
}
}
}
void
rgb16to24
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
void
rgb16to24
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint16_t
*
end
;
const
uint16_t
*
end
;
uint8_t
*
d
=
dst
;
uint8_t
*
d
=
dst
;
...
@@ -198,10 +198,10 @@ void rgb16to24(const uint8_t *src, uint8_t *dst, long src_size)
...
@@ -198,10 +198,10 @@ void rgb16to24(const uint8_t *src, uint8_t *dst, long src_size)
}
}
}
}
void
rgb16tobgr16
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
void
rgb16tobgr16
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
long
i
;
int
i
;
long
num_pixels
=
src_size
>>
1
;
int
num_pixels
=
src_size
>>
1
;
for
(
i
=
0
;
i
<
num_pixels
;
i
++
)
{
for
(
i
=
0
;
i
<
num_pixels
;
i
++
)
{
unsigned
rgb
=
((
const
uint16_t
*
)
src
)[
i
];
unsigned
rgb
=
((
const
uint16_t
*
)
src
)[
i
];
...
@@ -209,10 +209,10 @@ void rgb16tobgr16(const uint8_t *src, uint8_t *dst, long src_size)
...
@@ -209,10 +209,10 @@ void rgb16tobgr16(const uint8_t *src, uint8_t *dst, long src_size)
}
}
}
}
void
rgb16tobgr15
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
void
rgb16tobgr15
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
long
i
;
int
i
;
long
num_pixels
=
src_size
>>
1
;
int
num_pixels
=
src_size
>>
1
;
for
(
i
=
0
;
i
<
num_pixels
;
i
++
)
{
for
(
i
=
0
;
i
<
num_pixels
;
i
++
)
{
unsigned
rgb
=
((
const
uint16_t
*
)
src
)[
i
];
unsigned
rgb
=
((
const
uint16_t
*
)
src
)[
i
];
...
@@ -220,7 +220,7 @@ void rgb16tobgr15(const uint8_t *src, uint8_t *dst, long src_size)
...
@@ -220,7 +220,7 @@ void rgb16tobgr15(const uint8_t *src, uint8_t *dst, long src_size)
}
}
}
}
void
rgb15tobgr32
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
void
rgb15tobgr32
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint16_t
*
end
;
const
uint16_t
*
end
;
uint8_t
*
d
=
dst
;
uint8_t
*
d
=
dst
;
...
@@ -243,7 +243,7 @@ void rgb15tobgr32(const uint8_t *src, uint8_t *dst, long src_size)
...
@@ -243,7 +243,7 @@ void rgb15tobgr32(const uint8_t *src, uint8_t *dst, long src_size)
}
}
}
}
void
rgb15to24
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
void
rgb15to24
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint16_t
*
end
;
const
uint16_t
*
end
;
uint8_t
*
d
=
dst
;
uint8_t
*
d
=
dst
;
...
@@ -258,10 +258,10 @@ void rgb15to24(const uint8_t *src, uint8_t *dst, long src_size)
...
@@ -258,10 +258,10 @@ void rgb15to24(const uint8_t *src, uint8_t *dst, long src_size)
}
}
}
}
void
rgb15tobgr16
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
void
rgb15tobgr16
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
long
i
;
int
i
;
long
num_pixels
=
src_size
>>
1
;
int
num_pixels
=
src_size
>>
1
;
for
(
i
=
0
;
i
<
num_pixels
;
i
++
)
{
for
(
i
=
0
;
i
<
num_pixels
;
i
++
)
{
unsigned
rgb
=
((
const
uint16_t
*
)
src
)[
i
];
unsigned
rgb
=
((
const
uint16_t
*
)
src
)[
i
];
...
@@ -269,10 +269,10 @@ void rgb15tobgr16(const uint8_t *src, uint8_t *dst, long src_size)
...
@@ -269,10 +269,10 @@ void rgb15tobgr16(const uint8_t *src, uint8_t *dst, long src_size)
}
}
}
}
void
rgb15tobgr15
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
void
rgb15tobgr15
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
long
i
;
int
i
;
long
num_pixels
=
src_size
>>
1
;
int
num_pixels
=
src_size
>>
1
;
for
(
i
=
0
;
i
<
num_pixels
;
i
++
)
{
for
(
i
=
0
;
i
<
num_pixels
;
i
++
)
{
unsigned
br
;
unsigned
br
;
...
@@ -282,10 +282,10 @@ void rgb15tobgr15(const uint8_t *src, uint8_t *dst, long src_size)
...
@@ -282,10 +282,10 @@ void rgb15tobgr15(const uint8_t *src, uint8_t *dst, long src_size)
}
}
}
}
void
bgr8torgb8
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
void
bgr8torgb8
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
long
i
;
int
i
;
long
num_pixels
=
src_size
;
int
num_pixels
=
src_size
;
for
(
i
=
0
;
i
<
num_pixels
;
i
++
)
{
for
(
i
=
0
;
i
<
num_pixels
;
i
++
)
{
unsigned
b
,
g
,
r
;
unsigned
b
,
g
,
r
;
register
uint8_t
rgb
;
register
uint8_t
rgb
;
...
@@ -298,9 +298,9 @@ void bgr8torgb8(const uint8_t *src, uint8_t *dst, long src_size)
...
@@ -298,9 +298,9 @@ void bgr8torgb8(const uint8_t *src, uint8_t *dst, long src_size)
}
}
#define DEFINE_SHUFFLE_BYTES(a, b, c, d) \
#define DEFINE_SHUFFLE_BYTES(a, b, c, d) \
void shuffle_bytes_##a##b##c##d(const uint8_t *src, uint8_t *dst,
long
src_size) \
void shuffle_bytes_##a##b##c##d(const uint8_t *src, uint8_t *dst,
int
src_size) \
{ \
{ \
long
i; \
int
i; \
\
\
for (i = 0; i < src_size; i+=4) { \
for (i = 0; i < src_size; i+=4) { \
dst[i + 0] = src[i + a]; \
dst[i + 0] = src[i + a]; \
...
...
libswscale/rgb2rgb.h
View file @
b8e89339
...
@@ -32,83 +32,83 @@
...
@@ -32,83 +32,83 @@
#include "libavutil/avutil.h"
#include "libavutil/avutil.h"
/* A full collection of RGB to RGB(BGR) converters */
/* A full collection of RGB to RGB(BGR) converters */
extern
void
(
*
rgb24tobgr32
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
extern
void
(
*
rgb24tobgr32
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
extern
void
(
*
rgb24tobgr16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
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
,
long
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
,
long
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
,
long
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
,
long
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
,
long
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
,
long
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
,
long
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
,
long
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
,
long
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
,
long
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
,
long
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
,
long
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
,
long
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
,
long
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
,
long
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
,
long
src_size
);
extern
void
(
*
rgb32tobgr15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb24to32
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
rgb24to32
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb32to24
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
rgb32to24
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb16tobgr32
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
rgb16tobgr32
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb16to24
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
rgb16to24
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb16tobgr16
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
rgb16tobgr16
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb16tobgr15
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
rgb16tobgr15
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb15tobgr32
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
rgb15tobgr32
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb15to24
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
rgb15to24
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb15tobgr16
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
rgb15tobgr16
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb15tobgr15
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
rgb15tobgr15
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
bgr8torgb8
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
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
,
long
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
,
long
src_size
);
void
shuffle_bytes_1230
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
shuffle_bytes_3012
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
shuffle_bytes_3012
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
shuffle_bytes_3210
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
);
void
shuffle_bytes_3210
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
);
void
rgb24toyv12_c
(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
uint8_t
*
udst
,
void
rgb24toyv12_c
(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
long
width
,
long
height
,
long
lumStride
,
uint8_t
*
vdst
,
int
width
,
int
height
,
int
lumStride
,
long
chromStride
,
long
srcStride
);
int
chromStride
,
int
srcStride
);
/**
/**
* Height should be a multiple of 2 and width should be a multiple of 16.
* Height should be a multiple of 2 and width should be a multiple of 16.
* (If this is a problem for anyone then tell me, and I will fix it.)
* (If this is a problem for anyone then tell me, and I will fix it.)
*/
*/
extern
void
(
*
yv12toyuy2
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
extern
void
(
*
yv12toyuy2
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
dstStride
);
int
lumStride
,
int
chromStride
,
int
dstStride
);
/**
/**
* Width should be a multiple of 16.
* Width should be a multiple of 16.
*/
*/
extern
void
(
*
yuv422ptoyuy2
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
extern
void
(
*
yuv422ptoyuy2
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
dstStride
);
int
lumStride
,
int
chromStride
,
int
dstStride
);
/**
/**
* Height should be a multiple of 2 and width should be a multiple of 16.
* Height should be a multiple of 2 and width should be a multiple of 16.
* (If this is a problem for anyone then tell me, and I will fix it.)
* (If this is a problem for anyone then tell me, and I will fix it.)
*/
*/
extern
void
(
*
yuy2toyv12
)(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
extern
void
(
*
yuy2toyv12
)(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
);
int
lumStride
,
int
chromStride
,
int
srcStride
);
/**
/**
* Height should be a multiple of 2 and width should be a multiple of 16.
* Height should be a multiple of 2 and width should be a multiple of 16.
* (If this is a problem for anyone then tell me, and I will fix it.)
* (If this is a problem for anyone then tell me, and I will fix it.)
*/
*/
extern
void
(
*
yv12touyvy
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
extern
void
(
*
yv12touyvy
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
dstStride
);
int
lumStride
,
int
chromStride
,
int
dstStride
);
/**
/**
* Width should be a multiple of 16.
* Width should be a multiple of 16.
*/
*/
extern
void
(
*
yuv422ptouyvy
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
extern
void
(
*
yuv422ptouyvy
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
dstStride
);
int
lumStride
,
int
chromStride
,
int
dstStride
);
/**
/**
* Height should be a multiple of 2 and width should be a multiple of 2.
* Height should be a multiple of 2 and width should be a multiple of 2.
...
@@ -117,40 +117,40 @@ extern void (*yuv422ptouyvy)(const uint8_t *ysrc, const uint8_t *usrc, const uin
...
@@ -117,40 +117,40 @@ extern void (*yuv422ptouyvy)(const uint8_t *ysrc, const uint8_t *usrc, const uin
* FIXME: Write high quality version.
* FIXME: Write high quality version.
*/
*/
extern
void
(
*
rgb24toyv12
)(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
extern
void
(
*
rgb24toyv12
)(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
);
int
lumStride
,
int
chromStride
,
int
srcStride
);
extern
void
(
*
planar2x
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
width
,
long
height
,
extern
void
(
*
planar2x
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
width
,
int
height
,
long
srcStride
,
long
dstStride
);
int
srcStride
,
int
dstStride
);
extern
void
(
*
interleaveBytes
)(
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
uint8_t
*
dst
,
extern
void
(
*
interleaveBytes
)(
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
uint8_t
*
dst
,
long
width
,
long
height
,
long
src1Stride
,
int
width
,
int
height
,
int
src1Stride
,
long
src2Stride
,
long
dstStride
);
int
src2Stride
,
int
dstStride
);
extern
void
(
*
vu9_to_vu12
)(
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
extern
void
(
*
vu9_to_vu12
)(
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
uint8_t
*
dst1
,
uint8_t
*
dst2
,
uint8_t
*
dst1
,
uint8_t
*
dst2
,
long
width
,
long
height
,
int
width
,
int
height
,
long
srcStride1
,
long
srcStride2
,
int
srcStride1
,
int
srcStride2
,
long
dstStride1
,
long
dstStride2
);
int
dstStride1
,
int
dstStride2
);
extern
void
(
*
yvu9_to_yuy2
)(
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
const
uint8_t
*
src3
,
extern
void
(
*
yvu9_to_yuy2
)(
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
const
uint8_t
*
src3
,
uint8_t
*
dst
,
uint8_t
*
dst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
srcStride1
,
long
srcStride2
,
int
srcStride1
,
int
srcStride2
,
long
srcStride3
,
long
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
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
);
int
lumStride
,
int
chromStride
,
int
srcStride
);
extern
void
(
*
uyvytoyuv422
)(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
extern
void
(
*
uyvytoyuv422
)(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
);
int
lumStride
,
int
chromStride
,
int
srcStride
);
extern
void
(
*
yuyvtoyuv420
)(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
extern
void
(
*
yuyvtoyuv420
)(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
);
int
lumStride
,
int
chromStride
,
int
srcStride
);
extern
void
(
*
yuyvtoyuv422
)(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
extern
void
(
*
yuyvtoyuv422
)(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
);
int
lumStride
,
int
chromStride
,
int
srcStride
);
void
sws_rgb2rgb_init
(
void
);
void
sws_rgb2rgb_init
(
void
);
...
...
libswscale/rgb2rgb_template.c
View file @
b8e89339
...
@@ -26,7 +26,7 @@
...
@@ -26,7 +26,7 @@
#include <stddef.h>
#include <stddef.h>
static
inline
void
rgb24tobgr32_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
rgb24tobgr32_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
uint8_t
*
dest
=
dst
;
uint8_t
*
dest
=
dst
;
const
uint8_t
*
s
=
src
;
const
uint8_t
*
s
=
src
;
...
@@ -50,7 +50,7 @@ static inline void rgb24tobgr32_c(const uint8_t *src, uint8_t *dst, long src_siz
...
@@ -50,7 +50,7 @@ static inline void rgb24tobgr32_c(const uint8_t *src, uint8_t *dst, long src_siz
}
}
}
}
static
inline
void
rgb32tobgr24_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
rgb32tobgr24_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
uint8_t
*
dest
=
dst
;
uint8_t
*
dest
=
dst
;
const
uint8_t
*
s
=
src
;
const
uint8_t
*
s
=
src
;
...
@@ -81,7 +81,7 @@ static inline void rgb32tobgr24_c(const uint8_t *src, uint8_t *dst, long src_siz
...
@@ -81,7 +81,7 @@ static inline void rgb32tobgr24_c(const uint8_t *src, uint8_t *dst, long src_siz
MMX2, 3DNOW optimization by Nick Kurshev
MMX2, 3DNOW optimization by Nick Kurshev
32-bit C version, and and&add trick by Michael Niedermayer
32-bit C version, and and&add trick by Michael Niedermayer
*/
*/
static
inline
void
rgb15to16_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
rgb15to16_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
register
const
uint8_t
*
s
=
src
;
register
const
uint8_t
*
s
=
src
;
register
uint8_t
*
d
=
dst
;
register
uint8_t
*
d
=
dst
;
...
@@ -101,7 +101,7 @@ static inline void rgb15to16_c(const uint8_t *src, uint8_t *dst, long src_size)
...
@@ -101,7 +101,7 @@ static inline void rgb15to16_c(const uint8_t *src, uint8_t *dst, long src_size)
}
}
}
}
static
inline
void
rgb16to15_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
rgb16to15_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
register
const
uint8_t
*
s
=
src
;
register
const
uint8_t
*
s
=
src
;
register
uint8_t
*
d
=
dst
;
register
uint8_t
*
d
=
dst
;
...
@@ -122,7 +122,7 @@ static inline void rgb16to15_c(const uint8_t *src, uint8_t *dst, long src_size)
...
@@ -122,7 +122,7 @@ static inline void rgb16to15_c(const uint8_t *src, uint8_t *dst, long src_size)
}
}
}
}
static
inline
void
rgb32to16_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
rgb32to16_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint8_t
*
s
=
src
;
const
uint8_t
*
s
=
src
;
const
uint8_t
*
end
;
const
uint8_t
*
end
;
...
@@ -135,7 +135,7 @@ static inline void rgb32to16_c(const uint8_t *src, uint8_t *dst, long src_size)
...
@@ -135,7 +135,7 @@ static inline void rgb32to16_c(const uint8_t *src, uint8_t *dst, long src_size)
}
}
}
}
static
inline
void
rgb32tobgr16_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
rgb32tobgr16_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint8_t
*
s
=
src
;
const
uint8_t
*
s
=
src
;
const
uint8_t
*
end
;
const
uint8_t
*
end
;
...
@@ -147,7 +147,7 @@ static inline void rgb32tobgr16_c(const uint8_t *src, uint8_t *dst, long src_siz
...
@@ -147,7 +147,7 @@ static inline void rgb32tobgr16_c(const uint8_t *src, uint8_t *dst, long src_siz
}
}
}
}
static
inline
void
rgb32to15_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
rgb32to15_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint8_t
*
s
=
src
;
const
uint8_t
*
s
=
src
;
const
uint8_t
*
end
;
const
uint8_t
*
end
;
...
@@ -159,7 +159,7 @@ static inline void rgb32to15_c(const uint8_t *src, uint8_t *dst, long src_size)
...
@@ -159,7 +159,7 @@ static inline void rgb32to15_c(const uint8_t *src, uint8_t *dst, long src_size)
}
}
}
}
static
inline
void
rgb32tobgr15_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
rgb32tobgr15_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint8_t
*
s
=
src
;
const
uint8_t
*
s
=
src
;
const
uint8_t
*
end
;
const
uint8_t
*
end
;
...
@@ -171,7 +171,7 @@ static inline void rgb32tobgr15_c(const uint8_t *src, uint8_t *dst, long src_siz
...
@@ -171,7 +171,7 @@ static inline void rgb32tobgr15_c(const uint8_t *src, uint8_t *dst, long src_siz
}
}
}
}
static
inline
void
rgb24tobgr16_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
rgb24tobgr16_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint8_t
*
s
=
src
;
const
uint8_t
*
s
=
src
;
const
uint8_t
*
end
;
const
uint8_t
*
end
;
...
@@ -185,7 +185,7 @@ static inline void rgb24tobgr16_c(const uint8_t *src, uint8_t *dst, long src_siz
...
@@ -185,7 +185,7 @@ static inline void rgb24tobgr16_c(const uint8_t *src, uint8_t *dst, long src_siz
}
}
}
}
static
inline
void
rgb24to16_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
rgb24to16_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint8_t
*
s
=
src
;
const
uint8_t
*
s
=
src
;
const
uint8_t
*
end
;
const
uint8_t
*
end
;
...
@@ -199,7 +199,7 @@ static inline void rgb24to16_c(const uint8_t *src, uint8_t *dst, long src_size)
...
@@ -199,7 +199,7 @@ static inline void rgb24to16_c(const uint8_t *src, uint8_t *dst, long src_size)
}
}
}
}
static
inline
void
rgb24tobgr15_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
rgb24tobgr15_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint8_t
*
s
=
src
;
const
uint8_t
*
s
=
src
;
const
uint8_t
*
end
;
const
uint8_t
*
end
;
...
@@ -213,7 +213,7 @@ static inline void rgb24tobgr15_c(const uint8_t *src, uint8_t *dst, long src_siz
...
@@ -213,7 +213,7 @@ static inline void rgb24tobgr15_c(const uint8_t *src, uint8_t *dst, long src_siz
}
}
}
}
static
inline
void
rgb24to15_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
rgb24to15_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint8_t
*
s
=
src
;
const
uint8_t
*
s
=
src
;
const
uint8_t
*
end
;
const
uint8_t
*
end
;
...
@@ -248,7 +248,7 @@ static inline void rgb24to15_c(const uint8_t *src, uint8_t *dst, long src_size)
...
@@ -248,7 +248,7 @@ static inline void rgb24to15_c(const uint8_t *src, uint8_t *dst, long src_size)
|
|
original bits
original bits
*/
*/
static
inline
void
rgb15tobgr24_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
rgb15tobgr24_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint16_t
*
end
;
const
uint16_t
*
end
;
uint8_t
*
d
=
dst
;
uint8_t
*
d
=
dst
;
...
@@ -263,7 +263,7 @@ static inline void rgb15tobgr24_c(const uint8_t *src, uint8_t *dst, long src_siz
...
@@ -263,7 +263,7 @@ static inline void rgb15tobgr24_c(const uint8_t *src, uint8_t *dst, long src_siz
}
}
}
}
static
inline
void
rgb16tobgr24_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
rgb16tobgr24_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint16_t
*
end
;
const
uint16_t
*
end
;
uint8_t
*
d
=
(
uint8_t
*
)
dst
;
uint8_t
*
d
=
(
uint8_t
*
)
dst
;
...
@@ -278,7 +278,7 @@ static inline void rgb16tobgr24_c(const uint8_t *src, uint8_t *dst, long src_siz
...
@@ -278,7 +278,7 @@ static inline void rgb16tobgr24_c(const uint8_t *src, uint8_t *dst, long src_siz
}
}
}
}
static
inline
void
rgb15to32_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
rgb15to32_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint16_t
*
end
;
const
uint16_t
*
end
;
uint8_t
*
d
=
dst
;
uint8_t
*
d
=
dst
;
...
@@ -301,7 +301,7 @@ static inline void rgb15to32_c(const uint8_t *src, uint8_t *dst, long src_size)
...
@@ -301,7 +301,7 @@ static inline void rgb15to32_c(const uint8_t *src, uint8_t *dst, long src_size)
}
}
}
}
static
inline
void
rgb16to32_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
rgb16to32_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint16_t
*
end
;
const
uint16_t
*
end
;
uint8_t
*
d
=
dst
;
uint8_t
*
d
=
dst
;
...
@@ -324,7 +324,7 @@ static inline void rgb16to32_c(const uint8_t *src, uint8_t *dst, long src_size)
...
@@ -324,7 +324,7 @@ static inline void rgb16to32_c(const uint8_t *src, uint8_t *dst, long src_size)
}
}
}
}
static
inline
void
shuffle_bytes_2103_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
shuffle_bytes_2103_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
int
idx
=
15
-
src_size
;
int
idx
=
15
-
src_size
;
const
uint8_t
*
s
=
src
-
idx
;
const
uint8_t
*
s
=
src
-
idx
;
...
@@ -336,7 +336,7 @@ static inline void shuffle_bytes_2103_c(const uint8_t *src, uint8_t *dst, long s
...
@@ -336,7 +336,7 @@ static inline void shuffle_bytes_2103_c(const uint8_t *src, uint8_t *dst, long s
}
}
}
}
static
inline
void
rgb24tobgr24_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
rgb24tobgr24_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
unsigned
i
;
unsigned
i
;
for
(
i
=
0
;
i
<
src_size
;
i
+=
3
)
{
for
(
i
=
0
;
i
<
src_size
;
i
+=
3
)
{
...
@@ -350,11 +350,11 @@ static inline void rgb24tobgr24_c(const uint8_t *src, uint8_t *dst, long src_siz
...
@@ -350,11 +350,11 @@ static inline void rgb24tobgr24_c(const uint8_t *src, uint8_t *dst, long src_siz
static
inline
void
yuvPlanartoyuy2_c
(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
static
inline
void
yuvPlanartoyuy2_c
(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
int
lumStride
,
int
chromStride
,
long
dstStride
,
long
vertLumPerChroma
)
int
dstStride
,
int
vertLumPerChroma
)
{
{
long
y
;
int
y
;
const
int
chromWidth
=
width
>>
1
;
const
int
chromWidth
=
width
>>
1
;
for
(
y
=
0
;
y
<
height
;
y
++
)
{
for
(
y
=
0
;
y
<
height
;
y
++
)
{
#if HAVE_FAST_64BIT
#if HAVE_FAST_64BIT
...
@@ -404,9 +404,9 @@ static inline void yuvPlanartoyuy2_c(const uint8_t *ysrc, const uint8_t *usrc,
...
@@ -404,9 +404,9 @@ static inline void yuvPlanartoyuy2_c(const uint8_t *ysrc, const uint8_t *usrc,
*/
*/
static
inline
void
yv12toyuy2_c
(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
static
inline
void
yv12toyuy2_c
(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
int
lumStride
,
int
chromStride
,
long
dstStride
)
int
dstStride
)
{
{
//FIXME interpolate chroma
//FIXME interpolate chroma
yuvPlanartoyuy2_c
(
ysrc
,
usrc
,
vsrc
,
dst
,
width
,
height
,
lumStride
,
yuvPlanartoyuy2_c
(
ysrc
,
usrc
,
vsrc
,
dst
,
width
,
height
,
lumStride
,
...
@@ -415,11 +415,11 @@ static inline void yv12toyuy2_c(const uint8_t *ysrc, const uint8_t *usrc,
...
@@ -415,11 +415,11 @@ static inline void yv12toyuy2_c(const uint8_t *ysrc, const uint8_t *usrc,
static
inline
void
yuvPlanartouyvy_c
(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
static
inline
void
yuvPlanartouyvy_c
(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
int
lumStride
,
int
chromStride
,
long
dstStride
,
long
vertLumPerChroma
)
int
dstStride
,
int
vertLumPerChroma
)
{
{
long
y
;
int
y
;
const
int
chromWidth
=
width
>>
1
;
const
int
chromWidth
=
width
>>
1
;
for
(
y
=
0
;
y
<
height
;
y
++
)
{
for
(
y
=
0
;
y
<
height
;
y
++
)
{
#if HAVE_FAST_64BIT
#if HAVE_FAST_64BIT
...
@@ -469,9 +469,9 @@ static inline void yuvPlanartouyvy_c(const uint8_t *ysrc, const uint8_t *usrc,
...
@@ -469,9 +469,9 @@ static inline void yuvPlanartouyvy_c(const uint8_t *ysrc, const uint8_t *usrc,
*/
*/
static
inline
void
yv12touyvy_c
(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
static
inline
void
yv12touyvy_c
(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
int
lumStride
,
int
chromStride
,
long
dstStride
)
int
dstStride
)
{
{
//FIXME interpolate chroma
//FIXME interpolate chroma
yuvPlanartouyvy_c
(
ysrc
,
usrc
,
vsrc
,
dst
,
width
,
height
,
lumStride
,
yuvPlanartouyvy_c
(
ysrc
,
usrc
,
vsrc
,
dst
,
width
,
height
,
lumStride
,
...
@@ -483,9 +483,9 @@ static inline void yv12touyvy_c(const uint8_t *ysrc, const uint8_t *usrc,
...
@@ -483,9 +483,9 @@ static inline void yv12touyvy_c(const uint8_t *ysrc, const uint8_t *usrc,
*/
*/
static
inline
void
yuv422ptouyvy_c
(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
static
inline
void
yuv422ptouyvy_c
(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
int
lumStride
,
int
chromStride
,
long
dstStride
)
int
dstStride
)
{
{
yuvPlanartouyvy_c
(
ysrc
,
usrc
,
vsrc
,
dst
,
width
,
height
,
lumStride
,
yuvPlanartouyvy_c
(
ysrc
,
usrc
,
vsrc
,
dst
,
width
,
height
,
lumStride
,
chromStride
,
dstStride
,
1
);
chromStride
,
dstStride
,
1
);
...
@@ -496,9 +496,9 @@ static inline void yuv422ptouyvy_c(const uint8_t *ysrc, const uint8_t *usrc,
...
@@ -496,9 +496,9 @@ static inline void yuv422ptouyvy_c(const uint8_t *ysrc, const uint8_t *usrc,
*/
*/
static
inline
void
yuv422ptoyuy2_c
(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
static
inline
void
yuv422ptoyuy2_c
(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
int
lumStride
,
int
chromStride
,
long
dstStride
)
int
dstStride
)
{
{
yuvPlanartoyuy2_c
(
ysrc
,
usrc
,
vsrc
,
dst
,
width
,
height
,
lumStride
,
yuvPlanartoyuy2_c
(
ysrc
,
usrc
,
vsrc
,
dst
,
width
,
height
,
lumStride
,
chromStride
,
dstStride
,
1
);
chromStride
,
dstStride
,
1
);
...
@@ -510,14 +510,14 @@ static inline void yuv422ptoyuy2_c(const uint8_t *ysrc, const uint8_t *usrc,
...
@@ -510,14 +510,14 @@ static inline void yuv422ptoyuy2_c(const uint8_t *ysrc, const uint8_t *usrc,
*/
*/
static
inline
void
yuy2toyv12_c
(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
static
inline
void
yuy2toyv12_c
(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
int
lumStride
,
int
chromStride
,
long
srcStride
)
int
srcStride
)
{
{
long
y
;
int
y
;
const
int
chromWidth
=
width
>>
1
;
const
int
chromWidth
=
width
>>
1
;
for
(
y
=
0
;
y
<
height
;
y
+=
2
)
{
for
(
y
=
0
;
y
<
height
;
y
+=
2
)
{
long
i
;
int
i
;
for
(
i
=
0
;
i
<
chromWidth
;
i
++
)
{
for
(
i
=
0
;
i
<
chromWidth
;
i
++
)
{
ydst
[
2
*
i
+
0
]
=
src
[
4
*
i
+
0
];
ydst
[
2
*
i
+
0
]
=
src
[
4
*
i
+
0
];
udst
[
i
]
=
src
[
4
*
i
+
1
];
udst
[
i
]
=
src
[
4
*
i
+
1
];
...
@@ -538,10 +538,10 @@ static inline void yuy2toyv12_c(const uint8_t *src, uint8_t *ydst,
...
@@ -538,10 +538,10 @@ static inline void yuy2toyv12_c(const uint8_t *src, uint8_t *ydst,
}
}
}
}
static
inline
void
planar2x_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
srcWidth
,
static
inline
void
planar2x_c
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
srcWidth
,
long
srcHeight
,
long
srcStride
,
long
dstStride
)
int
srcHeight
,
int
srcStride
,
int
dstStride
)
{
{
long
x
,
y
;
int
x
,
y
;
dst
[
0
]
=
src
[
0
];
dst
[
0
]
=
src
[
0
];
...
@@ -598,14 +598,14 @@ static inline void planar2x_c(const uint8_t *src, uint8_t *dst, long srcWidth,
...
@@ -598,14 +598,14 @@ static inline void planar2x_c(const uint8_t *src, uint8_t *dst, long srcWidth,
*/
*/
static
inline
void
uyvytoyv12_c
(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
static
inline
void
uyvytoyv12_c
(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
int
lumStride
,
int
chromStride
,
long
srcStride
)
int
srcStride
)
{
{
long
y
;
int
y
;
const
int
chromWidth
=
width
>>
1
;
const
int
chromWidth
=
width
>>
1
;
for
(
y
=
0
;
y
<
height
;
y
+=
2
)
{
for
(
y
=
0
;
y
<
height
;
y
+=
2
)
{
long
i
;
int
i
;
for
(
i
=
0
;
i
<
chromWidth
;
i
++
)
{
for
(
i
=
0
;
i
<
chromWidth
;
i
++
)
{
udst
[
i
]
=
src
[
4
*
i
+
0
];
udst
[
i
]
=
src
[
4
*
i
+
0
];
ydst
[
2
*
i
+
0
]
=
src
[
4
*
i
+
1
];
ydst
[
2
*
i
+
0
]
=
src
[
4
*
i
+
1
];
...
@@ -634,14 +634,14 @@ static inline void uyvytoyv12_c(const uint8_t *src, uint8_t *ydst,
...
@@ -634,14 +634,14 @@ static inline void uyvytoyv12_c(const uint8_t *src, uint8_t *ydst,
* FIXME: Write HQ version.
* FIXME: Write HQ version.
*/
*/
void
rgb24toyv12_c
(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
uint8_t
*
udst
,
void
rgb24toyv12_c
(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
long
width
,
long
height
,
long
lumStride
,
uint8_t
*
vdst
,
int
width
,
int
height
,
int
lumStride
,
long
chromStride
,
long
srcStride
)
int
chromStride
,
int
srcStride
)
{
{
long
y
;
int
y
;
const
int
chromWidth
=
width
>>
1
;
const
int
chromWidth
=
width
>>
1
;
y
=
0
;
y
=
0
;
for
(;
y
<
height
;
y
+=
2
)
{
for
(;
y
<
height
;
y
+=
2
)
{
long
i
;
int
i
;
for
(
i
=
0
;
i
<
chromWidth
;
i
++
)
{
for
(
i
=
0
;
i
<
chromWidth
;
i
++
)
{
unsigned
int
b
=
src
[
6
*
i
+
0
];
unsigned
int
b
=
src
[
6
*
i
+
0
];
unsigned
int
g
=
src
[
6
*
i
+
1
];
unsigned
int
g
=
src
[
6
*
i
+
1
];
...
@@ -689,14 +689,14 @@ void rgb24toyv12_c(const uint8_t *src, uint8_t *ydst, uint8_t *udst,
...
@@ -689,14 +689,14 @@ void rgb24toyv12_c(const uint8_t *src, uint8_t *ydst, uint8_t *udst,
}
}
static
void
interleaveBytes_c
(
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
static
void
interleaveBytes_c
(
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
uint8_t
*
dest
,
long
width
,
uint8_t
*
dest
,
int
width
,
long
height
,
long
src1Stride
,
int
height
,
int
src1Stride
,
long
src2Stride
,
long
dstStride
)
int
src2Stride
,
int
dstStride
)
{
{
long
h
;
int
h
;
for
(
h
=
0
;
h
<
height
;
h
++
)
{
for
(
h
=
0
;
h
<
height
;
h
++
)
{
long
w
;
int
w
;
for
(
w
=
0
;
w
<
width
;
w
++
)
{
for
(
w
=
0
;
w
<
width
;
w
++
)
{
dest
[
2
*
w
+
0
]
=
src1
[
w
];
dest
[
2
*
w
+
0
]
=
src1
[
w
];
dest
[
2
*
w
+
1
]
=
src2
[
w
];
dest
[
2
*
w
+
1
]
=
src2
[
w
];
...
@@ -709,12 +709,12 @@ static void interleaveBytes_c(const uint8_t *src1, const uint8_t *src2,
...
@@ -709,12 +709,12 @@ static void interleaveBytes_c(const uint8_t *src1, const uint8_t *src2,
static
inline
void
vu9_to_vu12_c
(
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
static
inline
void
vu9_to_vu12_c
(
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
uint8_t
*
dst1
,
uint8_t
*
dst2
,
uint8_t
*
dst1
,
uint8_t
*
dst2
,
long
width
,
long
height
,
int
width
,
int
height
,
long
srcStride1
,
long
srcStride2
,
int
srcStride1
,
int
srcStride2
,
long
dstStride1
,
long
dstStride2
)
int
dstStride1
,
int
dstStride2
)
{
{
int
y
;
int
y
;
long
x
,
w
,
h
;
int
x
,
w
,
h
;
w
=
width
/
2
;
h
=
height
/
2
;
w
=
width
/
2
;
h
=
height
/
2
;
for
(
y
=
0
;
y
<
h
;
y
++
)
{
for
(
y
=
0
;
y
<
h
;
y
++
)
{
const
uint8_t
*
s1
=
src1
+
srcStride1
*
(
y
>>
1
);
const
uint8_t
*
s1
=
src1
+
srcStride1
*
(
y
>>
1
);
...
@@ -732,12 +732,12 @@ static inline void vu9_to_vu12_c(const uint8_t *src1, const uint8_t *src2,
...
@@ -732,12 +732,12 @@ static inline void vu9_to_vu12_c(const uint8_t *src1, const uint8_t *src2,
static
inline
void
yvu9_to_yuy2_c
(
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
static
inline
void
yvu9_to_yuy2_c
(
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
const
uint8_t
*
src3
,
uint8_t
*
dst
,
const
uint8_t
*
src3
,
uint8_t
*
dst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
srcStride1
,
long
srcStride2
,
int
srcStride1
,
int
srcStride2
,
long
srcStride3
,
long
dstStride
)
int
srcStride3
,
int
dstStride
)
{
{
int
x
;
int
x
;
long
y
,
w
,
h
;
int
y
,
w
,
h
;
w
=
width
/
2
;
h
=
height
;
w
=
width
/
2
;
h
=
height
;
for
(
y
=
0
;
y
<
h
;
y
++
)
{
for
(
y
=
0
;
y
<
h
;
y
++
)
{
const
uint8_t
*
yp
=
src1
+
srcStride1
*
y
;
const
uint8_t
*
yp
=
src1
+
srcStride1
*
y
;
...
@@ -746,7 +746,7 @@ static inline void yvu9_to_yuy2_c(const uint8_t *src1, const uint8_t *src2,
...
@@ -746,7 +746,7 @@ static inline void yvu9_to_yuy2_c(const uint8_t *src1, const uint8_t *src2,
uint8_t
*
d
=
dst
+
dstStride
*
y
;
uint8_t
*
d
=
dst
+
dstStride
*
y
;
x
=
0
;
x
=
0
;
for
(;
x
<
w
;
x
++
)
{
for
(;
x
<
w
;
x
++
)
{
const
long
x2
=
x
<<
2
;
const
int
x2
=
x
<<
2
;
d
[
8
*
x
+
0
]
=
yp
[
x2
];
d
[
8
*
x
+
0
]
=
yp
[
x2
];
d
[
8
*
x
+
1
]
=
up
[
x
];
d
[
8
*
x
+
1
]
=
up
[
x
];
d
[
8
*
x
+
2
]
=
yp
[
x2
+
1
];
d
[
8
*
x
+
2
]
=
yp
[
x2
+
1
];
...
@@ -833,11 +833,11 @@ static void extract_odd2avg_c(const uint8_t *src0, const uint8_t *src1,
...
@@ -833,11 +833,11 @@ static void extract_odd2avg_c(const uint8_t *src0, const uint8_t *src1,
}
}
static
void
yuyvtoyuv420_c
(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
static
void
yuyvtoyuv420_c
(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
long
width
,
long
height
,
const
uint8_t
*
src
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
)
int
lumStride
,
int
chromStride
,
int
srcStride
)
{
{
long
y
;
int
y
;
const
long
chromWidth
=
-
((
-
width
)
>>
1
);
const
int
chromWidth
=
-
((
-
width
)
>>
1
);
for
(
y
=
0
;
y
<
height
;
y
++
)
{
for
(
y
=
0
;
y
<
height
;
y
++
)
{
extract_even_c
(
src
,
ydst
,
width
);
extract_even_c
(
src
,
ydst
,
width
);
...
@@ -853,11 +853,11 @@ static void yuyvtoyuv420_c(uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
...
@@ -853,11 +853,11 @@ static void yuyvtoyuv420_c(uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
}
}
static
void
yuyvtoyuv422_c
(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
static
void
yuyvtoyuv422_c
(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
long
width
,
long
height
,
const
uint8_t
*
src
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
)
int
lumStride
,
int
chromStride
,
int
srcStride
)
{
{
long
y
;
int
y
;
const
long
chromWidth
=
-
((
-
width
)
>>
1
);
const
int
chromWidth
=
-
((
-
width
)
>>
1
);
for
(
y
=
0
;
y
<
height
;
y
++
)
{
for
(
y
=
0
;
y
<
height
;
y
++
)
{
extract_even_c
(
src
,
ydst
,
width
);
extract_even_c
(
src
,
ydst
,
width
);
...
@@ -871,11 +871,11 @@ static void yuyvtoyuv422_c(uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
...
@@ -871,11 +871,11 @@ static void yuyvtoyuv422_c(uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
}
}
static
void
uyvytoyuv420_c
(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
static
void
uyvytoyuv420_c
(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
long
width
,
long
height
,
const
uint8_t
*
src
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
)
int
lumStride
,
int
chromStride
,
int
srcStride
)
{
{
long
y
;
int
y
;
const
long
chromWidth
=
-
((
-
width
)
>>
1
);
const
int
chromWidth
=
-
((
-
width
)
>>
1
);
for
(
y
=
0
;
y
<
height
;
y
++
)
{
for
(
y
=
0
;
y
<
height
;
y
++
)
{
extract_even_c
(
src
+
1
,
ydst
,
width
);
extract_even_c
(
src
+
1
,
ydst
,
width
);
...
@@ -891,11 +891,11 @@ static void uyvytoyuv420_c(uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
...
@@ -891,11 +891,11 @@ static void uyvytoyuv420_c(uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
}
}
static
void
uyvytoyuv422_c
(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
static
void
uyvytoyuv422_c
(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
long
width
,
long
height
,
const
uint8_t
*
src
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
)
int
lumStride
,
int
chromStride
,
int
srcStride
)
{
{
long
y
;
int
y
;
const
long
chromWidth
=
-
((
-
width
)
>>
1
);
const
int
chromWidth
=
-
((
-
width
)
>>
1
);
for
(
y
=
0
;
y
<
height
;
y
++
)
{
for
(
y
=
0
;
y
<
height
;
y
++
)
{
extract_even_c
(
src
+
1
,
ydst
,
width
);
extract_even_c
(
src
+
1
,
ydst
,
width
);
...
...
libswscale/swscale.c
View file @
b8e89339
...
@@ -980,7 +980,7 @@ static void fillPlane(uint8_t* plane, int stride, int width, int height, int y,
...
@@ -980,7 +980,7 @@ static void fillPlane(uint8_t* plane, int stride, int width, int height, int y,
}
}
}
}
static
inline
void
rgb48ToY
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
long
width
,
static
inline
void
rgb48ToY
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
width
,
uint32_t
*
unused
)
uint32_t
*
unused
)
{
{
int
i
;
int
i
;
...
@@ -995,7 +995,7 @@ static inline void rgb48ToY(uint8_t *dst, const uint8_t *src, long width,
...
@@ -995,7 +995,7 @@ static inline void rgb48ToY(uint8_t *dst, const uint8_t *src, long width,
static
inline
void
rgb48ToUV
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
static
inline
void
rgb48ToUV
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
long
width
,
uint32_t
*
unused
)
int
width
,
uint32_t
*
unused
)
{
{
int
i
;
int
i
;
assert
(
src1
==
src2
);
assert
(
src1
==
src2
);
...
@@ -1011,7 +1011,7 @@ static inline void rgb48ToUV(uint8_t *dstU, uint8_t *dstV,
...
@@ -1011,7 +1011,7 @@ static inline void rgb48ToUV(uint8_t *dstU, uint8_t *dstV,
static
inline
void
rgb48ToUV_half
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
static
inline
void
rgb48ToUV_half
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
long
width
,
uint32_t
*
unused
)
int
width
,
uint32_t
*
unused
)
{
{
int
i
;
int
i
;
assert
(
src1
==
src2
);
assert
(
src1
==
src2
);
...
@@ -1025,7 +1025,7 @@ static inline void rgb48ToUV_half(uint8_t *dstU, uint8_t *dstV,
...
@@ -1025,7 +1025,7 @@ static inline void rgb48ToUV_half(uint8_t *dstU, uint8_t *dstV,
}
}
}
}
static
inline
void
bgr48ToY
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
long
width
,
static
inline
void
bgr48ToY
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
width
,
uint32_t
*
unused
)
uint32_t
*
unused
)
{
{
int
i
;
int
i
;
...
@@ -1040,7 +1040,7 @@ static inline void bgr48ToY(uint8_t *dst, const uint8_t *src, long width,
...
@@ -1040,7 +1040,7 @@ static inline void bgr48ToY(uint8_t *dst, const uint8_t *src, long width,
static
inline
void
bgr48ToUV
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
static
inline
void
bgr48ToUV
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
long
width
,
uint32_t
*
unused
)
int
width
,
uint32_t
*
unused
)
{
{
int
i
;
int
i
;
for
(
i
=
0
;
i
<
width
;
i
++
)
{
for
(
i
=
0
;
i
<
width
;
i
++
)
{
...
@@ -1055,7 +1055,7 @@ static inline void bgr48ToUV(uint8_t *dstU, uint8_t *dstV,
...
@@ -1055,7 +1055,7 @@ static inline void bgr48ToUV(uint8_t *dstU, uint8_t *dstV,
static
inline
void
bgr48ToUV_half
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
static
inline
void
bgr48ToUV_half
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
long
width
,
uint32_t
*
unused
)
int
width
,
uint32_t
*
unused
)
{
{
int
i
;
int
i
;
for
(
i
=
0
;
i
<
width
;
i
++
)
{
for
(
i
=
0
;
i
<
width
;
i
++
)
{
...
@@ -1069,7 +1069,7 @@ static inline void bgr48ToUV_half(uint8_t *dstU, uint8_t *dstV,
...
@@ -1069,7 +1069,7 @@ static inline void bgr48ToUV_half(uint8_t *dstU, uint8_t *dstV,
}
}
#define BGR2Y(type, name, shr, shg, shb, maskr, maskg, maskb, RY, GY, BY, S)\
#define BGR2Y(type, name, shr, shg, shb, maskr, maskg, maskb, RY, GY, BY, S)\
static inline void name(uint8_t *dst, const uint8_t *src,
long
width, uint32_t *unused)\
static inline void name(uint8_t *dst, const uint8_t *src,
int
width, uint32_t *unused)\
{\
{\
int i;\
int i;\
for (i=0; i<width; i++) {\
for (i=0; i<width; i++) {\
...
@@ -1090,7 +1090,7 @@ BGR2Y(uint16_t, bgr15ToY, 0, 0, 0, 0x001F, 0x03E0, 0x7C00, RY<<10, GY<<5, BY
...
@@ -1090,7 +1090,7 @@ BGR2Y(uint16_t, bgr15ToY, 0, 0, 0, 0x001F, 0x03E0, 0x7C00, RY<<10, GY<<5, BY
BGR2Y
(
uint16_t
,
rgb16ToY
,
0
,
0
,
0
,
0xF800
,
0x07E0
,
0x001F
,
RY
,
GY
<<
5
,
BY
<<
11
,
RGB2YUV_SHIFT
+
8
)
BGR2Y
(
uint16_t
,
rgb16ToY
,
0
,
0
,
0
,
0xF800
,
0x07E0
,
0x001F
,
RY
,
GY
<<
5
,
BY
<<
11
,
RGB2YUV_SHIFT
+
8
)
BGR2Y
(
uint16_t
,
rgb15ToY
,
0
,
0
,
0
,
0x7C00
,
0x03E0
,
0x001F
,
RY
,
GY
<<
5
,
BY
<<
10
,
RGB2YUV_SHIFT
+
7
)
BGR2Y
(
uint16_t
,
rgb15ToY
,
0
,
0
,
0
,
0x7C00
,
0x03E0
,
0x001F
,
RY
,
GY
<<
5
,
BY
<<
10
,
RGB2YUV_SHIFT
+
7
)
static
inline
void
abgrToA
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
long
width
,
uint32_t
*
unused
)
static
inline
void
abgrToA
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
width
,
uint32_t
*
unused
)
{
{
int
i
;
int
i
;
for
(
i
=
0
;
i
<
width
;
i
++
)
{
for
(
i
=
0
;
i
<
width
;
i
++
)
{
...
@@ -1099,7 +1099,7 @@ static inline void abgrToA(uint8_t *dst, const uint8_t *src, long width, uint32_
...
@@ -1099,7 +1099,7 @@ static inline void abgrToA(uint8_t *dst, const uint8_t *src, long width, uint32_
}
}
#define BGR2UV(type, name, shr, shg, shb, shp, maskr, maskg, maskb, RU, GU, BU, RV, GV, BV, S) \
#define BGR2UV(type, name, shr, shg, shb, shp, maskr, maskg, maskb, RU, GU, BU, RV, GV, BV, S) \
static inline void name(uint8_t *dstU, uint8_t *dstV, const uint8_t *src, const uint8_t *dummy,
long
width, uint32_t *unused)\
static inline void name(uint8_t *dstU, uint8_t *dstV, const uint8_t *src, const uint8_t *dummy,
int
width, uint32_t *unused)\
{\
{\
int i;\
int i;\
for (i=0; i<width; i++) {\
for (i=0; i<width; i++) {\
...
@@ -1111,7 +1111,7 @@ static inline void name(uint8_t *dstU, uint8_t *dstV, const uint8_t *src, const
...
@@ -1111,7 +1111,7 @@ static inline void name(uint8_t *dstU, uint8_t *dstV, const uint8_t *src, const
dstV[i]= ((RV)*r + (GV)*g + (BV)*b + (257<<((S)-1)))>>(S);\
dstV[i]= ((RV)*r + (GV)*g + (BV)*b + (257<<((S)-1)))>>(S);\
}\
}\
}\
}\
static inline void name ## _half(uint8_t *dstU, uint8_t *dstV, const uint8_t *src, const uint8_t *dummy,
long
width, uint32_t *unused)\
static inline void name ## _half(uint8_t *dstU, uint8_t *dstV, const uint8_t *src, const uint8_t *dummy,
int
width, uint32_t *unused)\
{\
{\
int i;\
int i;\
for (i=0; i<width; i++) {\
for (i=0; i<width; i++) {\
...
@@ -1138,7 +1138,7 @@ BGR2UV(uint16_t, bgr15ToUV, 0, 0, 0, 0, 0x001F, 0x03E0, 0x7C00, RU<<10, GU<<
...
@@ -1138,7 +1138,7 @@ BGR2UV(uint16_t, bgr15ToUV, 0, 0, 0, 0, 0x001F, 0x03E0, 0x7C00, RU<<10, GU<<
BGR2UV
(
uint16_t
,
rgb16ToUV
,
0
,
0
,
0
,
0
,
0xF800
,
0x07E0
,
0x001F
,
RU
,
GU
<<
5
,
BU
<<
11
,
RV
,
GV
<<
5
,
BV
<<
11
,
RGB2YUV_SHIFT
+
8
)
BGR2UV
(
uint16_t
,
rgb16ToUV
,
0
,
0
,
0
,
0
,
0xF800
,
0x07E0
,
0x001F
,
RU
,
GU
<<
5
,
BU
<<
11
,
RV
,
GV
<<
5
,
BV
<<
11
,
RGB2YUV_SHIFT
+
8
)
BGR2UV
(
uint16_t
,
rgb15ToUV
,
0
,
0
,
0
,
0
,
0x7C00
,
0x03E0
,
0x001F
,
RU
,
GU
<<
5
,
BU
<<
10
,
RV
,
GV
<<
5
,
BV
<<
10
,
RGB2YUV_SHIFT
+
7
)
BGR2UV
(
uint16_t
,
rgb15ToUV
,
0
,
0
,
0
,
0
,
0x7C00
,
0x03E0
,
0x001F
,
RU
,
GU
<<
5
,
BU
<<
10
,
RV
,
GV
<<
5
,
BV
<<
10
,
RGB2YUV_SHIFT
+
7
)
static
inline
void
palToY
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
long
width
,
uint32_t
*
pal
)
static
inline
void
palToY
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
width
,
uint32_t
*
pal
)
{
{
int
i
;
int
i
;
for
(
i
=
0
;
i
<
width
;
i
++
)
{
for
(
i
=
0
;
i
<
width
;
i
++
)
{
...
@@ -1150,7 +1150,7 @@ static inline void palToY(uint8_t *dst, const uint8_t *src, long width, uint32_t
...
@@ -1150,7 +1150,7 @@ static inline void palToY(uint8_t *dst, const uint8_t *src, long width, uint32_t
static
inline
void
palToUV
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
static
inline
void
palToUV
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
long
width
,
uint32_t
*
pal
)
int
width
,
uint32_t
*
pal
)
{
{
int
i
;
int
i
;
assert
(
src1
==
src2
);
assert
(
src1
==
src2
);
...
@@ -1162,7 +1162,7 @@ static inline void palToUV(uint8_t *dstU, uint8_t *dstV,
...
@@ -1162,7 +1162,7 @@ static inline void palToUV(uint8_t *dstU, uint8_t *dstV,
}
}
}
}
static
inline
void
monowhite2Y
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
long
width
,
uint32_t
*
unused
)
static
inline
void
monowhite2Y
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
width
,
uint32_t
*
unused
)
{
{
int
i
,
j
;
int
i
,
j
;
for
(
i
=
0
;
i
<
width
/
8
;
i
++
)
{
for
(
i
=
0
;
i
<
width
/
8
;
i
++
)
{
...
@@ -1172,7 +1172,7 @@ static inline void monowhite2Y(uint8_t *dst, const uint8_t *src, long width, uin
...
@@ -1172,7 +1172,7 @@ static inline void monowhite2Y(uint8_t *dst, const uint8_t *src, long width, uin
}
}
}
}
static
inline
void
monoblack2Y
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
long
width
,
uint32_t
*
unused
)
static
inline
void
monoblack2Y
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
width
,
uint32_t
*
unused
)
{
{
int
i
,
j
;
int
i
,
j
;
for
(
i
=
0
;
i
<
width
/
8
;
i
++
)
{
for
(
i
=
0
;
i
<
width
/
8
;
i
++
)
{
...
@@ -1365,24 +1365,24 @@ static int uyvyToYuv422Wrapper(SwsContext *c, const uint8_t* src[], int srcStrid
...
@@ -1365,24 +1365,24 @@ static int uyvyToYuv422Wrapper(SwsContext *c, const uint8_t* src[], int srcStrid
return
srcSliceH
;
return
srcSliceH
;
}
}
static
void
gray8aToPacked32
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
num_pixels
,
const
uint8_t
*
palette
)
static
void
gray8aToPacked32
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
num_pixels
,
const
uint8_t
*
palette
)
{
{
long
i
;
int
i
;
for
(
i
=
0
;
i
<
num_pixels
;
i
++
)
for
(
i
=
0
;
i
<
num_pixels
;
i
++
)
((
uint32_t
*
)
dst
)[
i
]
=
((
const
uint32_t
*
)
palette
)[
src
[
i
<<
1
]]
|
(
src
[(
i
<<
1
)
+
1
]
<<
24
);
((
uint32_t
*
)
dst
)[
i
]
=
((
const
uint32_t
*
)
palette
)[
src
[
i
<<
1
]]
|
(
src
[(
i
<<
1
)
+
1
]
<<
24
);
}
}
static
void
gray8aToPacked32_1
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
num_pixels
,
const
uint8_t
*
palette
)
static
void
gray8aToPacked32_1
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
num_pixels
,
const
uint8_t
*
palette
)
{
{
long
i
;
int
i
;
for
(
i
=
0
;
i
<
num_pixels
;
i
++
)
for
(
i
=
0
;
i
<
num_pixels
;
i
++
)
((
uint32_t
*
)
dst
)[
i
]
=
((
const
uint32_t
*
)
palette
)[
src
[
i
<<
1
]]
|
src
[(
i
<<
1
)
+
1
];
((
uint32_t
*
)
dst
)[
i
]
=
((
const
uint32_t
*
)
palette
)[
src
[
i
<<
1
]]
|
src
[(
i
<<
1
)
+
1
];
}
}
static
void
gray8aToPacked24
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
num_pixels
,
const
uint8_t
*
palette
)
static
void
gray8aToPacked24
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
num_pixels
,
const
uint8_t
*
palette
)
{
{
long
i
;
int
i
;
for
(
i
=
0
;
i
<
num_pixels
;
i
++
)
{
for
(
i
=
0
;
i
<
num_pixels
;
i
++
)
{
//FIXME slow?
//FIXME slow?
...
@@ -1398,7 +1398,7 @@ static int palToRgbWrapper(SwsContext *c, const uint8_t* src[], int srcStride[],
...
@@ -1398,7 +1398,7 @@ static int palToRgbWrapper(SwsContext *c, const uint8_t* src[], int srcStride[],
{
{
const
enum
PixelFormat
srcFormat
=
c
->
srcFormat
;
const
enum
PixelFormat
srcFormat
=
c
->
srcFormat
;
const
enum
PixelFormat
dstFormat
=
c
->
dstFormat
;
const
enum
PixelFormat
dstFormat
=
c
->
dstFormat
;
void
(
*
conv
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
num_pixels
,
void
(
*
conv
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
num_pixels
,
const
uint8_t
*
palette
)
=
NULL
;
const
uint8_t
*
palette
)
=
NULL
;
int
i
;
int
i
;
uint8_t
*
dstPtr
=
dst
[
0
]
+
dstStride
[
0
]
*
srcSliceY
;
uint8_t
*
dstPtr
=
dst
[
0
]
+
dstStride
[
0
]
*
srcSliceY
;
...
@@ -1455,7 +1455,7 @@ static int rgbToRgbWrapper(SwsContext *c, const uint8_t* src[], int srcStride[],
...
@@ -1455,7 +1455,7 @@ static int rgbToRgbWrapper(SwsContext *c, const uint8_t* src[], int srcStride[],
const
int
dstBpp
=
(
c
->
dstFormatBpp
+
7
)
>>
3
;
const
int
dstBpp
=
(
c
->
dstFormatBpp
+
7
)
>>
3
;
const
int
srcId
=
c
->
srcFormatBpp
>>
2
;
/* 1:0, 4:1, 8:2, 15:3, 16:4, 24:6, 32:8 */
const
int
srcId
=
c
->
srcFormatBpp
>>
2
;
/* 1:0, 4:1, 8:2, 15:3, 16:4, 24:6, 32:8 */
const
int
dstId
=
c
->
dstFormatBpp
>>
2
;
const
int
dstId
=
c
->
dstFormatBpp
>>
2
;
void
(
*
conv
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
=
NULL
;
void
(
*
conv
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
=
NULL
;
#define CONV_IS(src, dst) (srcFormat == PIX_FMT_##src && dstFormat == PIX_FMT_##dst)
#define CONV_IS(src, dst) (srcFormat == PIX_FMT_##src && dstFormat == PIX_FMT_##dst)
...
@@ -2057,18 +2057,18 @@ int sws_scale(SwsContext *c, const uint8_t* const src[], const int srcStride[],
...
@@ -2057,18 +2057,18 @@ int sws_scale(SwsContext *c, const uint8_t* const src[], const int srcStride[],
}
}
/* Convert the palette to the same packed 32-bit format as the palette */
/* Convert the palette to the same packed 32-bit format as the palette */
void
sws_convertPalette8ToPacked32
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
num_pixels
,
const
uint8_t
*
palette
)
void
sws_convertPalette8ToPacked32
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
num_pixels
,
const
uint8_t
*
palette
)
{
{
long
i
;
int
i
;
for
(
i
=
0
;
i
<
num_pixels
;
i
++
)
for
(
i
=
0
;
i
<
num_pixels
;
i
++
)
((
uint32_t
*
)
dst
)[
i
]
=
((
const
uint32_t
*
)
palette
)[
src
[
i
]];
((
uint32_t
*
)
dst
)[
i
]
=
((
const
uint32_t
*
)
palette
)[
src
[
i
]];
}
}
/* Palette format: ABCD -> dst format: ABC */
/* Palette format: ABCD -> dst format: ABC */
void
sws_convertPalette8ToPacked24
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
num_pixels
,
const
uint8_t
*
palette
)
void
sws_convertPalette8ToPacked24
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
num_pixels
,
const
uint8_t
*
palette
)
{
{
long
i
;
int
i
;
for
(
i
=
0
;
i
<
num_pixels
;
i
++
)
{
for
(
i
=
0
;
i
<
num_pixels
;
i
++
)
{
//FIXME slow?
//FIXME slow?
...
...
libswscale/swscale.h
View file @
b8e89339
...
@@ -335,7 +335,7 @@ struct SwsContext *sws_getCachedContext(struct SwsContext *context,
...
@@ -335,7 +335,7 @@ struct SwsContext *sws_getCachedContext(struct SwsContext *context,
* @param num_pixels number of pixels to convert
* @param num_pixels number of pixels to convert
* @param palette array with [256] entries, which must match color arrangement (RGB or BGR) of src
* @param palette array with [256] entries, which must match color arrangement (RGB or BGR) of src
*/
*/
void
sws_convertPalette8ToPacked32
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
num_pixels
,
const
uint8_t
*
palette
);
void
sws_convertPalette8ToPacked32
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
num_pixels
,
const
uint8_t
*
palette
);
/**
/**
* Converts an 8bit paletted frame into a frame with a color depth of 24 bits.
* Converts an 8bit paletted frame into a frame with a color depth of 24 bits.
...
@@ -347,7 +347,7 @@ void sws_convertPalette8ToPacked32(const uint8_t *src, uint8_t *dst, long num_pi
...
@@ -347,7 +347,7 @@ void sws_convertPalette8ToPacked32(const uint8_t *src, uint8_t *dst, long num_pi
* @param num_pixels number of pixels to convert
* @param num_pixels number of pixels to convert
* @param palette array with [256] entries, which must match color arrangement (RGB or BGR) of src
* @param palette array with [256] entries, which must match color arrangement (RGB or BGR) of src
*/
*/
void
sws_convertPalette8ToPacked24
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
num_pixels
,
const
uint8_t
*
palette
);
void
sws_convertPalette8ToPacked24
(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
num_pixels
,
const
uint8_t
*
palette
);
#endif
/* SWSCALE_SWSCALE_H */
#endif
/* SWSCALE_SWSCALE_H */
libswscale/swscale_internal.h
View file @
b8e89339
...
@@ -261,7 +261,7 @@ typedef struct SwsContext {
...
@@ -261,7 +261,7 @@ typedef struct SwsContext {
const
int16_t
*
chrVSrc
,
const
int16_t
*
alpSrc
,
const
int16_t
*
chrVSrc
,
const
int16_t
*
alpSrc
,
uint8_t
*
dest
,
uint8_t
*
dest
,
uint8_t
*
uDest
,
uint8_t
*
vDest
,
uint8_t
*
aDest
,
uint8_t
*
uDest
,
uint8_t
*
vDest
,
uint8_t
*
aDest
,
long
dstW
,
long
chrDstW
);
int
dstW
,
int
chrDstW
);
void
(
*
yuv2yuvX
)(
struct
SwsContext
*
c
,
void
(
*
yuv2yuvX
)(
struct
SwsContext
*
c
,
const
int16_t
*
lumFilter
,
const
int16_t
**
lumSrc
,
int
lumFilterSize
,
const
int16_t
*
lumFilter
,
const
int16_t
**
lumSrc
,
int
lumFilterSize
,
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
...
@@ -269,7 +269,7 @@ typedef struct SwsContext {
...
@@ -269,7 +269,7 @@ typedef struct SwsContext {
const
int16_t
**
alpSrc
,
const
int16_t
**
alpSrc
,
uint8_t
*
dest
,
uint8_t
*
dest
,
uint8_t
*
uDest
,
uint8_t
*
vDest
,
uint8_t
*
aDest
,
uint8_t
*
uDest
,
uint8_t
*
vDest
,
uint8_t
*
aDest
,
long
dstW
,
long
chrDstW
);
int
dstW
,
int
chrDstW
);
void
(
*
yuv2packed1
)(
struct
SwsContext
*
c
,
void
(
*
yuv2packed1
)(
struct
SwsContext
*
c
,
const
uint16_t
*
buf0
,
const
uint16_t
*
buf0
,
const
uint16_t
*
ubuf0
,
const
uint16_t
*
ubuf1
,
const
uint16_t
*
ubuf0
,
const
uint16_t
*
ubuf1
,
...
@@ -289,26 +289,26 @@ typedef struct SwsContext {
...
@@ -289,26 +289,26 @@ typedef struct SwsContext {
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
,
long
dstW
,
long
dstY
);
int
dstW
,
int
dstY
);
void
(
*
lumToYV12
)(
uint8_t
*
dst
,
const
uint8_t
*
src
,
void
(
*
lumToYV12
)(
uint8_t
*
dst
,
const
uint8_t
*
src
,
long
width
,
uint32_t
*
pal
);
///< Unscaled conversion of luma plane to YV12 for horizontal scaler.
int
width
,
uint32_t
*
pal
);
///< Unscaled conversion of luma plane to YV12 for horizontal scaler.
void
(
*
alpToYV12
)(
uint8_t
*
dst
,
const
uint8_t
*
src
,
void
(
*
alpToYV12
)(
uint8_t
*
dst
,
const
uint8_t
*
src
,
long
width
,
uint32_t
*
pal
);
///< Unscaled conversion of alpha plane to YV12 for horizontal scaler.
int
width
,
uint32_t
*
pal
);
///< Unscaled conversion of alpha plane 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
,
long
width
,
uint32_t
*
pal
);
///< Unscaled conversion of chroma planes to YV12 for horizontal scaler.
int
width
,
uint32_t
*
pal
);
///< Unscaled conversion of chroma planes to YV12 for horizontal scaler.
void
(
*
hyscale_fast
)(
struct
SwsContext
*
c
,
void
(
*
hyscale_fast
)(
struct
SwsContext
*
c
,
int16_t
*
dst
,
long
dstWidth
,
int16_t
*
dst
,
int
dstWidth
,
const
uint8_t
*
src
,
int
srcW
,
int
xInc
);
const
uint8_t
*
src
,
int
srcW
,
int
xInc
);
void
(
*
hcscale_fast
)(
struct
SwsContext
*
c
,
void
(
*
hcscale_fast
)(
struct
SwsContext
*
c
,
int16_t
*
dst1
,
int16_t
*
dst2
,
long
dstWidth
,
int16_t
*
dst1
,
int16_t
*
dst2
,
int
dstWidth
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
srcW
,
int
xInc
);
int
srcW
,
int
xInc
);
void
(
*
hScale
)(
int16_t
*
dst
,
int
dstW
,
const
uint8_t
*
src
,
int
srcW
,
void
(
*
hScale
)(
int16_t
*
dst
,
int
dstW
,
const
uint8_t
*
src
,
int
srcW
,
int
xInc
,
const
int16_t
*
filter
,
const
int16_t
*
filterPos
,
int
xInc
,
const
int16_t
*
filter
,
const
int16_t
*
filterPos
,
long
filterSize
);
int
filterSize
);
void
(
*
lumConvertRange
)(
uint16_t
*
dst
,
int
width
);
///< Color range conversion function for luma plane if needed.
void
(
*
lumConvertRange
)(
uint16_t
*
dst
,
int
width
);
///< Color range conversion function for luma plane if needed.
void
(
*
chrConvertRange
)(
uint16_t
*
dst1
,
uint16_t
*
dst2
,
int
width
);
///< Color range conversion function for chroma planes if needed.
void
(
*
chrConvertRange
)(
uint16_t
*
dst1
,
uint16_t
*
dst2
,
int
width
);
///< Color range conversion function for chroma planes if needed.
...
...
libswscale/swscale_template.c
View file @
b8e89339
...
@@ -24,7 +24,7 @@ static inline void yuv2yuvX_c(SwsContext *c, const int16_t *lumFilter,
...
@@ -24,7 +24,7 @@ static inline void yuv2yuvX_c(SwsContext *c, const int16_t *lumFilter,
const
int16_t
**
chrVSrc
,
const
int16_t
**
chrVSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
uint8_t
*
dest
,
uint8_t
*
uDest
,
uint8_t
*
vDest
,
uint8_t
*
dest
,
uint8_t
*
uDest
,
uint8_t
*
vDest
,
uint8_t
*
aDest
,
long
dstW
,
long
chrDstW
)
uint8_t
*
aDest
,
int
dstW
,
int
chrDstW
)
{
{
yuv2yuvXinC
(
lumFilter
,
lumSrc
,
lumFilterSize
,
yuv2yuvXinC
(
lumFilter
,
lumSrc
,
lumFilterSize
,
chrFilter
,
chrUSrc
,
chrVSrc
,
chrFilterSize
,
chrFilter
,
chrUSrc
,
chrVSrc
,
chrFilterSize
,
...
@@ -47,7 +47,7 @@ static inline void yuv2yuv1_c(SwsContext *c, const int16_t *lumSrc,
...
@@ -47,7 +47,7 @@ static inline void yuv2yuv1_c(SwsContext *c, const int16_t *lumSrc,
const
int16_t
*
chrUSrc
,
const
int16_t
*
chrVSrc
,
const
int16_t
*
chrUSrc
,
const
int16_t
*
chrVSrc
,
const
int16_t
*
alpSrc
,
const
int16_t
*
alpSrc
,
uint8_t
*
dest
,
uint8_t
*
uDest
,
uint8_t
*
vDest
,
uint8_t
*
dest
,
uint8_t
*
uDest
,
uint8_t
*
vDest
,
uint8_t
*
aDest
,
long
dstW
,
long
chrDstW
)
uint8_t
*
aDest
,
int
dstW
,
int
chrDstW
)
{
{
int
i
;
int
i
;
for
(
i
=
0
;
i
<
dstW
;
i
++
)
{
for
(
i
=
0
;
i
<
dstW
;
i
++
)
{
...
@@ -79,7 +79,7 @@ static inline void yuv2packedX_c(SwsContext *c, const int16_t *lumFilter,
...
@@ -79,7 +79,7 @@ static inline void yuv2packedX_c(SwsContext *c, const int16_t *lumFilter,
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
**
chrVSrc
,
const
int16_t
**
chrVSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
uint8_t
*
dest
,
long
dstW
,
long
dstY
)
uint8_t
*
dest
,
int
dstW
,
int
dstY
)
{
{
yuv2packedXinC
(
c
,
lumFilter
,
lumSrc
,
lumFilterSize
,
yuv2packedXinC
(
c
,
lumFilter
,
lumSrc
,
lumFilterSize
,
chrFilter
,
chrUSrc
,
chrVSrc
,
chrFilterSize
,
chrFilter
,
chrUSrc
,
chrVSrc
,
chrFilterSize
,
...
@@ -128,7 +128,7 @@ static inline void yuv2packed1_c(SwsContext *c, const uint16_t *buf0,
...
@@ -128,7 +128,7 @@ static inline void yuv2packed1_c(SwsContext *c, const uint16_t *buf0,
//FIXME yuy2* can read up to 7 samples too much
//FIXME yuy2* can read up to 7 samples too much
static
inline
void
yuy2ToY_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
long
width
,
static
inline
void
yuy2ToY_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
width
,
uint32_t
*
unused
)
uint32_t
*
unused
)
{
{
int
i
;
int
i
;
...
@@ -137,7 +137,7 @@ static inline void yuy2ToY_c(uint8_t *dst, const uint8_t *src, long width,
...
@@ -137,7 +137,7 @@ static inline void yuy2ToY_c(uint8_t *dst, const uint8_t *src, long width,
}
}
static
inline
void
yuy2ToUV_c
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
static
inline
void
yuy2ToUV_c
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
long
width
,
uint32_t
*
unused
)
const
uint8_t
*
src2
,
int
width
,
uint32_t
*
unused
)
{
{
int
i
;
int
i
;
for
(
i
=
0
;
i
<
width
;
i
++
)
{
for
(
i
=
0
;
i
<
width
;
i
++
)
{
...
@@ -148,7 +148,7 @@ static inline void yuy2ToUV_c(uint8_t *dstU, uint8_t *dstV, const uint8_t *src1,
...
@@ -148,7 +148,7 @@ static inline void yuy2ToUV_c(uint8_t *dstU, uint8_t *dstV, const uint8_t *src1,
}
}
static
inline
void
LEToUV_c
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
static
inline
void
LEToUV_c
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
long
width
,
uint32_t
*
unused
)
const
uint8_t
*
src2
,
int
width
,
uint32_t
*
unused
)
{
{
int
i
;
int
i
;
// FIXME I don't think this code is right for YUV444/422, since then h is not subsampled so
// FIXME I don't think this code is right for YUV444/422, since then h is not subsampled so
...
@@ -161,7 +161,7 @@ static inline void LEToUV_c(uint8_t *dstU, uint8_t *dstV, const uint8_t *src1,
...
@@ -161,7 +161,7 @@ static inline void LEToUV_c(uint8_t *dstU, uint8_t *dstV, const uint8_t *src1,
/* This is almost identical to the previous, end exists only because
/* This is almost identical to the previous, end exists only because
* yuy2ToY/UV)(dst, src+1, ...) would have 100% unaligned accesses. */
* yuy2ToY/UV)(dst, src+1, ...) would have 100% unaligned accesses. */
static
inline
void
uyvyToY_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
long
width
,
static
inline
void
uyvyToY_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
width
,
uint32_t
*
unused
)
uint32_t
*
unused
)
{
{
int
i
;
int
i
;
...
@@ -170,7 +170,7 @@ static inline void uyvyToY_c(uint8_t *dst, const uint8_t *src, long width,
...
@@ -170,7 +170,7 @@ static inline void uyvyToY_c(uint8_t *dst, const uint8_t *src, long width,
}
}
static
inline
void
uyvyToUV_c
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
static
inline
void
uyvyToUV_c
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
long
width
,
uint32_t
*
unused
)
const
uint8_t
*
src2
,
int
width
,
uint32_t
*
unused
)
{
{
int
i
;
int
i
;
for
(
i
=
0
;
i
<
width
;
i
++
)
{
for
(
i
=
0
;
i
<
width
;
i
++
)
{
...
@@ -181,7 +181,7 @@ static inline void uyvyToUV_c(uint8_t *dstU, uint8_t *dstV, const uint8_t *src1,
...
@@ -181,7 +181,7 @@ static inline void uyvyToUV_c(uint8_t *dstU, uint8_t *dstV, const uint8_t *src1,
}
}
static
inline
void
BEToUV_c
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
static
inline
void
BEToUV_c
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
long
width
,
uint32_t
*
unused
)
const
uint8_t
*
src2
,
int
width
,
uint32_t
*
unused
)
{
{
int
i
;
int
i
;
for
(
i
=
0
;
i
<
width
;
i
++
)
{
for
(
i
=
0
;
i
<
width
;
i
++
)
{
...
@@ -191,7 +191,7 @@ static inline void BEToUV_c(uint8_t *dstU, uint8_t *dstV, const uint8_t *src1,
...
@@ -191,7 +191,7 @@ static inline void BEToUV_c(uint8_t *dstU, uint8_t *dstV, const uint8_t *src1,
}
}
static
inline
void
nvXXtoUV_c
(
uint8_t
*
dst1
,
uint8_t
*
dst2
,
static
inline
void
nvXXtoUV_c
(
uint8_t
*
dst1
,
uint8_t
*
dst2
,
const
uint8_t
*
src
,
long
width
)
const
uint8_t
*
src
,
int
width
)
{
{
int
i
;
int
i
;
for
(
i
=
0
;
i
<
width
;
i
++
)
{
for
(
i
=
0
;
i
<
width
;
i
++
)
{
...
@@ -202,14 +202,14 @@ static inline void nvXXtoUV_c(uint8_t *dst1, uint8_t *dst2,
...
@@ -202,14 +202,14 @@ static inline void nvXXtoUV_c(uint8_t *dst1, uint8_t *dst2,
static
inline
void
nv12ToUV_c
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
static
inline
void
nv12ToUV_c
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
long
width
,
uint32_t
*
unused
)
int
width
,
uint32_t
*
unused
)
{
{
nvXXtoUV_c
(
dstU
,
dstV
,
src1
,
width
);
nvXXtoUV_c
(
dstU
,
dstV
,
src1
,
width
);
}
}
static
inline
void
nv21ToUV_c
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
static
inline
void
nv21ToUV_c
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
long
width
,
uint32_t
*
unused
)
int
width
,
uint32_t
*
unused
)
{
{
nvXXtoUV_c
(
dstV
,
dstU
,
src1
,
width
);
nvXXtoUV_c
(
dstV
,
dstU
,
src1
,
width
);
}
}
...
@@ -218,7 +218,7 @@ static inline void nv21ToUV_c(uint8_t *dstU, uint8_t *dstV,
...
@@ -218,7 +218,7 @@ static inline void nv21ToUV_c(uint8_t *dstU, uint8_t *dstV,
#define YUV_NBPS(depth, endianness, rfunc) \
#define YUV_NBPS(depth, endianness, rfunc) \
static inline void endianness ## depth ## ToUV_c(uint8_t *dstU, uint8_t *dstV, \
static inline void endianness ## depth ## ToUV_c(uint8_t *dstU, uint8_t *dstV, \
const uint8_t *_srcU, const uint8_t *_srcV, \
const uint8_t *_srcU, const uint8_t *_srcV, \
long
width, uint32_t *unused) \
int
width, uint32_t *unused) \
{ \
{ \
int i; \
int i; \
const uint16_t *srcU = (const uint16_t*)_srcU; \
const uint16_t *srcU = (const uint16_t*)_srcU; \
...
@@ -229,7 +229,7 @@ static inline void endianness ## depth ## ToUV_c(uint8_t *dstU, uint8_t *dstV, \
...
@@ -229,7 +229,7 @@ static inline void endianness ## depth ## ToUV_c(uint8_t *dstU, uint8_t *dstV, \
} \
} \
} \
} \
\
\
static inline void endianness ## depth ## ToY_c(uint8_t *dstY, const uint8_t *_srcY,
long
width, uint32_t *unused) \
static inline void endianness ## depth ## ToY_c(uint8_t *dstY, const uint8_t *_srcY,
int
width, uint32_t *unused) \
{ \
{ \
int i; \
int i; \
const uint16_t *srcY = (const uint16_t*)_srcY; \
const uint16_t *srcY = (const uint16_t*)_srcY; \
...
@@ -243,7 +243,7 @@ YUV_NBPS(10, LE, AV_RL16)
...
@@ -243,7 +243,7 @@ YUV_NBPS(10, LE, AV_RL16)
YUV_NBPS
(
10
,
BE
,
AV_RB16
)
YUV_NBPS
(
10
,
BE
,
AV_RB16
)
static
inline
void
bgr24ToY_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
static
inline
void
bgr24ToY_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
long
width
,
uint32_t
*
unused
)
int
width
,
uint32_t
*
unused
)
{
{
int
i
;
int
i
;
for
(
i
=
0
;
i
<
width
;
i
++
)
{
for
(
i
=
0
;
i
<
width
;
i
++
)
{
...
@@ -256,7 +256,7 @@ static inline void bgr24ToY_c(uint8_t *dst, const uint8_t *src,
...
@@ -256,7 +256,7 @@ static inline void bgr24ToY_c(uint8_t *dst, const uint8_t *src,
}
}
static
inline
void
bgr24ToUV_c
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
static
inline
void
bgr24ToUV_c
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
long
width
,
uint32_t
*
unused
)
const
uint8_t
*
src2
,
int
width
,
uint32_t
*
unused
)
{
{
int
i
;
int
i
;
for
(
i
=
0
;
i
<
width
;
i
++
)
{
for
(
i
=
0
;
i
<
width
;
i
++
)
{
...
@@ -271,7 +271,7 @@ static inline void bgr24ToUV_c(uint8_t *dstU, uint8_t *dstV, const uint8_t *src1
...
@@ -271,7 +271,7 @@ static inline void bgr24ToUV_c(uint8_t *dstU, uint8_t *dstV, const uint8_t *src1
}
}
static
inline
void
bgr24ToUV_half_c
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
static
inline
void
bgr24ToUV_half_c
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
long
width
,
uint32_t
*
unused
)
const
uint8_t
*
src2
,
int
width
,
uint32_t
*
unused
)
{
{
int
i
;
int
i
;
for
(
i
=
0
;
i
<
width
;
i
++
)
{
for
(
i
=
0
;
i
<
width
;
i
++
)
{
...
@@ -285,7 +285,7 @@ static inline void bgr24ToUV_half_c(uint8_t *dstU, uint8_t *dstV, const uint8_t
...
@@ -285,7 +285,7 @@ static inline void bgr24ToUV_half_c(uint8_t *dstU, uint8_t *dstV, const uint8_t
assert
(
src1
==
src2
);
assert
(
src1
==
src2
);
}
}
static
inline
void
rgb24ToY_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
long
width
,
static
inline
void
rgb24ToY_c
(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
width
,
uint32_t
*
unused
)
uint32_t
*
unused
)
{
{
int
i
;
int
i
;
...
@@ -299,7 +299,7 @@ static inline void rgb24ToY_c(uint8_t *dst, const uint8_t *src, long width,
...
@@ -299,7 +299,7 @@ static inline void rgb24ToY_c(uint8_t *dst, const uint8_t *src, long width,
}
}
static
inline
void
rgb24ToUV_c
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
static
inline
void
rgb24ToUV_c
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
long
width
,
uint32_t
*
unused
)
const
uint8_t
*
src2
,
int
width
,
uint32_t
*
unused
)
{
{
int
i
;
int
i
;
assert
(
src1
==
src2
);
assert
(
src1
==
src2
);
...
@@ -314,7 +314,7 @@ static inline void rgb24ToUV_c(uint8_t *dstU, uint8_t *dstV, const uint8_t *src1
...
@@ -314,7 +314,7 @@ static inline void rgb24ToUV_c(uint8_t *dstU, uint8_t *dstV, const uint8_t *src1
}
}
static
inline
void
rgb24ToUV_half_c
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
static
inline
void
rgb24ToUV_half_c
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
long
width
,
uint32_t
*
unused
)
const
uint8_t
*
src2
,
int
width
,
uint32_t
*
unused
)
{
{
int
i
;
int
i
;
assert
(
src1
==
src2
);
assert
(
src1
==
src2
);
...
@@ -333,7 +333,7 @@ static inline void rgb24ToUV_half_c(uint8_t *dstU, uint8_t *dstV, const uint8_t
...
@@ -333,7 +333,7 @@ static inline void rgb24ToUV_half_c(uint8_t *dstU, uint8_t *dstV, const uint8_t
static
inline
void
hScale_c
(
int16_t
*
dst
,
int
dstW
,
const
uint8_t
*
src
,
static
inline
void
hScale_c
(
int16_t
*
dst
,
int
dstW
,
const
uint8_t
*
src
,
int
srcW
,
int
xInc
,
int
srcW
,
int
xInc
,
const
int16_t
*
filter
,
const
int16_t
*
filterPos
,
const
int16_t
*
filter
,
const
int16_t
*
filterPos
,
long
filterSize
)
int
filterSize
)
{
{
int
i
;
int
i
;
for
(
i
=
0
;
i
<
dstW
;
i
++
)
{
for
(
i
=
0
;
i
<
dstW
;
i
++
)
{
...
@@ -380,7 +380,7 @@ static void lumRangeFromJpeg_c(uint16_t *dst, int width)
...
@@ -380,7 +380,7 @@ static void lumRangeFromJpeg_c(uint16_t *dst, int width)
dst
[
i
]
=
(
dst
[
i
]
*
14071
+
33561947
)
>>
14
;
dst
[
i
]
=
(
dst
[
i
]
*
14071
+
33561947
)
>>
14
;
}
}
static
inline
void
hyscale_fast_c
(
SwsContext
*
c
,
int16_t
*
dst
,
long
dstWidth
,
static
inline
void
hyscale_fast_c
(
SwsContext
*
c
,
int16_t
*
dst
,
int
dstWidth
,
const
uint8_t
*
src
,
int
srcW
,
int
xInc
)
const
uint8_t
*
src
,
int
srcW
,
int
xInc
)
{
{
int
i
;
int
i
;
...
@@ -394,14 +394,14 @@ static inline void hyscale_fast_c(SwsContext *c, int16_t *dst, long dstWidth,
...
@@ -394,14 +394,14 @@ static inline void hyscale_fast_c(SwsContext *c, int16_t *dst, long dstWidth,
}
}
// *** horizontal scale Y line to temp buffer
// *** horizontal scale Y line to temp buffer
static
inline
void
hyscale_c
(
SwsContext
*
c
,
uint16_t
*
dst
,
long
dstWidth
,
static
inline
void
hyscale_c
(
SwsContext
*
c
,
uint16_t
*
dst
,
int
dstWidth
,
const
uint8_t
*
src
,
int
srcW
,
int
xInc
,
const
uint8_t
*
src
,
int
srcW
,
int
xInc
,
const
int16_t
*
hLumFilter
,
const
int16_t
*
hLumFilter
,
const
int16_t
*
hLumFilterPos
,
int
hLumFilterSize
,
const
int16_t
*
hLumFilterPos
,
int
hLumFilterSize
,
uint8_t
*
formatConvBuffer
,
uint8_t
*
formatConvBuffer
,
uint32_t
*
pal
,
int
isAlpha
)
uint32_t
*
pal
,
int
isAlpha
)
{
{
void
(
*
toYV12
)(
uint8_t
*
,
const
uint8_t
*
,
long
,
uint32_t
*
)
=
isAlpha
?
c
->
alpToYV12
:
c
->
lumToYV12
;
void
(
*
toYV12
)(
uint8_t
*
,
const
uint8_t
*
,
int
,
uint32_t
*
)
=
isAlpha
?
c
->
alpToYV12
:
c
->
lumToYV12
;
void
(
*
convertRange
)(
uint16_t
*
,
int
)
=
isAlpha
?
NULL
:
c
->
lumConvertRange
;
void
(
*
convertRange
)(
uint16_t
*
,
int
)
=
isAlpha
?
NULL
:
c
->
lumConvertRange
;
src
+=
isAlpha
?
c
->
alpSrcOffset
:
c
->
lumSrcOffset
;
src
+=
isAlpha
?
c
->
alpSrcOffset
:
c
->
lumSrcOffset
;
...
@@ -422,7 +422,7 @@ static inline void hyscale_c(SwsContext *c, uint16_t *dst, long dstWidth,
...
@@ -422,7 +422,7 @@ static inline void hyscale_c(SwsContext *c, uint16_t *dst, long dstWidth,
}
}
static
inline
void
hcscale_fast_c
(
SwsContext
*
c
,
int16_t
*
dst1
,
int16_t
*
dst2
,
static
inline
void
hcscale_fast_c
(
SwsContext
*
c
,
int16_t
*
dst1
,
int16_t
*
dst2
,
long
dstWidth
,
const
uint8_t
*
src1
,
int
dstWidth
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
srcW
,
int
xInc
)
const
uint8_t
*
src2
,
int
srcW
,
int
xInc
)
{
{
int
i
;
int
i
;
...
@@ -436,7 +436,7 @@ static inline void hcscale_fast_c(SwsContext *c, int16_t *dst1, int16_t *dst2,
...
@@ -436,7 +436,7 @@ static inline void hcscale_fast_c(SwsContext *c, int16_t *dst1, int16_t *dst2,
}
}
}
}
inline
static
void
hcscale_c
(
SwsContext
*
c
,
uint16_t
*
dst1
,
uint16_t
*
dst2
,
long
dstWidth
,
inline
static
void
hcscale_c
(
SwsContext
*
c
,
uint16_t
*
dst1
,
uint16_t
*
dst2
,
int
dstWidth
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
srcW
,
int
xInc
,
const
int16_t
*
hChrFilter
,
int
srcW
,
int
xInc
,
const
int16_t
*
hChrFilter
,
const
int16_t
*
hChrFilterPos
,
int
hChrFilterSize
,
const
int16_t
*
hChrFilterPos
,
int
hChrFilterSize
,
...
...
libswscale/x86/rgb2rgb_template.c
View file @
b8e89339
...
@@ -61,7 +61,7 @@
...
@@ -61,7 +61,7 @@
#if !COMPILE_TEMPLATE_AMD3DNOW
#if !COMPILE_TEMPLATE_AMD3DNOW
static
inline
void
RENAME
(
rgb24tobgr32
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
RENAME
(
rgb24tobgr32
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
uint8_t
*
dest
=
dst
;
uint8_t
*
dest
=
dst
;
const
uint8_t
*
s
=
src
;
const
uint8_t
*
s
=
src
;
...
@@ -143,7 +143,7 @@ static inline void RENAME(rgb24tobgr32)(const uint8_t *src, uint8_t *dst, long s
...
@@ -143,7 +143,7 @@ static inline void RENAME(rgb24tobgr32)(const uint8_t *src, uint8_t *dst, long s
MOVNTQ" %%mm4, 16%0"
MOVNTQ" %%mm4, 16%0"
static
inline
void
RENAME
(
rgb32tobgr24
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
RENAME
(
rgb32tobgr24
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
uint8_t
*
dest
=
dst
;
uint8_t
*
dest
=
dst
;
const
uint8_t
*
s
=
src
;
const
uint8_t
*
s
=
src
;
...
@@ -186,7 +186,7 @@ static inline void RENAME(rgb32tobgr24)(const uint8_t *src, uint8_t *dst, long s
...
@@ -186,7 +186,7 @@ static inline void RENAME(rgb32tobgr24)(const uint8_t *src, uint8_t *dst, long s
MMX2, 3DNOW optimization by Nick Kurshev
MMX2, 3DNOW optimization by Nick Kurshev
32-bit C version, and and&add trick by Michael Niedermayer
32-bit C version, and and&add trick by Michael Niedermayer
*/
*/
static
inline
void
RENAME
(
rgb15to16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
RENAME
(
rgb15to16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
register
const
uint8_t
*
s
=
src
;
register
const
uint8_t
*
s
=
src
;
register
uint8_t
*
d
=
dst
;
register
uint8_t
*
d
=
dst
;
...
@@ -230,7 +230,7 @@ static inline void RENAME(rgb15to16)(const uint8_t *src, uint8_t *dst, long src_
...
@@ -230,7 +230,7 @@ static inline void RENAME(rgb15to16)(const uint8_t *src, uint8_t *dst, long src_
}
}
}
}
static
inline
void
RENAME
(
rgb16to15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
RENAME
(
rgb16to15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
register
const
uint8_t
*
s
=
src
;
register
const
uint8_t
*
s
=
src
;
register
uint8_t
*
d
=
dst
;
register
uint8_t
*
d
=
dst
;
...
@@ -279,7 +279,7 @@ static inline void RENAME(rgb16to15)(const uint8_t *src, uint8_t *dst, long src_
...
@@ -279,7 +279,7 @@ static inline void RENAME(rgb16to15)(const uint8_t *src, uint8_t *dst, long src_
}
}
}
}
static
inline
void
RENAME
(
rgb32to16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
RENAME
(
rgb32to16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint8_t
*
s
=
src
;
const
uint8_t
*
s
=
src
;
const
uint8_t
*
end
;
const
uint8_t
*
end
;
...
@@ -371,7 +371,7 @@ static inline void RENAME(rgb32to16)(const uint8_t *src, uint8_t *dst, long src_
...
@@ -371,7 +371,7 @@ static inline void RENAME(rgb32to16)(const uint8_t *src, uint8_t *dst, long src_
}
}
}
}
static
inline
void
RENAME
(
rgb32tobgr16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
RENAME
(
rgb32tobgr16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint8_t
*
s
=
src
;
const
uint8_t
*
s
=
src
;
const
uint8_t
*
end
;
const
uint8_t
*
end
;
...
@@ -426,7 +426,7 @@ static inline void RENAME(rgb32tobgr16)(const uint8_t *src, uint8_t *dst, long s
...
@@ -426,7 +426,7 @@ static inline void RENAME(rgb32tobgr16)(const uint8_t *src, uint8_t *dst, long s
}
}
}
}
static
inline
void
RENAME
(
rgb32to15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
RENAME
(
rgb32to15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint8_t
*
s
=
src
;
const
uint8_t
*
s
=
src
;
const
uint8_t
*
end
;
const
uint8_t
*
end
;
...
@@ -518,7 +518,7 @@ static inline void RENAME(rgb32to15)(const uint8_t *src, uint8_t *dst, long src_
...
@@ -518,7 +518,7 @@ static inline void RENAME(rgb32to15)(const uint8_t *src, uint8_t *dst, long src_
}
}
}
}
static
inline
void
RENAME
(
rgb32tobgr15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
RENAME
(
rgb32tobgr15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint8_t
*
s
=
src
;
const
uint8_t
*
s
=
src
;
const
uint8_t
*
end
;
const
uint8_t
*
end
;
...
@@ -573,7 +573,7 @@ static inline void RENAME(rgb32tobgr15)(const uint8_t *src, uint8_t *dst, long s
...
@@ -573,7 +573,7 @@ static inline void RENAME(rgb32tobgr15)(const uint8_t *src, uint8_t *dst, long s
}
}
}
}
static
inline
void
RENAME
(
rgb24tobgr16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
RENAME
(
rgb24tobgr16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint8_t
*
s
=
src
;
const
uint8_t
*
s
=
src
;
const
uint8_t
*
end
;
const
uint8_t
*
end
;
...
@@ -630,7 +630,7 @@ static inline void RENAME(rgb24tobgr16)(const uint8_t *src, uint8_t *dst, long s
...
@@ -630,7 +630,7 @@ static inline void RENAME(rgb24tobgr16)(const uint8_t *src, uint8_t *dst, long s
}
}
}
}
static
inline
void
RENAME
(
rgb24to16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
RENAME
(
rgb24to16
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint8_t
*
s
=
src
;
const
uint8_t
*
s
=
src
;
const
uint8_t
*
end
;
const
uint8_t
*
end
;
...
@@ -687,7 +687,7 @@ static inline void RENAME(rgb24to16)(const uint8_t *src, uint8_t *dst, long src_
...
@@ -687,7 +687,7 @@ static inline void RENAME(rgb24to16)(const uint8_t *src, uint8_t *dst, long src_
}
}
}
}
static
inline
void
RENAME
(
rgb24tobgr15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
RENAME
(
rgb24tobgr15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint8_t
*
s
=
src
;
const
uint8_t
*
s
=
src
;
const
uint8_t
*
end
;
const
uint8_t
*
end
;
...
@@ -744,7 +744,7 @@ static inline void RENAME(rgb24tobgr15)(const uint8_t *src, uint8_t *dst, long s
...
@@ -744,7 +744,7 @@ static inline void RENAME(rgb24tobgr15)(const uint8_t *src, uint8_t *dst, long s
}
}
}
}
static
inline
void
RENAME
(
rgb24to15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
RENAME
(
rgb24to15
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint8_t
*
s
=
src
;
const
uint8_t
*
s
=
src
;
const
uint8_t
*
end
;
const
uint8_t
*
end
;
...
@@ -822,7 +822,7 @@ static inline void RENAME(rgb24to15)(const uint8_t *src, uint8_t *dst, long src_
...
@@ -822,7 +822,7 @@ static inline void RENAME(rgb24to15)(const uint8_t *src, uint8_t *dst, long src_
|
|
original bits
original bits
*/
*/
static
inline
void
RENAME
(
rgb15tobgr24
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
RENAME
(
rgb15tobgr24
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint16_t
*
end
;
const
uint16_t
*
end
;
const
uint16_t
*
mm_end
;
const
uint16_t
*
mm_end
;
...
@@ -925,7 +925,7 @@ static inline void RENAME(rgb15tobgr24)(const uint8_t *src, uint8_t *dst, long s
...
@@ -925,7 +925,7 @@ static inline void RENAME(rgb15tobgr24)(const uint8_t *src, uint8_t *dst, long s
}
}
}
}
static
inline
void
RENAME
(
rgb16tobgr24
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
RENAME
(
rgb16tobgr24
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint16_t
*
end
;
const
uint16_t
*
end
;
const
uint16_t
*
mm_end
;
const
uint16_t
*
mm_end
;
...
@@ -1046,7 +1046,7 @@ static inline void RENAME(rgb16tobgr24)(const uint8_t *src, uint8_t *dst, long s
...
@@ -1046,7 +1046,7 @@ static inline void RENAME(rgb16tobgr24)(const uint8_t *src, uint8_t *dst, long s
MOVNTQ" %%mm0, %0 \n\t" \
MOVNTQ" %%mm0, %0 \n\t" \
MOVNTQ" %%mm3, 8%0 \n\t" \
MOVNTQ" %%mm3, 8%0 \n\t" \
static
inline
void
RENAME
(
rgb15to32
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
RENAME
(
rgb15to32
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint16_t
*
end
;
const
uint16_t
*
end
;
const
uint16_t
*
mm_end
;
const
uint16_t
*
mm_end
;
...
@@ -1088,7 +1088,7 @@ static inline void RENAME(rgb15to32)(const uint8_t *src, uint8_t *dst, long src_
...
@@ -1088,7 +1088,7 @@ static inline void RENAME(rgb15to32)(const uint8_t *src, uint8_t *dst, long src_
}
}
}
}
static
inline
void
RENAME
(
rgb16to32
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
RENAME
(
rgb16to32
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
const
uint16_t
*
end
;
const
uint16_t
*
end
;
const
uint16_t
*
mm_end
;
const
uint16_t
*
mm_end
;
...
@@ -1130,7 +1130,7 @@ static inline void RENAME(rgb16to32)(const uint8_t *src, uint8_t *dst, long src_
...
@@ -1130,7 +1130,7 @@ static inline void RENAME(rgb16to32)(const uint8_t *src, uint8_t *dst, long src_
}
}
}
}
static
inline
void
RENAME
(
shuffle_bytes_2103
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
RENAME
(
shuffle_bytes_2103
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
x86_reg
idx
=
15
-
src_size
;
x86_reg
idx
=
15
-
src_size
;
const
uint8_t
*
s
=
src
-
idx
;
const
uint8_t
*
s
=
src
-
idx
;
...
@@ -1192,7 +1192,7 @@ static inline void RENAME(shuffle_bytes_2103)(const uint8_t *src, uint8_t *dst,
...
@@ -1192,7 +1192,7 @@ static inline void RENAME(shuffle_bytes_2103)(const uint8_t *src, uint8_t *dst,
}
}
}
}
static
inline
void
RENAME
(
rgb24tobgr24
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
src_size
)
static
inline
void
RENAME
(
rgb24tobgr24
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
src_size
)
{
{
unsigned
i
;
unsigned
i
;
x86_reg
mmx_size
=
23
-
src_size
;
x86_reg
mmx_size
=
23
-
src_size
;
...
@@ -1260,10 +1260,10 @@ static inline void RENAME(rgb24tobgr24)(const uint8_t *src, uint8_t *dst, long s
...
@@ -1260,10 +1260,10 @@ static inline void RENAME(rgb24tobgr24)(const uint8_t *src, uint8_t *dst, long s
}
}
static
inline
void
RENAME
(
yuvPlanartoyuy2
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
static
inline
void
RENAME
(
yuvPlanartoyuy2
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
dstStride
,
long
vertLumPerChroma
)
int
lumStride
,
int
chromStride
,
int
dstStride
,
int
vertLumPerChroma
)
{
{
long
y
;
int
y
;
const
x86_reg
chromWidth
=
width
>>
1
;
const
x86_reg
chromWidth
=
width
>>
1
;
for
(
y
=
0
;
y
<
height
;
y
++
)
{
for
(
y
=
0
;
y
<
height
;
y
++
)
{
//FIXME handle 2 lines at once (fewer prefetches, reuse some chroma, but very likely memory-limited anyway)
//FIXME handle 2 lines at once (fewer prefetches, reuse some chroma, but very likely memory-limited anyway)
...
@@ -1317,18 +1317,18 @@ static inline void RENAME(yuvPlanartoyuy2)(const uint8_t *ysrc, const uint8_t *u
...
@@ -1317,18 +1317,18 @@ static inline void RENAME(yuvPlanartoyuy2)(const uint8_t *ysrc, const uint8_t *u
* (If this is a problem for anyone then tell me, and I will fix it.)
* (If this is a problem for anyone then tell me, and I will fix it.)
*/
*/
static
inline
void
RENAME
(
yv12toyuy2
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
static
inline
void
RENAME
(
yv12toyuy2
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
dstStride
)
int
lumStride
,
int
chromStride
,
int
dstStride
)
{
{
//FIXME interpolate chroma
//FIXME interpolate chroma
RENAME
(
yuvPlanartoyuy2
)(
ysrc
,
usrc
,
vsrc
,
dst
,
width
,
height
,
lumStride
,
chromStride
,
dstStride
,
2
);
RENAME
(
yuvPlanartoyuy2
)(
ysrc
,
usrc
,
vsrc
,
dst
,
width
,
height
,
lumStride
,
chromStride
,
dstStride
,
2
);
}
}
static
inline
void
RENAME
(
yuvPlanartouyvy
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
static
inline
void
RENAME
(
yuvPlanartouyvy
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
dstStride
,
long
vertLumPerChroma
)
int
lumStride
,
int
chromStride
,
int
dstStride
,
int
vertLumPerChroma
)
{
{
long
y
;
int
y
;
const
x86_reg
chromWidth
=
width
>>
1
;
const
x86_reg
chromWidth
=
width
>>
1
;
for
(
y
=
0
;
y
<
height
;
y
++
)
{
for
(
y
=
0
;
y
<
height
;
y
++
)
{
//FIXME handle 2 lines at once (fewer prefetches, reuse some chroma, but very likely memory-limited anyway)
//FIXME handle 2 lines at once (fewer prefetches, reuse some chroma, but very likely memory-limited anyway)
...
@@ -1382,8 +1382,8 @@ static inline void RENAME(yuvPlanartouyvy)(const uint8_t *ysrc, const uint8_t *u
...
@@ -1382,8 +1382,8 @@ static inline void RENAME(yuvPlanartouyvy)(const uint8_t *ysrc, const uint8_t *u
* (If this is a problem for anyone then tell me, and I will fix it.)
* (If this is a problem for anyone then tell me, and I will fix it.)
*/
*/
static
inline
void
RENAME
(
yv12touyvy
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
static
inline
void
RENAME
(
yv12touyvy
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
dstStride
)
int
lumStride
,
int
chromStride
,
int
dstStride
)
{
{
//FIXME interpolate chroma
//FIXME interpolate chroma
RENAME
(
yuvPlanartouyvy
)(
ysrc
,
usrc
,
vsrc
,
dst
,
width
,
height
,
lumStride
,
chromStride
,
dstStride
,
2
);
RENAME
(
yuvPlanartouyvy
)(
ysrc
,
usrc
,
vsrc
,
dst
,
width
,
height
,
lumStride
,
chromStride
,
dstStride
,
2
);
...
@@ -1393,8 +1393,8 @@ static inline void RENAME(yv12touyvy)(const uint8_t *ysrc, const uint8_t *usrc,
...
@@ -1393,8 +1393,8 @@ static inline void RENAME(yv12touyvy)(const uint8_t *ysrc, const uint8_t *usrc,
* Width should be a multiple of 16.
* Width should be a multiple of 16.
*/
*/
static
inline
void
RENAME
(
yuv422ptouyvy
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
static
inline
void
RENAME
(
yuv422ptouyvy
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
dstStride
)
int
lumStride
,
int
chromStride
,
int
dstStride
)
{
{
RENAME
(
yuvPlanartouyvy
)(
ysrc
,
usrc
,
vsrc
,
dst
,
width
,
height
,
lumStride
,
chromStride
,
dstStride
,
1
);
RENAME
(
yuvPlanartouyvy
)(
ysrc
,
usrc
,
vsrc
,
dst
,
width
,
height
,
lumStride
,
chromStride
,
dstStride
,
1
);
}
}
...
@@ -1403,8 +1403,8 @@ static inline void RENAME(yuv422ptouyvy)(const uint8_t *ysrc, const uint8_t *usr
...
@@ -1403,8 +1403,8 @@ static inline void RENAME(yuv422ptouyvy)(const uint8_t *ysrc, const uint8_t *usr
* Width should be a multiple of 16.
* Width should be a multiple of 16.
*/
*/
static
inline
void
RENAME
(
yuv422ptoyuy2
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
static
inline
void
RENAME
(
yuv422ptoyuy2
)(
const
uint8_t
*
ysrc
,
const
uint8_t
*
usrc
,
const
uint8_t
*
vsrc
,
uint8_t
*
dst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
dstStride
)
int
lumStride
,
int
chromStride
,
int
dstStride
)
{
{
RENAME
(
yuvPlanartoyuy2
)(
ysrc
,
usrc
,
vsrc
,
dst
,
width
,
height
,
lumStride
,
chromStride
,
dstStride
,
1
);
RENAME
(
yuvPlanartoyuy2
)(
ysrc
,
usrc
,
vsrc
,
dst
,
width
,
height
,
lumStride
,
chromStride
,
dstStride
,
1
);
}
}
...
@@ -1414,10 +1414,10 @@ static inline void RENAME(yuv422ptoyuy2)(const uint8_t *ysrc, const uint8_t *usr
...
@@ -1414,10 +1414,10 @@ static inline void RENAME(yuv422ptoyuy2)(const uint8_t *ysrc, const uint8_t *usr
* (If this is a problem for anyone then tell me, and I will fix it.)
* (If this is a problem for anyone then tell me, and I will fix it.)
*/
*/
static
inline
void
RENAME
(
yuy2toyv12
)(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
static
inline
void
RENAME
(
yuy2toyv12
)(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
)
int
lumStride
,
int
chromStride
,
int
srcStride
)
{
{
long
y
;
int
y
;
const
x86_reg
chromWidth
=
width
>>
1
;
const
x86_reg
chromWidth
=
width
>>
1
;
for
(
y
=
0
;
y
<
height
;
y
+=
2
)
{
for
(
y
=
0
;
y
<
height
;
y
+=
2
)
{
__asm__
volatile
(
__asm__
volatile
(
...
@@ -1513,9 +1513,9 @@ static inline void RENAME(yuy2toyv12)(const uint8_t *src, uint8_t *ydst, uint8_t
...
@@ -1513,9 +1513,9 @@ static inline void RENAME(yuy2toyv12)(const uint8_t *src, uint8_t *ydst, uint8_t
#endif
/* !COMPILE_TEMPLATE_AMD3DNOW */
#endif
/* !COMPILE_TEMPLATE_AMD3DNOW */
#if COMPILE_TEMPLATE_MMX2 || COMPILE_TEMPLATE_AMD3DNOW
#if COMPILE_TEMPLATE_MMX2 || COMPILE_TEMPLATE_AMD3DNOW
static
inline
void
RENAME
(
planar2x
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
long
srcWidth
,
long
srcHeight
,
long
srcStride
,
long
dstStride
)
static
inline
void
RENAME
(
planar2x
)(
const
uint8_t
*
src
,
uint8_t
*
dst
,
int
srcWidth
,
int
srcHeight
,
int
srcStride
,
int
dstStride
)
{
{
long
x
,
y
;
int
x
,
y
;
dst
[
0
]
=
src
[
0
];
dst
[
0
]
=
src
[
0
];
...
@@ -1612,10 +1612,10 @@ static inline void RENAME(planar2x)(const uint8_t *src, uint8_t *dst, long srcWi
...
@@ -1612,10 +1612,10 @@ static inline void RENAME(planar2x)(const uint8_t *src, uint8_t *dst, long srcWi
* FIXME: Write HQ version.
* FIXME: Write HQ version.
*/
*/
static
inline
void
RENAME
(
uyvytoyv12
)(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
static
inline
void
RENAME
(
uyvytoyv12
)(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
)
int
lumStride
,
int
chromStride
,
int
srcStride
)
{
{
long
y
;
int
y
;
const
x86_reg
chromWidth
=
width
>>
1
;
const
x86_reg
chromWidth
=
width
>>
1
;
for
(
y
=
0
;
y
<
height
;
y
+=
2
)
{
for
(
y
=
0
;
y
<
height
;
y
+=
2
)
{
__asm__
volatile
(
__asm__
volatile
(
...
@@ -1718,13 +1718,13 @@ static inline void RENAME(uyvytoyv12)(const uint8_t *src, uint8_t *ydst, uint8_t
...
@@ -1718,13 +1718,13 @@ static inline void RENAME(uyvytoyv12)(const uint8_t *src, uint8_t *ydst, uint8_t
* FIXME: Write HQ version.
* FIXME: Write HQ version.
*/
*/
static
inline
void
RENAME
(
rgb24toyv12
)(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
static
inline
void
RENAME
(
rgb24toyv12
)(
const
uint8_t
*
src
,
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
)
int
lumStride
,
int
chromStride
,
int
srcStride
)
{
{
long
y
;
int
y
;
const
x86_reg
chromWidth
=
width
>>
1
;
const
x86_reg
chromWidth
=
width
>>
1
;
for
(
y
=
0
;
y
<
height
-
2
;
y
+=
2
)
{
for
(
y
=
0
;
y
<
height
-
2
;
y
+=
2
)
{
long
i
;
int
i
;
for
(
i
=
0
;
i
<
2
;
i
++
)
{
for
(
i
=
0
;
i
<
2
;
i
++
)
{
__asm__
volatile
(
__asm__
volatile
(
"mov %2, %%"
REG_a
"
\n\t
"
"mov %2, %%"
REG_a
"
\n\t
"
...
@@ -1963,13 +1963,13 @@ static inline void RENAME(rgb24toyv12)(const uint8_t *src, uint8_t *ydst, uint8_
...
@@ -1963,13 +1963,13 @@ static inline void RENAME(rgb24toyv12)(const uint8_t *src, uint8_t *ydst, uint8_
#if !COMPILE_TEMPLATE_AMD3DNOW
#if !COMPILE_TEMPLATE_AMD3DNOW
static
void
RENAME
(
interleaveBytes
)(
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
uint8_t
*
dest
,
static
void
RENAME
(
interleaveBytes
)(
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
uint8_t
*
dest
,
long
width
,
long
height
,
long
src1Stride
,
int
width
,
int
height
,
int
src1Stride
,
long
src2Stride
,
long
dstStride
)
int
src2Stride
,
int
dstStride
)
{
{
long
h
;
int
h
;
for
(
h
=
0
;
h
<
height
;
h
++
)
{
for
(
h
=
0
;
h
<
height
;
h
++
)
{
long
w
;
int
w
;
#if COMPILE_TEMPLATE_SSE2
#if COMPILE_TEMPLATE_SSE2
__asm__
(
__asm__
(
...
@@ -2037,12 +2037,12 @@ static void RENAME(interleaveBytes)(const uint8_t *src1, const uint8_t *src2, ui
...
@@ -2037,12 +2037,12 @@ static void RENAME(interleaveBytes)(const uint8_t *src1, const uint8_t *src2, ui
#if !COMPILE_TEMPLATE_AMD3DNOW
#if !COMPILE_TEMPLATE_AMD3DNOW
static
inline
void
RENAME
(
vu9_to_vu12
)(
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
static
inline
void
RENAME
(
vu9_to_vu12
)(
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
uint8_t
*
dst1
,
uint8_t
*
dst2
,
uint8_t
*
dst1
,
uint8_t
*
dst2
,
long
width
,
long
height
,
int
width
,
int
height
,
long
srcStride1
,
long
srcStride2
,
int
srcStride1
,
int
srcStride2
,
long
dstStride1
,
long
dstStride2
)
int
dstStride1
,
int
dstStride2
)
{
{
x86_reg
y
;
x86_reg
y
;
long
x
,
w
,
h
;
int
x
,
w
,
h
;
w
=
width
/
2
;
h
=
height
/
2
;
w
=
width
/
2
;
h
=
height
/
2
;
__asm__
volatile
(
__asm__
volatile
(
PREFETCH
" %0
\n\t
"
PREFETCH
" %0
\n\t
"
...
@@ -2131,12 +2131,12 @@ static inline void RENAME(vu9_to_vu12)(const uint8_t *src1, const uint8_t *src2,
...
@@ -2131,12 +2131,12 @@ static inline void RENAME(vu9_to_vu12)(const uint8_t *src1, const uint8_t *src2,
static
inline
void
RENAME
(
yvu9_to_yuy2
)(
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
const
uint8_t
*
src3
,
static
inline
void
RENAME
(
yvu9_to_yuy2
)(
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
const
uint8_t
*
src3
,
uint8_t
*
dst
,
uint8_t
*
dst
,
long
width
,
long
height
,
int
width
,
int
height
,
long
srcStride1
,
long
srcStride2
,
int
srcStride1
,
int
srcStride2
,
long
srcStride3
,
long
dstStride
)
int
srcStride3
,
int
dstStride
)
{
{
x86_reg
x
;
x86_reg
x
;
long
y
,
w
,
h
;
int
y
,
w
,
h
;
w
=
width
/
2
;
h
=
height
;
w
=
width
/
2
;
h
=
height
;
for
(
y
=
0
;
y
<
h
;
y
++
)
{
for
(
y
=
0
;
y
<
h
;
y
++
)
{
const
uint8_t
*
yp
=
src1
+
srcStride1
*
y
;
const
uint8_t
*
yp
=
src1
+
srcStride1
*
y
;
...
@@ -2197,7 +2197,7 @@ static inline void RENAME(yvu9_to_yuy2)(const uint8_t *src1, const uint8_t *src2
...
@@ -2197,7 +2197,7 @@ static inline void RENAME(yvu9_to_yuy2)(const uint8_t *src1, const uint8_t *src2
:
"memory"
);
:
"memory"
);
}
}
for
(;
x
<
w
;
x
++
)
{
for
(;
x
<
w
;
x
++
)
{
const
long
x2
=
x
<<
2
;
const
int
x2
=
x
<<
2
;
d
[
8
*
x
+
0
]
=
yp
[
x2
];
d
[
8
*
x
+
0
]
=
yp
[
x2
];
d
[
8
*
x
+
1
]
=
up
[
x
];
d
[
8
*
x
+
1
]
=
up
[
x
];
d
[
8
*
x
+
2
]
=
yp
[
x2
+
1
];
d
[
8
*
x
+
2
]
=
yp
[
x2
+
1
];
...
@@ -2459,11 +2459,11 @@ static void RENAME(extract_odd2avg)(const uint8_t *src0, const uint8_t *src1, ui
...
@@ -2459,11 +2459,11 @@ static void RENAME(extract_odd2avg)(const uint8_t *src0, const uint8_t *src1, ui
}
}
static
void
RENAME
(
yuyvtoyuv420
)(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
static
void
RENAME
(
yuyvtoyuv420
)(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
)
int
lumStride
,
int
chromStride
,
int
srcStride
)
{
{
long
y
;
int
y
;
const
long
chromWidth
=
-
((
-
width
)
>>
1
);
const
int
chromWidth
=
-
((
-
width
)
>>
1
);
for
(
y
=
0
;
y
<
height
;
y
++
)
{
for
(
y
=
0
;
y
<
height
;
y
++
)
{
RENAME
(
extract_even
)(
src
,
ydst
,
width
);
RENAME
(
extract_even
)(
src
,
ydst
,
width
);
...
@@ -2485,11 +2485,11 @@ static void RENAME(yuyvtoyuv420)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, co
...
@@ -2485,11 +2485,11 @@ static void RENAME(yuyvtoyuv420)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, co
#if !COMPILE_TEMPLATE_AMD3DNOW
#if !COMPILE_TEMPLATE_AMD3DNOW
static
void
RENAME
(
yuyvtoyuv422
)(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
static
void
RENAME
(
yuyvtoyuv422
)(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
)
int
lumStride
,
int
chromStride
,
int
srcStride
)
{
{
long
y
;
int
y
;
const
long
chromWidth
=
-
((
-
width
)
>>
1
);
const
int
chromWidth
=
-
((
-
width
)
>>
1
);
for
(
y
=
0
;
y
<
height
;
y
++
)
{
for
(
y
=
0
;
y
<
height
;
y
++
)
{
RENAME
(
extract_even
)(
src
,
ydst
,
width
);
RENAME
(
extract_even
)(
src
,
ydst
,
width
);
...
@@ -2509,11 +2509,11 @@ static void RENAME(yuyvtoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, co
...
@@ -2509,11 +2509,11 @@ static void RENAME(yuyvtoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, co
#endif
/* !COMPILE_TEMPLATE_AMD3DNOW */
#endif
/* !COMPILE_TEMPLATE_AMD3DNOW */
static
void
RENAME
(
uyvytoyuv420
)(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
static
void
RENAME
(
uyvytoyuv420
)(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
)
int
lumStride
,
int
chromStride
,
int
srcStride
)
{
{
long
y
;
int
y
;
const
long
chromWidth
=
-
((
-
width
)
>>
1
);
const
int
chromWidth
=
-
((
-
width
)
>>
1
);
for
(
y
=
0
;
y
<
height
;
y
++
)
{
for
(
y
=
0
;
y
<
height
;
y
++
)
{
RENAME
(
extract_even
)(
src
+
1
,
ydst
,
width
);
RENAME
(
extract_even
)(
src
+
1
,
ydst
,
width
);
...
@@ -2535,11 +2535,11 @@ static void RENAME(uyvytoyuv420)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, co
...
@@ -2535,11 +2535,11 @@ static void RENAME(uyvytoyuv420)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, co
#if !COMPILE_TEMPLATE_AMD3DNOW
#if !COMPILE_TEMPLATE_AMD3DNOW
static
void
RENAME
(
uyvytoyuv422
)(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
static
void
RENAME
(
uyvytoyuv422
)(
uint8_t
*
ydst
,
uint8_t
*
udst
,
uint8_t
*
vdst
,
const
uint8_t
*
src
,
long
width
,
long
height
,
int
width
,
int
height
,
long
lumStride
,
long
chromStride
,
long
srcStride
)
int
lumStride
,
int
chromStride
,
int
srcStride
)
{
{
long
y
;
int
y
;
const
long
chromWidth
=
-
((
-
width
)
>>
1
);
const
int
chromWidth
=
-
((
-
width
)
>>
1
);
for
(
y
=
0
;
y
<
height
;
y
++
)
{
for
(
y
=
0
;
y
<
height
;
y
++
)
{
RENAME
(
extract_even
)(
src
+
1
,
ydst
,
width
);
RENAME
(
extract_even
)(
src
+
1
,
ydst
,
width
);
...
...
libswscale/x86/swscale_template.c
View file @
b8e89339
...
@@ -78,7 +78,7 @@ static inline void RENAME(yuv2yuvX)(SwsContext *c, const int16_t *lumFilter,
...
@@ -78,7 +78,7 @@ static inline void RENAME(yuv2yuvX)(SwsContext *c, const int16_t *lumFilter,
const
int16_t
**
chrVSrc
,
const
int16_t
**
chrVSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
uint8_t
*
dest
,
uint8_t
*
uDest
,
uint8_t
*
vDest
,
uint8_t
*
dest
,
uint8_t
*
uDest
,
uint8_t
*
vDest
,
uint8_t
*
aDest
,
long
dstW
,
long
chrDstW
)
uint8_t
*
aDest
,
int
dstW
,
int
chrDstW
)
{
{
if
(
uDest
)
{
if
(
uDest
)
{
x86_reg
uv_off
=
c
->
uv_off
;
x86_reg
uv_off
=
c
->
uv_off
;
...
@@ -159,7 +159,7 @@ static inline void RENAME(yuv2yuvX_ar)(SwsContext *c, const int16_t *lumFilter,
...
@@ -159,7 +159,7 @@ static inline void RENAME(yuv2yuvX_ar)(SwsContext *c, const int16_t *lumFilter,
const
int16_t
**
chrVSrc
,
const
int16_t
**
chrVSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
uint8_t
*
dest
,
uint8_t
*
uDest
,
uint8_t
*
vDest
,
uint8_t
*
dest
,
uint8_t
*
uDest
,
uint8_t
*
vDest
,
uint8_t
*
aDest
,
long
dstW
,
long
chrDstW
)
uint8_t
*
aDest
,
int
dstW
,
int
chrDstW
)
{
{
if
(
uDest
)
{
if
(
uDest
)
{
x86_reg
uv_off
=
c
->
uv_off
;
x86_reg
uv_off
=
c
->
uv_off
;
...
@@ -190,9 +190,9 @@ static inline void RENAME(yuv2yuv1)(SwsContext *c, const int16_t *lumSrc,
...
@@ -190,9 +190,9 @@ static inline void RENAME(yuv2yuv1)(SwsContext *c, const int16_t *lumSrc,
const
int16_t
*
chrUSrc
,
const
int16_t
*
chrVSrc
,
const
int16_t
*
chrUSrc
,
const
int16_t
*
chrVSrc
,
const
int16_t
*
alpSrc
,
const
int16_t
*
alpSrc
,
uint8_t
*
dest
,
uint8_t
*
uDest
,
uint8_t
*
vDest
,
uint8_t
*
dest
,
uint8_t
*
uDest
,
uint8_t
*
vDest
,
uint8_t
*
aDest
,
long
dstW
,
long
chrDstW
)
uint8_t
*
aDest
,
int
dstW
,
int
chrDstW
)
{
{
long
p
=
4
;
int
p
=
4
;
const
uint8_t
*
src
[
4
]
=
{
alpSrc
+
dstW
,
lumSrc
+
dstW
,
chrUSrc
+
chrDstW
,
chrVSrc
+
chrDstW
};
const
uint8_t
*
src
[
4
]
=
{
alpSrc
+
dstW
,
lumSrc
+
dstW
,
chrUSrc
+
chrDstW
,
chrVSrc
+
chrDstW
};
uint8_t
*
dst
[
4
]
=
{
aDest
,
dest
,
uDest
,
vDest
};
uint8_t
*
dst
[
4
]
=
{
aDest
,
dest
,
uDest
,
vDest
};
x86_reg
counter
[
4
]
=
{
dstW
,
dstW
,
chrDstW
,
chrDstW
};
x86_reg
counter
[
4
]
=
{
dstW
,
dstW
,
chrDstW
,
chrDstW
};
...
@@ -231,9 +231,9 @@ static inline void RENAME(yuv2yuv1_ar)(SwsContext *c, const int16_t *lumSrc,
...
@@ -231,9 +231,9 @@ static inline void RENAME(yuv2yuv1_ar)(SwsContext *c, const int16_t *lumSrc,
const
int16_t
*
chrUSrc
,
const
int16_t
*
chrVSrc
,
const
int16_t
*
chrUSrc
,
const
int16_t
*
chrVSrc
,
const
int16_t
*
alpSrc
,
const
int16_t
*
alpSrc
,
uint8_t
*
dest
,
uint8_t
*
uDest
,
uint8_t
*
vDest
,
uint8_t
*
dest
,
uint8_t
*
uDest
,
uint8_t
*
vDest
,
uint8_t
*
aDest
,
long
dstW
,
long
chrDstW
)
uint8_t
*
aDest
,
int
dstW
,
int
chrDstW
)
{
{
long
p
=
4
;
int
p
=
4
;
const
uint8_t
*
src
[
4
]
=
{
alpSrc
+
dstW
,
lumSrc
+
dstW
,
chrUSrc
+
chrDstW
,
chrVSrc
+
chrDstW
};
const
uint8_t
*
src
[
4
]
=
{
alpSrc
+
dstW
,
lumSrc
+
dstW
,
chrUSrc
+
chrDstW
,
chrVSrc
+
chrDstW
};
uint8_t
*
dst
[
4
]
=
{
aDest
,
dest
,
uDest
,
vDest
};
uint8_t
*
dst
[
4
]
=
{
aDest
,
dest
,
uDest
,
vDest
};
x86_reg
counter
[
4
]
=
{
dstW
,
dstW
,
chrDstW
,
chrDstW
};
x86_reg
counter
[
4
]
=
{
dstW
,
dstW
,
chrDstW
,
chrDstW
};
...
@@ -471,7 +471,7 @@ static inline void RENAME(yuv2rgb32_X_ar)(SwsContext *c, const int16_t *lumFilte
...
@@ -471,7 +471,7 @@ static inline void RENAME(yuv2rgb32_X_ar)(SwsContext *c, const int16_t *lumFilte
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
**
chrVSrc
,
const
int16_t
**
chrVSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
uint8_t
*
dest
,
long
dstW
,
long
dstY
)
uint8_t
*
dest
,
int
dstW
,
int
dstY
)
{
{
x86_reg
dummy
=
0
;
x86_reg
dummy
=
0
;
x86_reg
dstW_reg
=
dstW
;
x86_reg
dstW_reg
=
dstW
;
...
@@ -504,7 +504,7 @@ static inline void RENAME(yuv2rgb32_X)(SwsContext *c, const int16_t *lumFilter,
...
@@ -504,7 +504,7 @@ static inline void RENAME(yuv2rgb32_X)(SwsContext *c, const int16_t *lumFilter,
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
**
chrVSrc
,
const
int16_t
**
chrVSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
uint8_t
*
dest
,
long
dstW
,
long
dstY
)
uint8_t
*
dest
,
int
dstW
,
int
dstY
)
{
{
x86_reg
dummy
=
0
;
x86_reg
dummy
=
0
;
x86_reg
dstW_reg
=
dstW
;
x86_reg
dstW_reg
=
dstW
;
...
@@ -561,7 +561,7 @@ static inline void RENAME(yuv2rgb565_X_ar)(SwsContext *c, const int16_t *lumFilt
...
@@ -561,7 +561,7 @@ static inline void RENAME(yuv2rgb565_X_ar)(SwsContext *c, const int16_t *lumFilt
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
**
chrVSrc
,
const
int16_t
**
chrVSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
uint8_t
*
dest
,
long
dstW
,
long
dstY
)
uint8_t
*
dest
,
int
dstW
,
int
dstY
)
{
{
x86_reg
dummy
=
0
;
x86_reg
dummy
=
0
;
x86_reg
dstW_reg
=
dstW
;
x86_reg
dstW_reg
=
dstW
;
...
@@ -585,7 +585,7 @@ static inline void RENAME(yuv2rgb565_X)(SwsContext *c, const int16_t *lumFilter,
...
@@ -585,7 +585,7 @@ static inline void RENAME(yuv2rgb565_X)(SwsContext *c, const int16_t *lumFilter,
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
**
chrVSrc
,
const
int16_t
**
chrVSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
uint8_t
*
dest
,
long
dstW
,
long
dstY
)
uint8_t
*
dest
,
int
dstW
,
int
dstY
)
{
{
x86_reg
dummy
=
0
;
x86_reg
dummy
=
0
;
x86_reg
dstW_reg
=
dstW
;
x86_reg
dstW_reg
=
dstW
;
...
@@ -638,7 +638,7 @@ static inline void RENAME(yuv2rgb555_X_ar)(SwsContext *c, const int16_t *lumFilt
...
@@ -638,7 +638,7 @@ static inline void RENAME(yuv2rgb555_X_ar)(SwsContext *c, const int16_t *lumFilt
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
**
chrVSrc
,
const
int16_t
**
chrVSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
uint8_t
*
dest
,
long
dstW
,
long
dstY
)
uint8_t
*
dest
,
int
dstW
,
int
dstY
)
{
{
x86_reg
dummy
=
0
;
x86_reg
dummy
=
0
;
x86_reg
dstW_reg
=
dstW
;
x86_reg
dstW_reg
=
dstW
;
...
@@ -662,7 +662,7 @@ static inline void RENAME(yuv2rgb555_X)(SwsContext *c, const int16_t *lumFilter,
...
@@ -662,7 +662,7 @@ static inline void RENAME(yuv2rgb555_X)(SwsContext *c, const int16_t *lumFilter,
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
**
chrVSrc
,
const
int16_t
**
chrVSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
uint8_t
*
dest
,
long
dstW
,
long
dstY
)
uint8_t
*
dest
,
int
dstW
,
int
dstY
)
{
{
x86_reg
dummy
=
0
;
x86_reg
dummy
=
0
;
x86_reg
dstW_reg
=
dstW
;
x86_reg
dstW_reg
=
dstW
;
...
@@ -795,7 +795,7 @@ static inline void RENAME(yuv2bgr24_X_ar)(SwsContext *c, const int16_t *lumFilte
...
@@ -795,7 +795,7 @@ static inline void RENAME(yuv2bgr24_X_ar)(SwsContext *c, const int16_t *lumFilte
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
**
chrVSrc
,
const
int16_t
**
chrVSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
uint8_t
*
dest
,
long
dstW
,
long
dstY
)
uint8_t
*
dest
,
int
dstW
,
int
dstY
)
{
{
x86_reg
dummy
=
0
;
x86_reg
dummy
=
0
;
x86_reg
dstW_reg
=
dstW
;
x86_reg
dstW_reg
=
dstW
;
...
@@ -819,7 +819,7 @@ static inline void RENAME(yuv2bgr24_X)(SwsContext *c, const int16_t *lumFilter,
...
@@ -819,7 +819,7 @@ static inline void RENAME(yuv2bgr24_X)(SwsContext *c, const int16_t *lumFilter,
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
**
chrVSrc
,
const
int16_t
**
chrVSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
uint8_t
*
dest
,
long
dstW
,
long
dstY
)
uint8_t
*
dest
,
int
dstW
,
int
dstY
)
{
{
x86_reg
dummy
=
0
;
x86_reg
dummy
=
0
;
x86_reg
dstW_reg
=
dstW
;
x86_reg
dstW_reg
=
dstW
;
...
@@ -860,7 +860,7 @@ static inline void RENAME(yuv2yuyv422_X_ar)(SwsContext *c, const int16_t *lumFil
...
@@ -860,7 +860,7 @@ static inline void RENAME(yuv2yuyv422_X_ar)(SwsContext *c, const int16_t *lumFil
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
**
chrVSrc
,
const
int16_t
**
chrVSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
uint8_t
*
dest
,
long
dstW
,
long
dstY
)
uint8_t
*
dest
,
int
dstW
,
int
dstY
)
{
{
x86_reg
dummy
=
0
;
x86_reg
dummy
=
0
;
x86_reg
dstW_reg
=
dstW
;
x86_reg
dstW_reg
=
dstW
;
...
@@ -881,7 +881,7 @@ static inline void RENAME(yuv2yuyv422_X)(SwsContext *c, const int16_t *lumFilter
...
@@ -881,7 +881,7 @@ static inline void RENAME(yuv2yuyv422_X)(SwsContext *c, const int16_t *lumFilter
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
*
chrFilter
,
const
int16_t
**
chrUSrc
,
const
int16_t
**
chrVSrc
,
const
int16_t
**
chrVSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
int
chrFilterSize
,
const
int16_t
**
alpSrc
,
uint8_t
*
dest
,
long
dstW
,
long
dstY
)
uint8_t
*
dest
,
int
dstW
,
int
dstY
)
{
{
x86_reg
dummy
=
0
;
x86_reg
dummy
=
0
;
x86_reg
dstW_reg
=
dstW
;
x86_reg
dstW_reg
=
dstW
;
...
@@ -1578,7 +1578,7 @@ static inline void RENAME(yuv2yuyv422_1)(SwsContext *c, const uint16_t *buf0,
...
@@ -1578,7 +1578,7 @@ static inline void RENAME(yuv2yuyv422_1)(SwsContext *c, const uint16_t *buf0,
#if !COMPILE_TEMPLATE_MMX2
#if !COMPILE_TEMPLATE_MMX2
//FIXME yuy2* can read up to 7 samples too much
//FIXME yuy2* can read up to 7 samples too much
static
inline
void
RENAME
(
yuy2ToY
)(
uint8_t
*
dst
,
const
uint8_t
*
src
,
long
width
,
uint32_t
*
unused
)
static
inline
void
RENAME
(
yuy2ToY
)(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
width
,
uint32_t
*
unused
)
{
{
__asm__
volatile
(
__asm__
volatile
(
"movq "
MANGLE
(
bm01010101
)
", %%mm2
\n\t
"
"movq "
MANGLE
(
bm01010101
)
", %%mm2
\n\t
"
...
@@ -1597,7 +1597,7 @@ static inline void RENAME(yuy2ToY)(uint8_t *dst, const uint8_t *src, long width,
...
@@ -1597,7 +1597,7 @@ static inline void RENAME(yuy2ToY)(uint8_t *dst, const uint8_t *src, long width,
);
);
}
}
static
inline
void
RENAME
(
yuy2ToUV
)(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
long
width
,
uint32_t
*
unused
)
static
inline
void
RENAME
(
yuy2ToUV
)(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
width
,
uint32_t
*
unused
)
{
{
__asm__
volatile
(
__asm__
volatile
(
"movq "
MANGLE
(
bm01010101
)
", %%mm4
\n\t
"
"movq "
MANGLE
(
bm01010101
)
", %%mm4
\n\t
"
...
@@ -1623,7 +1623,7 @@ static inline void RENAME(yuy2ToUV)(uint8_t *dstU, uint8_t *dstV, const uint8_t
...
@@ -1623,7 +1623,7 @@ static inline void RENAME(yuy2ToUV)(uint8_t *dstU, uint8_t *dstV, const uint8_t
assert
(
src1
==
src2
);
assert
(
src1
==
src2
);
}
}
static
inline
void
RENAME
(
LEToUV
)(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
long
width
,
uint32_t
*
unused
)
static
inline
void
RENAME
(
LEToUV
)(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
width
,
uint32_t
*
unused
)
{
{
__asm__
volatile
(
__asm__
volatile
(
"mov %0, %%"
REG_a
"
\n\t
"
"mov %0, %%"
REG_a
"
\n\t
"
...
@@ -1649,7 +1649,7 @@ static inline void RENAME(LEToUV)(uint8_t *dstU, uint8_t *dstV, const uint8_t *s
...
@@ -1649,7 +1649,7 @@ static inline void RENAME(LEToUV)(uint8_t *dstU, uint8_t *dstV, const uint8_t *s
/* This is almost identical to the previous, end exists only because
/* This is almost identical to the previous, end exists only because
* yuy2ToY/UV)(dst, src+1, ...) would have 100% unaligned accesses. */
* yuy2ToY/UV)(dst, src+1, ...) would have 100% unaligned accesses. */
static
inline
void
RENAME
(
uyvyToY
)(
uint8_t
*
dst
,
const
uint8_t
*
src
,
long
width
,
uint32_t
*
unused
)
static
inline
void
RENAME
(
uyvyToY
)(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
width
,
uint32_t
*
unused
)
{
{
__asm__
volatile
(
__asm__
volatile
(
"mov %0, %%"
REG_a
"
\n\t
"
"mov %0, %%"
REG_a
"
\n\t
"
...
@@ -1667,7 +1667,7 @@ static inline void RENAME(uyvyToY)(uint8_t *dst, const uint8_t *src, long width,
...
@@ -1667,7 +1667,7 @@ static inline void RENAME(uyvyToY)(uint8_t *dst, const uint8_t *src, long width,
);
);
}
}
static
inline
void
RENAME
(
uyvyToUV
)(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
long
width
,
uint32_t
*
unused
)
static
inline
void
RENAME
(
uyvyToUV
)(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
width
,
uint32_t
*
unused
)
{
{
__asm__
volatile
(
__asm__
volatile
(
"movq "
MANGLE
(
bm01010101
)
", %%mm4
\n\t
"
"movq "
MANGLE
(
bm01010101
)
", %%mm4
\n\t
"
...
@@ -1693,7 +1693,7 @@ static inline void RENAME(uyvyToUV)(uint8_t *dstU, uint8_t *dstV, const uint8_t
...
@@ -1693,7 +1693,7 @@ static inline void RENAME(uyvyToUV)(uint8_t *dstU, uint8_t *dstV, const uint8_t
assert
(
src1
==
src2
);
assert
(
src1
==
src2
);
}
}
static
inline
void
RENAME
(
BEToUV
)(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
long
width
,
uint32_t
*
unused
)
static
inline
void
RENAME
(
BEToUV
)(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
width
,
uint32_t
*
unused
)
{
{
__asm__
volatile
(
__asm__
volatile
(
"movq "
MANGLE
(
bm01010101
)
", %%mm4
\n\t
"
"movq "
MANGLE
(
bm01010101
)
", %%mm4
\n\t
"
...
@@ -1719,7 +1719,7 @@ static inline void RENAME(BEToUV)(uint8_t *dstU, uint8_t *dstV, const uint8_t *s
...
@@ -1719,7 +1719,7 @@ static inline void RENAME(BEToUV)(uint8_t *dstU, uint8_t *dstV, const uint8_t *s
}
}
static
inline
void
RENAME
(
nvXXtoUV
)(
uint8_t
*
dst1
,
uint8_t
*
dst2
,
static
inline
void
RENAME
(
nvXXtoUV
)(
uint8_t
*
dst1
,
uint8_t
*
dst2
,
const
uint8_t
*
src
,
long
width
)
const
uint8_t
*
src
,
int
width
)
{
{
__asm__
volatile
(
__asm__
volatile
(
"movq "
MANGLE
(
bm01010101
)
", %%mm4
\n\t
"
"movq "
MANGLE
(
bm01010101
)
", %%mm4
\n\t
"
...
@@ -1746,20 +1746,20 @@ static inline void RENAME(nvXXtoUV)(uint8_t *dst1, uint8_t *dst2,
...
@@ -1746,20 +1746,20 @@ static inline void RENAME(nvXXtoUV)(uint8_t *dst1, uint8_t *dst2,
static
inline
void
RENAME
(
nv12ToUV
)(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
static
inline
void
RENAME
(
nv12ToUV
)(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
long
width
,
uint32_t
*
unused
)
int
width
,
uint32_t
*
unused
)
{
{
RENAME
(
nvXXtoUV
)(
dstU
,
dstV
,
src1
,
width
);
RENAME
(
nvXXtoUV
)(
dstU
,
dstV
,
src1
,
width
);
}
}
static
inline
void
RENAME
(
nv21ToUV
)(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
static
inline
void
RENAME
(
nv21ToUV
)(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
long
width
,
uint32_t
*
unused
)
int
width
,
uint32_t
*
unused
)
{
{
RENAME
(
nvXXtoUV
)(
dstV
,
dstU
,
src1
,
width
);
RENAME
(
nvXXtoUV
)(
dstV
,
dstU
,
src1
,
width
);
}
}
#endif
/* !COMPILE_TEMPLATE_MMX2 */
#endif
/* !COMPILE_TEMPLATE_MMX2 */
static
inline
void
RENAME
(
bgr24ToY_mmx
)(
uint8_t
*
dst
,
const
uint8_t
*
src
,
long
width
,
enum
PixelFormat
srcFormat
)
static
inline
void
RENAME
(
bgr24ToY_mmx
)(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
width
,
enum
PixelFormat
srcFormat
)
{
{
if
(
srcFormat
==
PIX_FMT_BGR24
)
{
if
(
srcFormat
==
PIX_FMT_BGR24
)
{
...
@@ -1812,7 +1812,7 @@ static inline void RENAME(bgr24ToY_mmx)(uint8_t *dst, const uint8_t *src, long w
...
@@ -1812,7 +1812,7 @@ static inline void RENAME(bgr24ToY_mmx)(uint8_t *dst, const uint8_t *src, long w
);
);
}
}
static
inline
void
RENAME
(
bgr24ToUV_mmx
)(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src
,
long
width
,
enum
PixelFormat
srcFormat
)
static
inline
void
RENAME
(
bgr24ToUV_mmx
)(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src
,
int
width
,
enum
PixelFormat
srcFormat
)
{
{
__asm__
volatile
(
__asm__
volatile
(
"movq 24(%4), %%mm6
\n\t
"
"movq 24(%4), %%mm6
\n\t
"
...
@@ -1870,23 +1870,23 @@ static inline void RENAME(bgr24ToUV_mmx)(uint8_t *dstU, uint8_t *dstV, const uin
...
@@ -1870,23 +1870,23 @@ static inline void RENAME(bgr24ToUV_mmx)(uint8_t *dstU, uint8_t *dstV, const uin
);
);
}
}
static
inline
void
RENAME
(
bgr24ToY
)(
uint8_t
*
dst
,
const
uint8_t
*
src
,
long
width
,
uint32_t
*
unused
)
static
inline
void
RENAME
(
bgr24ToY
)(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
width
,
uint32_t
*
unused
)
{
{
RENAME
(
bgr24ToY_mmx
)(
dst
,
src
,
width
,
PIX_FMT_BGR24
);
RENAME
(
bgr24ToY_mmx
)(
dst
,
src
,
width
,
PIX_FMT_BGR24
);
}
}
static
inline
void
RENAME
(
bgr24ToUV
)(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
long
width
,
uint32_t
*
unused
)
static
inline
void
RENAME
(
bgr24ToUV
)(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
width
,
uint32_t
*
unused
)
{
{
RENAME
(
bgr24ToUV_mmx
)(
dstU
,
dstV
,
src1
,
width
,
PIX_FMT_BGR24
);
RENAME
(
bgr24ToUV_mmx
)(
dstU
,
dstV
,
src1
,
width
,
PIX_FMT_BGR24
);
assert
(
src1
==
src2
);
assert
(
src1
==
src2
);
}
}
static
inline
void
RENAME
(
rgb24ToY
)(
uint8_t
*
dst
,
const
uint8_t
*
src
,
long
width
,
uint32_t
*
unused
)
static
inline
void
RENAME
(
rgb24ToY
)(
uint8_t
*
dst
,
const
uint8_t
*
src
,
int
width
,
uint32_t
*
unused
)
{
{
RENAME
(
bgr24ToY_mmx
)(
dst
,
src
,
width
,
PIX_FMT_RGB24
);
RENAME
(
bgr24ToY_mmx
)(
dst
,
src
,
width
,
PIX_FMT_RGB24
);
}
}
static
inline
void
RENAME
(
rgb24ToUV
)(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
long
width
,
uint32_t
*
unused
)
static
inline
void
RENAME
(
rgb24ToUV
)(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
width
,
uint32_t
*
unused
)
{
{
assert
(
src1
==
src2
);
assert
(
src1
==
src2
);
RENAME
(
bgr24ToUV_mmx
)(
dstU
,
dstV
,
src1
,
width
,
PIX_FMT_RGB24
);
RENAME
(
bgr24ToUV_mmx
)(
dstU
,
dstV
,
src1
,
width
,
PIX_FMT_RGB24
);
...
@@ -1895,7 +1895,7 @@ static inline void RENAME(rgb24ToUV)(uint8_t *dstU, uint8_t *dstV, const uint8_t
...
@@ -1895,7 +1895,7 @@ static inline void RENAME(rgb24ToUV)(uint8_t *dstU, uint8_t *dstV, const uint8_t
#if !COMPILE_TEMPLATE_MMX2
#if !COMPILE_TEMPLATE_MMX2
// bilinear / bicubic scaling
// bilinear / bicubic scaling
static
inline
void
RENAME
(
hScale
)(
int16_t
*
dst
,
int
dstW
,
const
uint8_t
*
src
,
int
srcW
,
int
xInc
,
static
inline
void
RENAME
(
hScale
)(
int16_t
*
dst
,
int
dstW
,
const
uint8_t
*
src
,
int
srcW
,
int
xInc
,
const
int16_t
*
filter
,
const
int16_t
*
filterPos
,
long
filterSize
)
const
int16_t
*
filter
,
const
int16_t
*
filterPos
,
int
filterSize
)
{
{
assert
(
filterSize
%
4
==
0
&&
filterSize
>
0
);
assert
(
filterSize
%
4
==
0
&&
filterSize
>
0
);
if
(
filterSize
==
4
)
{
// Always true for upscaling, sometimes for down, too.
if
(
filterSize
==
4
)
{
// Always true for upscaling, sometimes for down, too.
...
@@ -2051,7 +2051,7 @@ static inline void RENAME(hScale)(int16_t *dst, int dstW, const uint8_t *src, in
...
@@ -2051,7 +2051,7 @@ static inline void RENAME(hScale)(int16_t *dst, int dstW, const uint8_t *src, in
#if COMPILE_TEMPLATE_MMX2
#if COMPILE_TEMPLATE_MMX2
static
inline
void
RENAME
(
hyscale_fast
)(
SwsContext
*
c
,
int16_t
*
dst
,
static
inline
void
RENAME
(
hyscale_fast
)(
SwsContext
*
c
,
int16_t
*
dst
,
long
dstWidth
,
const
uint8_t
*
src
,
int
srcW
,
int
dstWidth
,
const
uint8_t
*
src
,
int
srcW
,
int
xInc
)
int
xInc
)
{
{
int32_t
*
filterPos
=
c
->
hLumFilterPos
;
int32_t
*
filterPos
=
c
->
hLumFilterPos
;
...
@@ -2123,7 +2123,7 @@ static inline void RENAME(hyscale_fast)(SwsContext *c, int16_t *dst,
...
@@ -2123,7 +2123,7 @@ static inline void RENAME(hyscale_fast)(SwsContext *c, int16_t *dst,
}
}
static
inline
void
RENAME
(
hcscale_fast
)(
SwsContext
*
c
,
int16_t
*
dst1
,
int16_t
*
dst2
,
static
inline
void
RENAME
(
hcscale_fast
)(
SwsContext
*
c
,
int16_t
*
dst1
,
int16_t
*
dst2
,
long
dstWidth
,
const
uint8_t
*
src1
,
int
dstWidth
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
srcW
,
int
xInc
)
const
uint8_t
*
src2
,
int
srcW
,
int
xInc
)
{
{
int32_t
*
filterPos
=
c
->
hChrFilterPos
;
int32_t
*
filterPos
=
c
->
hChrFilterPos
;
...
...
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