Mercurial > libavcodec.hg
diff dv.c @ 7616:685ef77c9fe5 libavcodec
Making block size in bits variable and dependent on the DV spec
author | romansh |
---|---|
date | Tue, 19 Aug 2008 16:02:43 +0000 |
parents | 290fd3ae1219 |
children | a7ebe82c6331 |
line wrap: on
line diff
--- a/dv.c Tue Aug 19 16:01:41 2008 +0000 +++ b/dv.c Tue Aug 19 16:02:43 2008 +0000 @@ -253,10 +253,6 @@ int shift_offset; } BlockInfo; -/* block size in bits */ -static const uint16_t block_sizes[6] = { - 112, 112, 112, 112, 80, 80 -}; /* bit budget for AC only in 5 MBs */ static const int vs_total_ac_bits = (100 * 4 + 68*2) * 5; /* see dv_88_areas and dv_248_areas for details */ @@ -384,7 +380,7 @@ mb = mb1; block = block1; for(j = 0;j < s->sys->bpm; j++) { - last_index = block_sizes[j]; + last_index = s->sys->block_sizes[j]; init_get_bits(&gb, buf_ptr, last_index); /* get the dc */ @@ -911,7 +907,7 @@ enc_blk->dct_mode ? dv_weight_248 : dv_weight_88, j/4); - init_put_bits(pb, ptr, block_sizes[j]/8); + init_put_bits(pb, ptr, s->sys->block_sizes[j]/8); put_bits(pb, 9, (uint16_t)(((enc_blk->mb[0] >> 3) - 1024 + 2) >> 2)); put_bits(pb, 1, enc_blk->dct_mode); put_bits(pb, 2, enc_blk->cno); @@ -920,7 +916,7 @@ enc_blk->bit_size[2] + enc_blk->bit_size[3]; ++enc_blk; ++pb; - ptr += block_sizes[j]/8; + ptr += s->sys->block_sizes[j]/8; } }