H264: set colorspace and full range to values indicating unspecified by default
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 7 Oct 2011 23:12:46 +0000 (01:12 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 8 Oct 2011 01:13:21 +0000 (03:13 +0200)
Code based on ffdshow
Author unknown

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/h264.c
libavcodec/h264_ps.c

index cb2ce98..40da076 100644 (file)
@@ -2670,7 +2670,7 @@ static int decode_slice_header(H264Context *h, H264Context *h0){
         }
 
         if(h->sps.video_signal_type_present_flag){
-            s->avctx->color_range = h->sps.full_range ? AVCOL_RANGE_JPEG : AVCOL_RANGE_MPEG;
+            s->avctx->color_range = h->sps.full_range>0 ? AVCOL_RANGE_JPEG : AVCOL_RANGE_MPEG;
             if(h->sps.colour_description_present_flag){
                 s->avctx->color_primaries = h->sps.color_primaries;
                 s->avctx->color_trc       = h->sps.color_trc;
index 637cf27..f0ec0ff 100644 (file)
@@ -338,10 +338,12 @@ int ff_h264_decode_seq_parameter_set(H264Context *h){
     sps->profile_idc= profile_idc;
     sps->constraint_set_flags = constraint_set_flags;
     sps->level_idc= level_idc;
+    sps->full_range = -1;
 
     memset(sps->scaling_matrix4, 16, sizeof(sps->scaling_matrix4));
     memset(sps->scaling_matrix8, 16, sizeof(sps->scaling_matrix8));
     sps->scaling_matrix_present = 0;
+    sps->colorspace = 2; //AVCOL_SPC_UNSPECIFIED
 
     if(sps->profile_idc >= 100){ //high profile
         sps->chroma_format_idc= get_ue_golomb_31(&s->gb);