# HG changeset patch # User kostya # Date 1152413800 0 # Node ID f024ca7c768ba9e79195e8fe26627a6d8167b95d # Parent 45724ba8d666d29c0f925a5cca34371dd1af0886 MVRANGE may occur in all frames and RESPIC in all but B-frames diff -r 45724ba8d666 -r f024ca7c768b vc1.c --- a/vc1.c Sun Jul 09 02:51:13 2006 +0000 +++ b/vc1.c Sun Jul 09 02:56:40 2006 +0000 @@ -1316,6 +1316,17 @@ if (v->quantizer_mode == QUANT_FRAME_EXPLICIT) v->pquantizer = get_bits(gb, 1); v->dquantfrm = 0; + if (v->extended_mv == 1) v->mvrange = get_prefix(gb, 0, 3); + v->k_x = v->mvrange + 9 + (v->mvrange >> 1); //k_x can be 9 10 12 13 + v->k_y = v->mvrange + 8; //k_y can be 8 9 10 11 + v->range_x = 1 << (v->k_x - 1); + v->range_y = 1 << (v->k_y - 1); + if (v->profile == PROFILE_ADVANCED) + { + if (v->postprocflag) v->postproc = get_bits(gb, 1); + } + else + if (v->multires && v->s.pict_type != B_TYPE) v->respic = get_bits(gb, 2); //av_log(v->s.avctx, AV_LOG_INFO, "%c Frame: QP=[%i]%i (+%i/2) %i\n", // (v->s.pict_type == P_TYPE) ? 'P' : ((v->s.pict_type == I_TYPE) ? 'I' : 'B'), pqindex, v->pq, v->halfpq, v->rangeredfrm); @@ -1327,17 +1338,6 @@ else if(v->pq < 13) v->tt_index = 1; else v->tt_index = 2; - if (v->extended_mv == 1) v->mvrange = get_prefix(gb, 0, 3); - v->k_x = v->mvrange + 9 + (v->mvrange >> 1); //k_x can be 9 10 12 13 - v->k_y = v->mvrange + 8; //k_y can be 8 9 10 11 - v->range_x = 1 << (v->k_x - 1); - v->range_y = 1 << (v->k_y - 1); - if (v->profile == PROFILE_ADVANCED) - { - if (v->postprocflag) v->postproc = get_bits(gb, 1); - } - else - if (v->multires) v->respic = get_bits(gb, 2); lowquant = (v->pq > 12) ? 0 : 1; v->mv_mode = mv_pmode_table[lowquant][get_prefix(gb, 1, 4)]; if (v->mv_mode == MV_PMODE_INTENSITY_COMP)