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
4c2176d4
Commit
4c2176d4
authored
Nov 20, 2016
by
Philip Langdale
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
swscale: add P016 input support
parent
15d7e31d
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
37 additions
and
1 deletion
+37
-1
input.c
libswscale/input.c
+32
-0
swscale_unscaled.c
libswscale/swscale_unscaled.c
+3
-1
utils.c
libswscale/utils.c
+2
-0
No files found.
libswscale/input.c
View file @
4c2176d4
...
...
@@ -719,6 +719,28 @@ static void p010BEToUV_c(uint8_t *dstU, uint8_t *dstV,
}
}
static
void
p016LEToUV_c
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
unused0
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
width
,
uint32_t
*
unused
)
{
int
i
;
for
(
i
=
0
;
i
<
width
;
i
++
)
{
AV_WN16
(
dstU
+
i
*
2
,
AV_RL16
(
src1
+
i
*
4
+
0
));
AV_WN16
(
dstV
+
i
*
2
,
AV_RL16
(
src1
+
i
*
4
+
2
));
}
}
static
void
p016BEToUV_c
(
uint8_t
*
dstU
,
uint8_t
*
dstV
,
const
uint8_t
*
unused0
,
const
uint8_t
*
src1
,
const
uint8_t
*
src2
,
int
width
,
uint32_t
*
unused
)
{
int
i
;
for
(
i
=
0
;
i
<
width
;
i
++
)
{
AV_WN16
(
dstU
+
i
*
2
,
AV_RB16
(
src1
+
i
*
4
+
0
));
AV_WN16
(
dstV
+
i
*
2
,
AV_RB16
(
src1
+
i
*
4
+
2
));
}
}
#define input_pixel(pos) (isBE(origin) ? AV_RB16(pos) : AV_RL16(pos))
static
void
bgr24ToY_c
(
uint8_t
*
_dst
,
const
uint8_t
*
src
,
const
uint8_t
*
unused1
,
const
uint8_t
*
unused2
,
...
...
@@ -1085,6 +1107,12 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c)
case
AV_PIX_FMT_P010BE
:
c
->
chrToYV12
=
p010BEToUV_c
;
break
;
case
AV_PIX_FMT_P016LE
:
c
->
chrToYV12
=
p016LEToUV_c
;
break
;
case
AV_PIX_FMT_P016BE
:
c
->
chrToYV12
=
p016BEToUV_c
;
break
;
}
if
(
c
->
chrSrcHSubSample
)
{
switch
(
srcFormat
)
{
...
...
@@ -1326,6 +1354,8 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c)
case
AV_PIX_FMT_GRAY10LE
:
case
AV_PIX_FMT_GRAY12LE
:
case
AV_PIX_FMT_GRAY16LE
:
case
AV_PIX_FMT_P016LE
:
c
->
lumToYV12
=
bswap16Y_c
;
break
;
case
AV_PIX_FMT_YUVA444P9LE
:
...
...
@@ -1362,6 +1392,8 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c)
case
AV_PIX_FMT_GRAY10BE
:
case
AV_PIX_FMT_GRAY12BE
:
case
AV_PIX_FMT_GRAY16BE
:
case
AV_PIX_FMT_P016BE
:
c
->
lumToYV12
=
bswap16Y_c
;
break
;
case
AV_PIX_FMT_YUVA444P9BE
:
...
...
libswscale/swscale_unscaled.c
View file @
4c2176d4
...
...
@@ -1878,8 +1878,10 @@ void ff_get_unscaled_swscale(SwsContext *c)
c
->
chrDstVSubSample
==
c
->
chrSrcVSubSample
&&
dstFormat
!=
AV_PIX_FMT_NV12
&&
dstFormat
!=
AV_PIX_FMT_NV21
&&
dstFormat
!=
AV_PIX_FMT_P010LE
&&
dstFormat
!=
AV_PIX_FMT_P010BE
&&
dstFormat
!=
AV_PIX_FMT_P016LE
&&
dstFormat
!=
AV_PIX_FMT_P016BE
&&
srcFormat
!=
AV_PIX_FMT_NV12
&&
srcFormat
!=
AV_PIX_FMT_NV21
&&
srcFormat
!=
AV_PIX_FMT_P010LE
&&
srcFormat
!=
AV_PIX_FMT_P010BE
))
srcFormat
!=
AV_PIX_FMT_P010LE
&&
srcFormat
!=
AV_PIX_FMT_P010BE
&&
srcFormat
!=
AV_PIX_FMT_P016LE
&&
srcFormat
!=
AV_PIX_FMT_P016BE
))
{
if
(
isPacked
(
c
->
srcFormat
))
c
->
swscale
=
packedCopyWrapper
;
...
...
libswscale/utils.c
View file @
4c2176d4
...
...
@@ -252,6 +252,8 @@ static const FormatEntry format_entries[AV_PIX_FMT_NB] = {
[
AV_PIX_FMT_AYUV64LE
]
=
{
1
,
1
},
[
AV_PIX_FMT_P010LE
]
=
{
1
,
1
},
[
AV_PIX_FMT_P010BE
]
=
{
1
,
1
},
[
AV_PIX_FMT_P016LE
]
=
{
1
,
0
},
[
AV_PIX_FMT_P016BE
]
=
{
1
,
0
},
};
int
sws_isSupportedInput
(
enum
AVPixelFormat
pix_fmt
)
...
...
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