diff dvdata.h @ 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 f0f8bb920b24
line wrap: on
line diff
--- a/dvdata.h	Tue Aug 19 16:01:41 2008 +0000
+++ b/dvdata.h	Tue Aug 19 16:02:43 2008 +0000
@@ -50,6 +50,7 @@
     const uint16_t  *video_place;         /* positions of all DV macro blocks */
     enum PixelFormat pix_fmt;             /* picture pixel format */
     int              bpm;                 /* blocks per macroblock */
+    const uint8_t   *block_sizes;         /* AC block sizes, in bits */
     int              audio_stride;        /* size of audio_shuffle table */
     int              audio_min_samples[3];/* min ammount of audio samples */
                                           /* for 48Khz, 44.1Khz and 32Khz */
@@ -2521,6 +2522,15 @@
     48000, 44100, 32000,
 };
 
+/* macroblock bit budgets */
+static const uint8_t block_sizes_dv2550[8] = {
+    112, 112, 112, 112, 80, 80, 0, 0,
+};
+
+static const uint8_t block_sizes_dv100[8] = {
+    80, 80, 80, 80, 80, 80, 64, 64,
+};
+
 static const DVprofile dv_profiles[] = {
     { .dsf = 0,
       .frame_size = 120000,        /* IEC 61834, SMPTE-314M - 525/60 (NTSC) */
@@ -2535,6 +2545,7 @@
       .video_place = dv_place_411,
       .pix_fmt = PIX_FMT_YUV411P,
       .bpm = 6,
+      .block_sizes = block_sizes_dv2550,
       .audio_stride = 90,
       .audio_min_samples = { 1580, 1452, 1053 }, /* for 48, 44.1 and 32Khz */
       .audio_samples_dist = { 1600, 1602, 1602, 1602, 1602 }, /* per SMPTE-314M */
@@ -2553,6 +2564,7 @@
       .video_place = dv_place_420,
       .pix_fmt = PIX_FMT_YUV420P,
       .bpm = 6,
+      .block_sizes = block_sizes_dv2550,
       .audio_stride = 108,
       .audio_min_samples = { 1896, 1742, 1264 }, /* for 48, 44.1 and 32Khz */
       .audio_samples_dist = { 1920, 1920, 1920, 1920, 1920 },
@@ -2571,6 +2583,7 @@
       .video_place = dv_place_411P,
       .pix_fmt = PIX_FMT_YUV411P,
       .bpm = 6,
+      .block_sizes = block_sizes_dv2550,
       .audio_stride = 108,
       .audio_min_samples = { 1896, 1742, 1264 }, /* for 48, 44.1 and 32Khz */
       .audio_samples_dist = { 1920, 1920, 1920, 1920, 1920 },
@@ -2589,6 +2602,7 @@
       .video_place = dv_place_422_525,
       .pix_fmt = PIX_FMT_YUV422P,
       .bpm = 6,
+      .block_sizes = block_sizes_dv2550,
       .audio_stride = 90,
       .audio_min_samples = { 1580, 1452, 1053 }, /* for 48, 44.1 and 32Khz */
       .audio_samples_dist = { 1600, 1602, 1602, 1602, 1602 }, /* per SMPTE-314M */
@@ -2607,6 +2621,7 @@
       .video_place = dv_place_422_625,
       .pix_fmt = PIX_FMT_YUV422P,
       .bpm = 6,
+      .block_sizes = block_sizes_dv2550,
       .audio_stride = 108,
       .audio_min_samples = { 1896, 1742, 1264 }, /* for 48, 44.1 and 32Khz */
       .audio_samples_dist = { 1920, 1920, 1920, 1920, 1920 },