|
|
@ -1275,6 +1275,16 @@ static int decode_sequence_header_adv(VC1Context *v, GetBitContext *gb) |
|
|
|
v->tfcntrflag = get_bits1(gb); |
|
|
|
v->tfcntrflag = get_bits1(gb); |
|
|
|
v->finterpflag = get_bits1(gb); |
|
|
|
v->finterpflag = get_bits1(gb); |
|
|
|
get_bits1(gb); // reserved
|
|
|
|
get_bits1(gb); // reserved
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
av_log(v->s.avctx, AV_LOG_DEBUG, |
|
|
|
|
|
|
|
"Advanced Profile level %i:\nfrmrtq_postproc=%i, bitrtq_postproc=%i\n" |
|
|
|
|
|
|
|
"LoopFilter=%i, ChromaFormat=%i, Pulldown=%i, Interlace: %i\n" |
|
|
|
|
|
|
|
"TFCTRflag=%i, FINTERPflag=%i\n", |
|
|
|
|
|
|
|
v->level, v->frmrtq_postproc, v->bitrtq_postproc, |
|
|
|
|
|
|
|
v->s.loop_filter, v->chromaformat, v->broadcast, v->interlace, |
|
|
|
|
|
|
|
v->tfcntrflag, v->finterpflag |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
v->psf = get_bits1(gb); |
|
|
|
v->psf = get_bits1(gb); |
|
|
|
if(v->psf) { //PsF, 6.1.13
|
|
|
|
if(v->psf) { //PsF, 6.1.13
|
|
|
|
av_log(v->s.avctx, AV_LOG_ERROR, "Progressive Segmented Frame mode: not supported (yet)\n"); |
|
|
|
av_log(v->s.avctx, AV_LOG_ERROR, "Progressive Segmented Frame mode: not supported (yet)\n"); |
|
|
@ -1327,13 +1337,13 @@ static int decode_sequence_header_adv(VC1Context *v, GetBitContext *gb) |
|
|
|
static int decode_entry_point(AVCodecContext *avctx, GetBitContext *gb) |
|
|
|
static int decode_entry_point(AVCodecContext *avctx, GetBitContext *gb) |
|
|
|
{ |
|
|
|
{ |
|
|
|
VC1Context *v = avctx->priv_data; |
|
|
|
VC1Context *v = avctx->priv_data; |
|
|
|
int i; |
|
|
|
int i, blink, refdist; |
|
|
|
|
|
|
|
|
|
|
|
av_log(avctx, AV_LOG_DEBUG, "Entry point: %08X\n", show_bits_long(gb, 32)); |
|
|
|
av_log(avctx, AV_LOG_DEBUG, "Entry point: %08X\n", show_bits_long(gb, 32)); |
|
|
|
get_bits1(gb); // broken link
|
|
|
|
blink = get_bits1(gb); // broken link
|
|
|
|
avctx->max_b_frames = 1 - get_bits1(gb); // 'closed entry' also signalize possible B-frames
|
|
|
|
avctx->max_b_frames = 1 - get_bits1(gb); // 'closed entry' also signalize possible B-frames
|
|
|
|
v->panscanflag = get_bits1(gb); |
|
|
|
v->panscanflag = get_bits1(gb); |
|
|
|
get_bits1(gb); // refdist flag
|
|
|
|
refdist = get_bits1(gb); // refdist flag
|
|
|
|
v->s.loop_filter = get_bits1(gb); |
|
|
|
v->s.loop_filter = get_bits1(gb); |
|
|
|
v->fastuvmc = get_bits1(gb); |
|
|
|
v->fastuvmc = get_bits1(gb); |
|
|
|
v->extended_mv = get_bits1(gb); |
|
|
|
v->extended_mv = get_bits1(gb); |
|
|
@ -1363,6 +1373,13 @@ static int decode_entry_point(AVCodecContext *avctx, GetBitContext *gb) |
|
|
|
skip_bits(gb, 3); // UV range, ignored for now
|
|
|
|
skip_bits(gb, 3); // UV range, ignored for now
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
av_log(avctx, AV_LOG_DEBUG, "Entry point info:\n" |
|
|
|
|
|
|
|
"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, |
|
|
|
|
|
|
|
v->fastuvmc, v->extended_mv, v->dquant, v->vstransform, v->overlap, v->quantizer_mode); |
|
|
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|