B-frames could not be determined from broken_link/closed_entry, use fixed value
authorKostya Shishkov <kostya.shishkov@gmail.com>
Tue, 6 Feb 2007 07:11:20 +0000 (07:11 +0000)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Tue, 6 Feb 2007 07:11:20 +0000 (07:11 +0000)
Originally committed as revision 7848 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/vc1.c

index df3e7067236fda76252d3ba2fd76be3aa117a31c..d344d036829045a79d53103d4af64c452130b219 100644 (file)
@@ -1304,6 +1304,7 @@ static int decode_sequence_header_adv(VC1Context *v, GetBitContext *gb)
         av_log(v->s.avctx, AV_LOG_ERROR, "Progressive Segmented Frame mode: not supported (yet)\n");
         return -1;
     }
+    v->s.max_b_frames = v->s.avctx->max_b_frames = 7;
     if(get_bits1(gb)) { //Display Info - decoding is not affected by it
         int w, h, ar = 0;
         av_log(v->s.avctx, AV_LOG_DEBUG, "Display extended info:\n");
@@ -1359,11 +1360,11 @@ static int decode_sequence_header_adv(VC1Context *v, GetBitContext *gb)
 static int decode_entry_point(AVCodecContext *avctx, GetBitContext *gb)
 {
     VC1Context *v = avctx->priv_data;
-    int i, blink, refdist;
+    int i, blink, clentry, refdist;
 
     av_log(avctx, AV_LOG_DEBUG, "Entry point: %08X\n", show_bits_long(gb, 32));
     blink = get_bits1(gb); // broken link
-    avctx->max_b_frames = 1 - get_bits1(gb); // 'closed entry' also signalize possible B-frames
+    clentry = get_bits1(gb); // closed entry
     v->panscanflag = get_bits1(gb);
     refdist = get_bits1(gb); // refdist flag
     v->s.loop_filter = get_bits1(gb);
@@ -1399,7 +1400,7 @@ static int decode_entry_point(AVCodecContext *avctx, GetBitContext *gb)
         "BrokenLink=%i, ClosedEntry=%i, PanscanFlag=%i\n"
         "RefDist=%i, Postproc=%i, FastUVMC=%i, ExtMV=%i\n"
         "DQuant=%i, VSTransform=%i, Overlap=%i, Qmode=%i\n",
-        blink, 1 - avctx->max_b_frames, v->panscanflag, refdist, v->s.loop_filter,
+        blink, clentry, v->panscanflag, refdist, v->s.loop_filter,
         v->fastuvmc, v->extended_mv, v->dquant, v->vstransform, v->overlap, v->quantizer_mode);
 
     return 0;