]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/vc1.c
eacdata: fix a memleak, return partial packets and use proper return values.
[ffmpeg] / libavcodec / vc1.c
index 964e1266e29d34f65c40af8cbc33a22aa73b9984..648541e2b502c3a48bb7cd1ec081fe3c973e56a6 100644 (file)
@@ -323,7 +323,7 @@ int vc1_decode_sequence_header(AVCodecContext *avctx, VC1Context *v, GetBitConte
     if(v->s.loop_filter == 1 && v->profile == PROFILE_SIMPLE)
     {
         av_log(avctx, AV_LOG_ERROR,
-               "LOOPFILTER shell not be enabled in simple profile\n");
+               "LOOPFILTER shall not be enabled in Simple Profile\n");
     }
     if(v->s.avctx->skip_loop_filter >= AVDISCARD_ALL)
         v->s.loop_filter = 0;
@@ -337,6 +337,10 @@ int vc1_decode_sequence_header(AVCodecContext *avctx, VC1Context *v, GetBitConte
         v->s.dsp.vc1_inv_trans_8x4 = ff_simple_idct84_add;
         v->s.dsp.vc1_inv_trans_4x8 = ff_simple_idct48_add;
         v->s.dsp.vc1_inv_trans_4x4 = ff_simple_idct44_add;
+        v->s.dsp.vc1_inv_trans_8x8_dc = ff_simple_idct_add;
+        v->s.dsp.vc1_inv_trans_8x4_dc = ff_simple_idct84_add;
+        v->s.dsp.vc1_inv_trans_4x8_dc = ff_simple_idct48_add;
+        v->s.dsp.vc1_inv_trans_4x4_dc = ff_simple_idct44_add;
     }
 
     v->fastuvmc =  get_bits1(gb); //common
@@ -371,7 +375,7 @@ int vc1_decode_sequence_header(AVCodecContext *avctx, VC1Context *v, GetBitConte
     if (v->rangered && v->profile == PROFILE_SIMPLE)
     {
         av_log(avctx, AV_LOG_INFO,
-               "RANGERED should be set to 0 in simple profile\n");
+               "RANGERED should be set to 0 in Simple Profile\n");
     }
 
     v->s.max_b_frames = avctx->max_b_frames = get_bits(gb, 3); //common
@@ -777,7 +781,11 @@ int vc1_parse_frame_header_adv(VC1Context *v, GetBitContext* gb)
 
     if(v->interlace){
         v->fcm = decode012(gb);
-        if(v->fcm) return -1; // interlaced frames/fields are not implemented
+        if(v->fcm){
+            if(!v->warn_interlaced++)
+                av_log(v->s.avctx, AV_LOG_ERROR, "Interlaced frames/fields support is not implemented\n");
+            return -1;
+        }
     }
     switch(get_unary(gb, 0, 4)) {
     case 0: