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
3e499f53
Commit
3e499f53
authored
Feb 24, 2003
by
Michael Niedermayer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cleanup
Originally committed as revision 9500 to
svn://svn.mplayerhq.hu/mplayer/trunk/postproc
parent
8c031d1c
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
31 additions
and
63 deletions
+31
-63
swscale.c
postproc/swscale.c
+13
-14
swscale_internal.h
postproc/swscale_internal.h
+4
-1
swscale_template.c
postproc/swscale_template.c
+6
-13
yuv2rgb.c
postproc/yuv2rgb.c
+1
-4
yuv2rgb_mlib.c
postproc/yuv2rgb_mlib.c
+3
-15
yuv2rgb_template.c
postproc/yuv2rgb_template.c
+4
-16
No files found.
postproc/swscale.c
View file @
3e499f53
...
...
@@ -1764,7 +1764,7 @@ static int yvu9toyv12Wrapper(SwsContext *c, uint8_t* src[], int srcStride[], int
/**
* bring pointers in YUV order instead of YVU
*/
inline
void
sws_orderYUV
(
int
format
,
uint8_t
*
sortedP
[],
int
sortedStride
[],
uint8_t
*
p
[],
int
stride
[]){
inline
static
void
sws_orderYUV
(
int
format
,
uint8_t
*
sortedP
[],
int
sortedStride
[],
uint8_t
*
p
[],
int
stride
[]){
if
(
format
==
IMGFMT_YV12
||
format
==
IMGFMT_YVU9
||
format
==
IMGFMT_444P
||
format
==
IMGFMT_422P
||
format
==
IMGFMT_411P
){
sortedP
[
0
]
=
p
[
0
];
...
...
@@ -1797,16 +1797,8 @@ inline void sws_orderYUV(int format, uint8_t * sortedP[], int sortedStride[], ui
}
/* unscaled copy like stuff (assumes nearly identical formats) */
static
int
simpleCopy
(
SwsContext
*
c
,
uint8_t
*
srcParam
[],
int
srcStrideParam
[],
int
srcSliceY
,
int
srcSliceH
,
uint8_t
*
dstParam
[],
int
dstStrideParam
[]){
int
srcStride
[
3
];
int
dstStride
[
3
];
uint8_t
*
src
[
3
];
uint8_t
*
dst
[
3
];
sws_orderYUV
(
c
->
srcFormat
,
src
,
srcStride
,
srcParam
,
srcStrideParam
);
sws_orderYUV
(
c
->
dstFormat
,
dst
,
dstStride
,
dstParam
,
dstStrideParam
);
static
int
simpleCopy
(
SwsContext
*
c
,
uint8_t
*
src
[],
int
srcStride
[],
int
srcSliceY
,
int
srcSliceH
,
uint8_t
*
dst
[],
int
dstStride
[]){
if
(
isPacked
(
c
->
srcFormat
))
{
...
...
@@ -2382,11 +2374,18 @@ SwsContext *sws_getContext(int srcW, int srcH, int srcFormat, int dstW, int dstH
/**
* swscale warper, so we dont need to export the SwsContext
*/
int
sws_scale
(
SwsContext
*
c
,
uint8_t
*
src
[],
int
srcStride
[],
int
srcSliceY
,
int
srcSliceH
,
uint8_t
*
dst
[],
int
dstStride
[]){
int
sws_scale
(
SwsContext
*
c
,
uint8_t
*
srcParam
[],
int
srcStrideParam
[],
int
srcSliceY
,
int
srcSliceH
,
uint8_t
*
dstParam
[],
int
dstStrideParam
[]){
int
srcStride
[
3
];
int
dstStride
[
3
];
uint8_t
*
src
[
3
];
uint8_t
*
dst
[
3
];
sws_orderYUV
(
c
->
srcFormat
,
src
,
srcStride
,
srcParam
,
srcStrideParam
);
sws_orderYUV
(
c
->
dstFormat
,
dst
,
dstStride
,
dstParam
,
dstStrideParam
);
//printf("sws: slice %d %d\n", srcSliceY, srcSliceH);
return
c
->
swScale
(
c
,
src
,
srcStride
,
srcSliceY
,
srcSliceH
,
dst
,
dstStride
);
}
//FIXME order YV12/I420 here
/**
* returns a normalized gaussian curve used to filter stuff
...
...
postproc/swscale_internal.h
View file @
3e499f53
...
...
@@ -26,6 +26,10 @@ typedef int (*SwsFunc)(struct SwsContext *context, uint8_t* src[], int srcStride
/* this struct should be aligned on at least 32-byte boundary */
typedef
struct
SwsContext
{
/**
*
* Note the src,dst,srcStride,dstStride will be copied, in the sws_scale() warper so they can freely be modified here
*/
SwsFunc
swScale
;
int
srcW
,
srcH
,
dstH
;
int
chrSrcW
,
chrSrcH
,
chrDstW
,
chrDstH
;
...
...
@@ -119,7 +123,6 @@ typedef struct SwsContext{
}
SwsContext
;
//FIXME check init (where 0)
inline
void
sws_orderYUV
(
int
format
,
uint8_t
*
sortedP
[],
int
sortedStride
[],
uint8_t
*
p
[],
int
stride
[]);
SwsFunc
yuv2rgb_get_func_ptr
(
SwsContext
*
c
);
int
yuv2rgb_c_init_tables
(
SwsContext
*
c
,
const
int
inv_table
[
4
],
int
fullRange
,
int
brightness
,
int
contrast
,
int
saturation
);
...
...
postproc/swscale_template.c
View file @
3e499f53
...
...
@@ -1585,7 +1585,7 @@ static inline void RENAME(bgr32ToY)(uint8_t *dst, uint8_t *src, int width)
{
int
b
=
((
uint32_t
*
)
src
)[
i
]
&
0xFF
;
int
g
=
(((
uint32_t
*
)
src
)[
i
]
>>
8
)
&
0xFF
;
int
r
=
((
uint32_t
*
)
src
)[
i
]
>>
16
;
int
r
=
(((
uint32_t
*
)
src
)[
i
]
>>
16
)
&
0xFF
;
dst
[
i
]
=
((
RY
*
r
+
GY
*
g
+
BY
*
b
+
(
33
<<
(
RGB2YUV_SHIFT
-
1
))
)
>>
RGB2YUV_SHIFT
);
}
...
...
@@ -1946,7 +1946,7 @@ static inline void RENAME(rgb32ToY)(uint8_t *dst, uint8_t *src, int width)
{
int
r
=
((
uint32_t
*
)
src
)[
i
]
&
0xFF
;
int
g
=
(((
uint32_t
*
)
src
)[
i
]
>>
8
)
&
0xFF
;
int
b
=
((
uint32_t
*
)
src
)[
i
]
>>
16
;
int
b
=
(((
uint32_t
*
)
src
)[
i
]
>>
16
)
&
0xFF
;
dst
[
i
]
=
((
RY
*
r
+
GY
*
g
+
BY
*
b
+
(
33
<<
(
RGB2YUV_SHIFT
-
1
))
)
>>
RGB2YUV_SHIFT
);
}
...
...
@@ -2502,8 +2502,8 @@ FUNNY_UV_CODE
}
}
static
int
RENAME
(
swScale
)(
SwsContext
*
c
,
uint8_t
*
src
Param
[],
int
srcStrideParam
[],
int
srcSliceY
,
int
srcSliceH
,
uint8_t
*
dst
Param
[],
int
dstStrideParam
[]){
static
int
RENAME
(
swScale
)(
SwsContext
*
c
,
uint8_t
*
src
[],
int
srcStride
[],
int
srcSliceY
,
int
srcSliceH
,
uint8_t
*
dst
[],
int
dstStride
[]){
/* load a few things into local vars to make the code more readable? and faster */
const
int
srcW
=
c
->
srcW
;
...
...
@@ -2548,21 +2548,14 @@ static int RENAME(swScale)(SwsContext *c, uint8_t* srcParam[], int srcStridePara
int
chrBufIndex
=
c
->
chrBufIndex
;
int
lastInLumBuf
=
c
->
lastInLumBuf
;
int
lastInChrBuf
=
c
->
lastInChrBuf
;
int
srcStride
[
3
];
int
dstStride
[
3
];
uint8_t
*
src
[
3
];
uint8_t
*
dst
[
3
];
sws_orderYUV
(
c
->
srcFormat
,
src
,
srcStride
,
srcParam
,
srcStrideParam
);
sws_orderYUV
(
c
->
dstFormat
,
dst
,
dstStride
,
dstParam
,
dstStrideParam
);
if
(
isPacked
(
c
->
srcFormat
)){
src
[
0
]
=
src
[
1
]
=
src
[
2
]
=
src
Param
[
0
];
src
[
2
]
=
src
[
0
];
srcStride
[
0
]
=
srcStride
[
1
]
=
srcStride
[
2
]
=
srcStride
Param
[
0
];
srcStride
[
2
]
=
srcStride
[
0
];
}
srcStride
[
1
]
<<=
c
->
vChrDrop
;
srcStride
[
2
]
<<=
c
->
vChrDrop
;
...
...
postproc/yuv2rgb.c
View file @
3e499f53
...
...
@@ -262,13 +262,10 @@ const int32_t Inverse_Table_6_9[8][4] = {
dst_2[6*i+3] = b[Y]; dst_2[6*i+4] = g[Y]; dst_2[6*i+5] = r[Y];
#define PROLOG(func_name, dst_type) \
static int func_name(SwsContext *c, uint8_t* src
Param[], int srcStrideParam
[], int srcSliceY, \
static int func_name(SwsContext *c, uint8_t* src
[], int srcStride
[], int srcSliceY, \
int srcSliceH, uint8_t* dst[], int dstStride[]){\
uint8_t *src[3];\
int srcStride[3];\
int y;\
\
sws_orderYUV(c->srcFormat, src, srcStride, srcParam, srcStrideParam);\
if(c->srcFormat == IMGFMT_422P){\
srcStride[1] *= 2;\
srcStride[2] *= 2;\
...
...
postproc/yuv2rgb_mlib.c
View file @
3e499f53
...
...
@@ -33,12 +33,8 @@
#include "../libvo/img_format.h" //FIXME try to reduce dependency of such stuff
#include "swscale.h"
static
int
mlib_YUV2ARGB420_32
(
SwsContext
*
c
,
uint8_t
*
src
Param
[],
int
srcStrideParam
[],
int
srcSliceY
,
static
int
mlib_YUV2ARGB420_32
(
SwsContext
*
c
,
uint8_t
*
src
[],
int
srcStride
[],
int
srcSliceY
,
int
srcSliceH
,
uint8_t
*
dst
[],
int
dstStride
[]){
uint8_t
*
src
[
3
];
int
srcStride
[
3
];
sws_orderYUV
(
c
->
srcFormat
,
src
,
srcStride
,
srcParam
,
srcStrideParam
);
if
(
c
->
srcFormat
==
IMGFMT_422P
){
srcStride
[
1
]
*=
2
;
srcStride
[
2
]
*=
2
;
...
...
@@ -51,12 +47,8 @@ static int mlib_YUV2ARGB420_32(SwsContext *c, uint8_t* srcParam[], int srcStride
return
srcSliceH
;
}
static
int
mlib_YUV2ABGR420_32
(
SwsContext
*
c
,
uint8_t
*
src
Param
[],
int
srcStrideParam
[],
int
srcSliceY
,
static
int
mlib_YUV2ABGR420_32
(
SwsContext
*
c
,
uint8_t
*
src
[],
int
srcStride
[],
int
srcSliceY
,
int
srcSliceH
,
uint8_t
*
dst
[],
int
dstStride
[]){
uint8_t
*
src
[
3
];
int
srcStride
[
3
];
sws_orderYUV
(
c
->
srcFormat
,
src
,
srcStride
,
srcParam
,
srcStrideParam
);
if
(
c
->
srcFormat
==
IMGFMT_422P
){
srcStride
[
1
]
*=
2
;
srcStride
[
2
]
*=
2
;
...
...
@@ -69,12 +61,8 @@ static int mlib_YUV2ABGR420_32(SwsContext *c, uint8_t* srcParam[], int srcStride
return
srcSliceH
;
}
static
int
mlib_YUV2RGB420_24
(
SwsContext
*
c
,
uint8_t
*
src
Param
[],
int
srcStrideParam
[],
int
srcSliceY
,
static
int
mlib_YUV2RGB420_24
(
SwsContext
*
c
,
uint8_t
*
src
[],
int
srcStride
[],
int
srcSliceY
,
int
srcSliceH
,
uint8_t
*
dst
[],
int
dstStride
[]){
uint8_t
*
src
[
3
];
int
srcStride
[
3
];
sws_orderYUV
(
c
->
srcFormat
,
src
,
srcStride
,
srcParam
,
srcStrideParam
);
if
(
c
->
srcFormat
==
IMGFMT_422P
){
srcStride
[
1
]
*=
2
;
srcStride
[
2
]
*=
2
;
...
...
postproc/yuv2rgb_template.c
View file @
3e499f53
...
...
@@ -123,13 +123,10 @@
"punpcklbw %%mm5, %%mm2;"
/* G7 G6 G5 G4 G3 G2 G1 G0 */
\
static
inline
int
RENAME
(
yuv420_rgb16
)(
SwsContext
*
c
,
uint8_t
*
src
Param
[],
int
srcStrideParam
[],
int
srcSliceY
,
static
inline
int
RENAME
(
yuv420_rgb16
)(
SwsContext
*
c
,
uint8_t
*
src
[],
int
srcStride
[],
int
srcSliceY
,
int
srcSliceH
,
uint8_t
*
dst
[],
int
dstStride
[]){
int
srcStride
[
3
];
uint8_t
*
src
[
3
];
int
y
,
h_size
;
sws_orderYUV
(
c
->
srcFormat
,
src
,
srcStride
,
srcParam
,
srcStrideParam
);
if
(
c
->
srcFormat
==
IMGFMT_422P
){
srcStride
[
1
]
*=
2
;
srcStride
[
2
]
*=
2
;
...
...
@@ -221,13 +218,10 @@ YUV2RGB
return
srcSliceH
;
}
static
inline
int
RENAME
(
yuv420_rgb15
)(
SwsContext
*
c
,
uint8_t
*
src
Param
[],
int
srcStrideParam
[],
int
srcSliceY
,
static
inline
int
RENAME
(
yuv420_rgb15
)(
SwsContext
*
c
,
uint8_t
*
src
[],
int
srcStride
[],
int
srcSliceY
,
int
srcSliceH
,
uint8_t
*
dst
[],
int
dstStride
[]){
int
srcStride
[
3
];
uint8_t
*
src
[
3
];
int
y
,
h_size
;
sws_orderYUV
(
c
->
srcFormat
,
src
,
srcStride
,
srcParam
,
srcStrideParam
);
if
(
c
->
srcFormat
==
IMGFMT_422P
){
srcStride
[
1
]
*=
2
;
srcStride
[
2
]
*=
2
;
...
...
@@ -313,13 +307,10 @@ YUV2RGB
return
srcSliceH
;
}
static
inline
int
RENAME
(
yuv420_rgb24
)(
SwsContext
*
c
,
uint8_t
*
src
Param
[],
int
srcStrideParam
[],
int
srcSliceY
,
static
inline
int
RENAME
(
yuv420_rgb24
)(
SwsContext
*
c
,
uint8_t
*
src
[],
int
srcStride
[],
int
srcSliceY
,
int
srcSliceH
,
uint8_t
*
dst
[],
int
dstStride
[]){
int
srcStride
[
3
];
uint8_t
*
src
[
3
];
int
y
,
h_size
;
sws_orderYUV
(
c
->
srcFormat
,
src
,
srcStride
,
srcParam
,
srcStrideParam
);
if
(
c
->
srcFormat
==
IMGFMT_422P
){
srcStride
[
1
]
*=
2
;
srcStride
[
2
]
*=
2
;
...
...
@@ -462,13 +453,10 @@ YUV2RGB
return
srcSliceH
;
}
static
inline
int
RENAME
(
yuv420_rgb32
)(
SwsContext
*
c
,
uint8_t
*
src
Param
[],
int
srcStrideParam
[],
int
srcSliceY
,
static
inline
int
RENAME
(
yuv420_rgb32
)(
SwsContext
*
c
,
uint8_t
*
src
[],
int
srcStride
[],
int
srcSliceY
,
int
srcSliceH
,
uint8_t
*
dst
[],
int
dstStride
[]){
int
srcStride
[
3
];
uint8_t
*
src
[
3
];
int
y
,
h_size
;
sws_orderYUV
(
c
->
srcFormat
,
src
,
srcStride
,
srcParam
,
srcStrideParam
);
if
(
c
->
srcFormat
==
IMGFMT_422P
){
srcStride
[
1
]
*=
2
;
srcStride
[
2
]
*=
2
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment