summaryrefslogtreecommitdiff
path: root/libavcodec/dvdata.h
diff options
context:
space:
mode:
authorRoman Shaposhnik <roman@shaposhnik.org>2008-08-19 16:02:43 +0000
committerRoman Shaposhnik <roman@shaposhnik.org>2008-08-19 16:02:43 +0000
commitc89cb5894e63d6d2698a8e1d12f8533823ed2c2f (patch)
treecb63752eec36550a24b7fd9e53fa335f46c29675 /libavcodec/dvdata.h
parent713c1aa9a68cb26a775e67dfc60366f74b4f09ea (diff)
Making block size in bits variable and dependent on the DV spec
Originally committed as revision 14842 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/dvdata.h')
-rw-r--r--libavcodec/dvdata.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/libavcodec/dvdata.h b/libavcodec/dvdata.h
index 06b15662e7..3949bb7f88 100644
--- a/libavcodec/dvdata.h
+++ b/libavcodec/dvdata.h
@@ -50,6 +50,7 @@ typedef struct DVprofile {
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 @@ static const av_unused int dv_audio_frequency[3] = {
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 @@ static const DVprofile dv_profiles[] = {
.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 @@ static const DVprofile dv_profiles[] = {
.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 @@ static const DVprofile dv_profiles[] = {
.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 @@ static const DVprofile dv_profiles[] = {
.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 @@ static const DVprofile dv_profiles[] = {
.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 },