Commit 0b19c65afe for ffmpeg

commit 0b19c65afeed73ce7498ae7faa8fe95530b8a6ab
Author: James Almer <jamrial@gmail.com>
Date:   Fri Oct 16 14:26:22 2026 -0300

    avcodec/lcevcdec: propagate color related frame fields

    Signed-off-by: James Almer <jamrial@gmail.com>

diff --git a/libavcodec/lcevcdec.c b/libavcodec/lcevcdec.c
index a2bda77b4a..b79401f98d 100644
--- a/libavcodec/lcevcdec.c
+++ b/libavcodec/lcevcdec.c
@@ -95,6 +95,14 @@ static int alloc_base_frame(FFLCEVCContext *lcevc,
     desc.cropRight  = frame->crop_right;
     desc.sampleAspectRatioNum  = frame->sample_aspect_ratio.num;
     desc.sampleAspectRatioDen  = frame->sample_aspect_ratio.den;
+    desc.colorRange = LCEVC_ColorRange_Unknown;
+    if (frame->color_range == AVCOL_RANGE_JPEG)
+        desc.colorRange = LCEVC_ColorRange_Full;
+    else if (frame->color_range == AVCOL_RANGE_MPEG)
+        desc.colorRange = LCEVC_ColorRange_Limited;
+    desc.colorPrimaries = (LCEVC_ColorPrimaries)frame->color_primaries;
+    desc.matrixCoefficients = (LCEVC_MatrixCoefficients)frame->colorspace;
+    desc.transferCharacteristics = (LCEVC_TransferCharacteristics)frame->color_trc;

     for (int i = 0; i < AV_VIDEO_MAX_PLANES; i++) {
         planes[i].firstSample = frame->data[i];
@@ -235,14 +243,24 @@ static int generate_output(FFLCEVCFrame *frame_ctx, AVFrame *out)
     out->sample_aspect_ratio.den = desc.sampleAspectRatioDen;
     out->width = desc.width + out->crop_left + out->crop_right;
     out->height = desc.height + out->crop_top + out->crop_bottom;
+    out->color_range = AVCOL_RANGE_UNSPECIFIED;
+    if (desc.colorRange == LCEVC_ColorRange_Full)
+        out->color_range = AVCOL_RANGE_JPEG;
+    else if (desc.colorRange == LCEVC_ColorRange_Limited)
+        out->color_range = AVCOL_RANGE_MPEG;
+    out->color_primaries = (enum AVColorPrimaries)desc.colorPrimaries;
+    out->colorspace = (enum AVColorSpace)desc.matrixCoefficients;
+    out->color_trc = (enum AVColorTransferCharacteristic)desc.transferCharacteristics;

     av_log(lcevc, AV_LOG_DEBUG,  "out PTS %"PRId64", %dx%d, "
                                  "%zu/%zu/%zu/%zu, "
                                  "SAR %d:%d, "
+                                 "color_range %d, color_primaries %d, colorspace %d, color_trc %d, "
                                  "hasEnhancement %d, enhanced %d\n",
            out->pts, out->width, out->height,
            out->crop_top, out->crop_bottom, out->crop_left, out->crop_right,
            out->sample_aspect_ratio.num, out->sample_aspect_ratio.den,
+           out->color_range, out->color_primaries, out->colorspace, out->color_trc,
            info.hasEnhancement, info.enhanced);

     res = LCEVC_FreePicture(lcevc->decoder, picture);