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
432be636
Commit
432be636
authored
Feb 19, 2016
by
Carl Eugen Hoyos
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
lavc/libvpx: Fix support for RGB colorspace.
Reported and tested by Nicolas George. Fixes ticket #5249.
parent
84d7933e
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
23 additions
and
2 deletions
+23
-2
libvpx.c
libavcodec/libvpx.c
+8
-0
libvpxenc.c
libavcodec/libvpxenc.c
+14
-1
version.h
libavcodec/version.h
+1
-1
No files found.
libavcodec/libvpx.c
View file @
432be636
...
...
@@ -38,6 +38,9 @@ static const enum AVPixelFormat vp9_pix_fmts_highcol[] = {
AV_PIX_FMT_YUV422P
,
AV_PIX_FMT_YUV440P
,
AV_PIX_FMT_YUV444P
,
#if VPX_IMAGE_ABI_VERSION >= 3
AV_PIX_FMT_GBRP
,
#endif
AV_PIX_FMT_NONE
};
...
...
@@ -54,6 +57,11 @@ static const enum AVPixelFormat vp9_pix_fmts_highbd[] = {
AV_PIX_FMT_YUV422P12
,
AV_PIX_FMT_YUV440P12
,
AV_PIX_FMT_YUV444P12
,
#if VPX_IMAGE_ABI_VERSION >= 3
AV_PIX_FMT_GBRP
,
AV_PIX_FMT_GBRP10
,
AV_PIX_FMT_GBRP12
,
#endif
AV_PIX_FMT_NONE
};
#endif
...
...
libavcodec/libvpxenc.c
View file @
432be636
...
...
@@ -106,6 +106,7 @@ typedef struct VP8EncoderContext {
int
aq_mode
;
int
drop_threshold
;
int
noise_sensitivity
;
int
vpx_cs
;
}
VP8Context
;
/** String mappings for enum vp8e_enc_control_id */
...
...
@@ -277,6 +278,7 @@ static int set_pix_fmt(AVCodecContext *avctx, vpx_codec_caps_t codec_caps,
struct
vpx_codec_enc_cfg
*
enccfg
,
vpx_codec_flags_t
*
flags
,
vpx_img_fmt_t
*
img_fmt
)
{
VP8Context
*
ctx
=
avctx
->
priv_data
;
#ifdef VPX_IMG_FMT_HIGHBITDEPTH
enccfg
->
g_bit_depth
=
enccfg
->
g_input_bit_depth
=
8
;
#endif
...
...
@@ -294,6 +296,8 @@ static int set_pix_fmt(AVCodecContext *avctx, vpx_codec_caps_t codec_caps,
enccfg
->
g_profile
=
1
;
*
img_fmt
=
VPX_IMG_FMT_I440
;
return
0
;
case
AV_PIX_FMT_GBRP
:
ctx
->
vpx_cs
=
VPX_CS_SRGB
;
#endif
case
AV_PIX_FMT_YUV444P
:
enccfg
->
g_profile
=
1
;
...
...
@@ -334,12 +338,16 @@ static int set_pix_fmt(AVCodecContext *avctx, vpx_codec_caps_t codec_caps,
return
0
;
}
break
;
case
AV_PIX_FMT_GBRP10
:
case
AV_PIX_FMT_GBRP12
:
ctx
->
vpx_cs
=
VPX_CS_SRGB
;
#endif
case
AV_PIX_FMT_YUV444P10
:
case
AV_PIX_FMT_YUV444P12
:
if
(
codec_caps
&
VPX_CODEC_CAP_HIGHBITDEPTH
)
{
enccfg
->
g_bit_depth
=
enccfg
->
g_input_bit_depth
=
avctx
->
pix_fmt
==
AV_PIX_FMT_YUV444P10
?
10
:
12
;
avctx
->
pix_fmt
==
AV_PIX_FMT_YUV444P10
||
avctx
->
pix_fmt
==
AV_PIX_FMT_GBRP10
?
10
:
12
;
enccfg
->
g_profile
=
3
;
*
img_fmt
=
VPX_IMG_FMT_I44416
;
*
flags
|=
VPX_CODEC_USE_HIGHBITDEPTH
;
...
...
@@ -358,7 +366,11 @@ static int set_pix_fmt(AVCodecContext *avctx, vpx_codec_caps_t codec_caps,
static
void
set_colorspace
(
AVCodecContext
*
avctx
)
{
enum
vpx_color_space
vpx_cs
;
VP8Context
*
ctx
=
avctx
->
priv_data
;
if
(
ctx
->
vpx_cs
)
{
vpx_cs
=
ctx
->
vpx_cs
;
}
else
{
switch
(
avctx
->
colorspace
)
{
case
AVCOL_SPC_RGB
:
vpx_cs
=
VPX_CS_SRGB
;
break
;
case
AVCOL_SPC_BT709
:
vpx_cs
=
VPX_CS_BT_709
;
break
;
...
...
@@ -373,6 +385,7 @@ static void set_colorspace(AVCodecContext *avctx)
avctx
->
colorspace
);
return
;
}
}
codecctl_int
(
avctx
,
VP9E_SET_COLOR_SPACE
,
vpx_cs
);
}
#endif
...
...
libavcodec/version.h
View file @
432be636
...
...
@@ -30,7 +30,7 @@
#define LIBAVCODEC_VERSION_MAJOR 57
#define LIBAVCODEC_VERSION_MINOR 24
#define LIBAVCODEC_VERSION_MICRO 10
4
#define LIBAVCODEC_VERSION_MICRO 10
5
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \
...
...
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