diff options
author | James Almer <jamrial@gmail.com> | 2020-06-19 16:56:20 +0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2020-07-03 04:26:39 +0300 |
commit | b303fe926ef153b01de3f1ae6bba8fbb0b7190bf (patch) | |
tree | 42dc22bdbde6a1bced444465d9f65a44c9ad2801 /libavcodec/av1_parser.c | |
parent | 8f5f453998c2c1896c77fe7d7ff593c1c22ecb0e (diff) |
avcodec/av1_parser: add missing parsing for RGB pixel format signaling
Signed-off-by: James Almer <jamrial@gmail.com>
(cherry picked from commit af6cddae1fe9cf378e961d9a2a36dd7234996ab3)
Diffstat (limited to 'libavcodec/av1_parser.c')
-rw-r--r-- | libavcodec/av1_parser.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libavcodec/av1_parser.c b/libavcodec/av1_parser.c index ce447a67e9..c5bdc6b25f 100644 --- a/libavcodec/av1_parser.c +++ b/libavcodec/av1_parser.c @@ -45,6 +45,10 @@ static const enum AVPixelFormat pix_fmts_12bit[2][2] = { { AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV420P12 }, }; +static const enum AVPixelFormat pix_fmts_rgb[3] = { + AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRP10, AV_PIX_FMT_GBRP12, +}; + static int av1_parser_parse(AVCodecParserContext *ctx, AVCodecContext *avctx, const uint8_t **out_data, int *out_size, @@ -161,6 +165,12 @@ static int av1_parser_parse(AVCodecParserContext *ctx, } av_assert2(ctx->format != AV_PIX_FMT_NONE); + if (!color->subsampling_x && !color->subsampling_y && + color->matrix_coefficients == AVCOL_SPC_RGB && + color->color_primaries == AVCOL_PRI_BT709 && + color->transfer_characteristics == AVCOL_TRC_IEC61966_2_1) + ctx->format = pix_fmts_rgb[color->high_bitdepth + color->twelve_bit]; + avctx->profile = seq->seq_profile; avctx->level = seq->seq_level_idx[0]; |