Mercurial > libavcodec.hg
comparison dv.c @ 8010:4b19d9cbc75b libavcodec
fixing a bug that prevented proper unweighting table to be selected
author | romansh |
---|---|
date | Tue, 07 Oct 2008 15:51:29 +0000 |
parents | f7c7ef5e448b |
children | 3ec8f8660152 |
comparison
equal
deleted
inserted
replaced
8009:f7c7ef5e448b | 8010:4b19d9cbc75b |
---|---|
408 dct_mode = get_bits1(&gb); | 408 dct_mode = get_bits1(&gb); |
409 class1 = get_bits(&gb, 2); | 409 class1 = get_bits(&gb, 2); |
410 if (DV_PROFILE_IS_HD(s->sys)) { | 410 if (DV_PROFILE_IS_HD(s->sys)) { |
411 mb->idct_put = s->idct_put[0]; | 411 mb->idct_put = s->idct_put[0]; |
412 mb->scan_table = s->dv_zigzag[0]; | 412 mb->scan_table = s->dv_zigzag[0]; |
413 mb->factor_table = s->dv100_idct_factor[((s->sys->height == 720)<<1)&(j < 4)][class1][quant]; | 413 mb->factor_table = s->dv100_idct_factor[((s->sys->height == 720)<<1)|(j >= 4)][class1][quant]; |
414 is_field_mode[mb_index] |= !j && dct_mode; | 414 is_field_mode[mb_index] |= !j && dct_mode; |
415 } else { | 415 } else { |
416 mb->idct_put = s->idct_put[dct_mode && log2_blocksize==3]; | 416 mb->idct_put = s->idct_put[dct_mode && log2_blocksize==3]; |
417 mb->scan_table = s->dv_zigzag[dct_mode]; | 417 mb->scan_table = s->dv_zigzag[dct_mode]; |
418 mb->factor_table = s->dv_idct_factor[class1 == 3][dct_mode] | 418 mb->factor_table = s->dv_idct_factor[class1 == 3][dct_mode] |