comparison vc1.c @ 4486:1d2320afa864 libavcodec

B-frames could not be determined from broken_link/closed_entry, use fixed value
author kostya
date Tue, 06 Feb 2007 07:11:20 +0000
parents 81a120f5f8d0
children 0a0a9f0c9c2d
comparison
equal deleted inserted replaced
4485:81a120f5f8d0 4486:1d2320afa864
1302 v->psf = get_bits1(gb); 1302 v->psf = get_bits1(gb);
1303 if(v->psf) { //PsF, 6.1.13 1303 if(v->psf) { //PsF, 6.1.13
1304 av_log(v->s.avctx, AV_LOG_ERROR, "Progressive Segmented Frame mode: not supported (yet)\n"); 1304 av_log(v->s.avctx, AV_LOG_ERROR, "Progressive Segmented Frame mode: not supported (yet)\n");
1305 return -1; 1305 return -1;
1306 } 1306 }
1307 v->s.max_b_frames = v->s.avctx->max_b_frames = 7;
1307 if(get_bits1(gb)) { //Display Info - decoding is not affected by it 1308 if(get_bits1(gb)) { //Display Info - decoding is not affected by it
1308 int w, h, ar = 0; 1309 int w, h, ar = 0;
1309 av_log(v->s.avctx, AV_LOG_DEBUG, "Display extended info:\n"); 1310 av_log(v->s.avctx, AV_LOG_DEBUG, "Display extended info:\n");
1310 v->s.avctx->width = v->s.width = w = get_bits(gb, 14) + 1; 1311 v->s.avctx->width = v->s.width = w = get_bits(gb, 14) + 1;
1311 v->s.avctx->height = v->s.height = h = get_bits(gb, 14) + 1; 1312 v->s.avctx->height = v->s.height = h = get_bits(gb, 14) + 1;
1357 } 1358 }
1358 1359
1359 static int decode_entry_point(AVCodecContext *avctx, GetBitContext *gb) 1360 static int decode_entry_point(AVCodecContext *avctx, GetBitContext *gb)
1360 { 1361 {
1361 VC1Context *v = avctx->priv_data; 1362 VC1Context *v = avctx->priv_data;
1362 int i, blink, refdist; 1363 int i, blink, clentry, refdist;
1363 1364
1364 av_log(avctx, AV_LOG_DEBUG, "Entry point: %08X\n", show_bits_long(gb, 32)); 1365 av_log(avctx, AV_LOG_DEBUG, "Entry point: %08X\n", show_bits_long(gb, 32));
1365 blink = get_bits1(gb); // broken link 1366 blink = get_bits1(gb); // broken link
1366 avctx->max_b_frames = 1 - get_bits1(gb); // 'closed entry' also signalize possible B-frames 1367 clentry = get_bits1(gb); // closed entry
1367 v->panscanflag = get_bits1(gb); 1368 v->panscanflag = get_bits1(gb);
1368 refdist = get_bits1(gb); // refdist flag 1369 refdist = get_bits1(gb); // refdist flag
1369 v->s.loop_filter = get_bits1(gb); 1370 v->s.loop_filter = get_bits1(gb);
1370 v->fastuvmc = get_bits1(gb); 1371 v->fastuvmc = get_bits1(gb);
1371 v->extended_mv = get_bits1(gb); 1372 v->extended_mv = get_bits1(gb);
1397 1398
1398 av_log(avctx, AV_LOG_DEBUG, "Entry point info:\n" 1399 av_log(avctx, AV_LOG_DEBUG, "Entry point info:\n"
1399 "BrokenLink=%i, ClosedEntry=%i, PanscanFlag=%i\n" 1400 "BrokenLink=%i, ClosedEntry=%i, PanscanFlag=%i\n"
1400 "RefDist=%i, Postproc=%i, FastUVMC=%i, ExtMV=%i\n" 1401 "RefDist=%i, Postproc=%i, FastUVMC=%i, ExtMV=%i\n"
1401 "DQuant=%i, VSTransform=%i, Overlap=%i, Qmode=%i\n", 1402 "DQuant=%i, VSTransform=%i, Overlap=%i, Qmode=%i\n",
1402 blink, 1 - avctx->max_b_frames, v->panscanflag, refdist, v->s.loop_filter, 1403 blink, clentry, v->panscanflag, refdist, v->s.loop_filter,
1403 v->fastuvmc, v->extended_mv, v->dquant, v->vstransform, v->overlap, v->quantizer_mode); 1404 v->fastuvmc, v->extended_mv, v->dquant, v->vstransform, v->overlap, v->quantizer_mode);
1404 1405
1405 return 0; 1406 return 0;
1406 } 1407 }
1407 1408