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;
         }
     }