[FFmpeg-devel] [PATCH] libsvtav1: pass color description info

Christopher Degawa ccom at randomderp.com
Fri Jul 23 05:02:10 EEST 2021


these fields are only available past svt-av1 0.8.7

Signed-off-by: Christopher Degawa <ccom at randomderp.com>
---
 libavcodec/libsvtav1.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c
index fabc4e6428..6c12777911 100644
--- a/libavcodec/libsvtav1.c
+++ b/libavcodec/libsvtav1.c
@@ -37,6 +37,14 @@
 #include "avcodec.h"
 #include "profiles.h"
 
+#ifndef SVTAV1_MAKE_VERSION
+#define SVTAV1_MAKE_VERSION(x,y,z) ((x) << 16 | (y) << 8 | z)
+#endif
+
+#ifndef SVTAV1_CURR_VERSION
+#define SVTAV1_CURR_VERSION SVTAV1_MAKE_VERSION(SVT_VERSION_MAJOR, SVT_VERSION_MINOR, SVT_VERSION_PATCHLEVEL)
+#endif
+
 typedef enum eos_status {
     EOS_NOT_REACHED = 0,
     EOS_SENT,
@@ -218,6 +226,18 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param,
     param->tile_columns = svt_enc->tile_columns;
     param->tile_rows    = svt_enc->tile_rows;
 
+#if SVTAV1_CURR_VERSION >= SVTAV1_MAKE_VERSION(0, 8, 7)
+    if (desc->flags & AV_PIX_FMT_FLAG_RGB) {
+        param->color_primaries = AVCOL_PRI_BT709;
+        param->matrix_coefficients = AVCOL_SPC_RGB;
+        param->transfer_characteristics = AVCOL_TRC_IEC61966_2_1;
+    } else {
+        param->color_primaries = avctx->color_primaries;
+        param->matrix_coefficients = avctx->colorspace;
+        param->transfer_characteristics = avctx->color_trc;
+    }
+#endif
+
     return 0;
 }
 
-- 
2.32.0



More information about the ffmpeg-devel mailing list