[FFmpeg-cvslog] avcodec/av1_parser: add missing parsing for RGB pixel format signaling

James Almer git at videolan.org
Fri Jul 3 04:27:49 EEST 2020


ffmpeg | branch: release/4.3 | James Almer <jamrial at gmail.com> | Fri Jun 19 10:56:20 2020 -0300| [b303fe926ef153b01de3f1ae6bba8fbb0b7190bf] | committer: James Almer

avcodec/av1_parser: add missing parsing for RGB pixel format signaling

Signed-off-by: James Almer <jamrial at gmail.com>
(cherry picked from commit af6cddae1fe9cf378e961d9a2a36dd7234996ab3)

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b303fe926ef153b01de3f1ae6bba8fbb0b7190bf
---

 libavcodec/av1_parser.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

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];
 



More information about the ffmpeg-cvslog mailing list