|
|
|
@ -372,7 +372,11 @@ int ff_vc1_decode_sequence_header(AVCodecContext *avctx, VC1Context *v, GetBitCo |
|
|
|
|
if (v->res_sprite) { |
|
|
|
|
int w = get_bits(gb, 11); |
|
|
|
|
int h = get_bits(gb, 11); |
|
|
|
|
avcodec_set_dimensions(v->s.avctx, w, h); |
|
|
|
|
int ret = ff_set_dimensions(v->s.avctx, w, h); |
|
|
|
|
if (ret < 0) { |
|
|
|
|
av_log(avctx, AV_LOG_ERROR, "Failed to set dimensions %d %d\n", w, h); |
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
skip_bits(gb, 5); //frame rate
|
|
|
|
|
v->res_x8 = get_bits1(gb); |
|
|
|
|
if (get_bits1(gb)) { // something to do with DC VLC selection
|
|
|
|
@ -516,6 +520,7 @@ int ff_vc1_decode_entry_point(AVCodecContext *avctx, VC1Context *v, GetBitContex |
|
|
|
|
{ |
|
|
|
|
int i; |
|
|
|
|
int w,h; |
|
|
|
|
int ret; |
|
|
|
|
|
|
|
|
|
av_log(avctx, AV_LOG_DEBUG, "Entry point: %08X\n", show_bits_long(gb, 32)); |
|
|
|
|
v->broken_link = get_bits1(gb); |
|
|
|
@ -545,7 +550,11 @@ int ff_vc1_decode_entry_point(AVCodecContext *avctx, VC1Context *v, GetBitContex |
|
|
|
|
w = v->max_coded_width; |
|
|
|
|
h = v->max_coded_height; |
|
|
|
|
} |
|
|
|
|
avcodec_set_dimensions(avctx, w, h); |
|
|
|
|
if ((ret = ff_set_dimensions(avctx, w, h)) < 0) { |
|
|
|
|
av_log(avctx, AV_LOG_ERROR, "Failed to set dimensions %d %d\n", w, h); |
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (v->extended_mv) |
|
|
|
|
v->extended_dmv = get_bits1(gb); |
|
|
|
|
if ((v->range_mapy_flag = get_bits1(gb))) { |
|
|
|
|