diracdec: fix full range videos
authorRostislav Pehlivanov <atomnuker@gmail.com>
Fri, 22 Jan 2016 17:07:16 +0000 (17:07 +0000)
committerRostislav Pehlivanov <atomnuker@gmail.com>
Fri, 22 Jan 2016 17:15:00 +0000 (17:15 +0000)
Full range video had been broken by the introduction of the < 2U check
at the following line. The bitstream format kind of implies that the full
and limited ranges use different pix_fmts but that's incorrect since we
have the avctx->color_range flag. So adjust the pixel range index to
be mapped to the same pix_fmts as limited range index.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
libavcodec/dirac.c

index faf5534..39df2a8 100644 (file)
@@ -262,6 +262,9 @@ static int parse_source_parameters(AVDiracSeqHeader *dsh, GetBitContext *gb,
 
     dsh->bit_depth = luma_depth;
 
+    /* Full range 8 bts uses the same pix_fmts as limited range 8 bits */
+    dsh->pixel_range_index += dsh->pixel_range_index == 1;
+
     if (dsh->pixel_range_index < 2U)
         return AVERROR_INVALIDDATA;