Commit ee73933e authored by diego's avatar diego

prettyprinting cosmetics


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@15682 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent b4425538
This diff is collapsed.
...@@ -37,26 +37,26 @@ ...@@ -37,26 +37,26 @@
* DV specs as well (e.g. SMPTE314M vs. IEC 61834). * DV specs as well (e.g. SMPTE314M vs. IEC 61834).
*/ */
typedef struct DVprofile { typedef struct DVprofile {
int dsf; /* value of the dsf in the DV header */ int dsf; /* value of the dsf in the DV header */
int video_stype; /* stype for VAUX source pack */ int video_stype; /* stype for VAUX source pack */
int frame_size; /* total size of one frame in bytes */ int frame_size; /* total size of one frame in bytes */
int difseg_size; /* number of DIF segments per DIF channel */ int difseg_size; /* number of DIF segments per DIF channel */
int n_difchan; /* number of DIF channels per frame */ int n_difchan; /* number of DIF channels per frame */
AVRational time_base; /* 1/framerate */ AVRational time_base; /* 1/framerate */
int ltc_divisor; /* FPS from the LTS standpoint */ int ltc_divisor; /* FPS from the LTS standpoint */
int height; /* picture height in pixels */ int height; /* picture height in pixels */
int width; /* picture width in pixels */ int width; /* picture width in pixels */
AVRational sar[2]; /* sample aspect ratios for 4:3 and 16:9 */ AVRational sar[2]; /* sample aspect ratios for 4:3 and 16:9 */
const uint16_t *video_place; /* positions of all DV macroblocks */ const uint16_t *video_place; /* positions of all DV macroblocks */
enum PixelFormat pix_fmt; /* picture pixel format */ enum PixelFormat pix_fmt; /* picture pixel format */
int bpm; /* blocks per macroblock */ int bpm; /* blocks per macroblock */
const uint8_t *block_sizes; /* AC block sizes, in bits */ const uint8_t *block_sizes; /* AC block sizes, in bits */
int audio_stride; /* size of audio_shuffle table */ int audio_stride; /* size of audio_shuffle table */
int audio_min_samples[3];/* min amount of audio samples */ int audio_min_samples[3]; /* min amount of audio samples */
/* for 48kHz, 44.1kHz and 32kHz */ /* for 48kHz, 44.1kHz and 32kHz */
int audio_samples_dist[5];/* how many samples are supposed to be */ int audio_samples_dist[5]; /* how many samples are supposed to be */
/* in each frame in a 5 frames window */ /* in each frame in a 5 frames window */
const uint8_t (*audio_shuffle)[9]; /* PCM shuffling table */ const uint8_t (*audio_shuffle)[9]; /* PCM shuffling table */
} DVprofile; } DVprofile;
#define NB_DV_VLC 409 #define NB_DV_VLC 409
...@@ -232,38 +232,38 @@ static const uint8_t dv_vlc_run[409] = { ...@@ -232,38 +232,38 @@ static const uint8_t dv_vlc_run[409] = {
}; };
static const uint8_t dv_vlc_level[409] = { static const uint8_t dv_vlc_level[409] = {
1, 2, 1, 3, 4, 1, 2, 5, 1, 2, 1, 3, 4, 1, 2, 5,
6, 1, 1, 7, 8, 1, 1, 2, 6, 1, 1, 7, 8, 1, 1, 2,
3, 4, 9, 10, 11, 1, 1, 1, 3, 4, 9, 10, 11, 1, 1, 1,
1, 2, 2, 3, 5, 6, 7, 12, 1, 2, 2, 3, 5, 6, 7, 12,
13, 14, 15, 16, 17, 1, 1, 1, 13, 14, 15, 16, 17, 1, 1, 1,
1, 2, 2, 3, 3, 4, 5, 8, 1, 2, 2, 3, 3, 4, 5, 8,
18, 19, 20, 21, 22, 3, 4, 5, 18, 19, 20, 21, 22, 3, 4, 5,
6, 9, 10, 11, 0, 0, 3, 4, 6, 9, 10, 11, 0, 0, 3, 4,
6, 12, 13, 14, 0, 0, 0, 0, 6, 12, 13, 14, 0, 0, 0, 0,
2, 2, 2, 2, 3, 3, 5, 7, 2, 2, 2, 2, 3, 3, 5, 7,
7, 8, 9, 10, 11, 15, 16, 17, 7, 8, 9, 10, 11, 15, 16, 17,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 16, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 32, 33, 34, 35, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 48, 49, 50, 51, 52, 53, 54, 55,
56, 57, 58, 59, 60, 61, 62, 63, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 64, 65, 66, 67, 68, 69, 70, 71,
72, 73, 74, 75, 76, 77, 78, 79, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 80, 81, 82, 83, 84, 85, 86, 87,
88, 89, 90, 91, 92, 93, 94, 95, 88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, 103, 96, 97, 98, 99, 100, 101, 102, 103,
104, 105, 106, 107, 108, 109, 110, 111, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 112, 113, 114, 115, 116, 117, 118, 119,
120, 121, 122, 123, 124, 125, 126, 127, 120, 121, 122, 123, 124, 125, 126, 127,
...@@ -283,7 +283,7 @@ static const uint8_t dv_vlc_level[409] = { ...@@ -283,7 +283,7 @@ static const uint8_t dv_vlc_level[409] = {
232, 233, 234, 235, 236, 237, 238, 239, 232, 233, 234, 235, 236, 237, 238, 239,
240, 241, 242, 243, 244, 245, 246, 247, 240, 241, 242, 243, 244, 245, 246, 247,
248, 249, 250, 251, 252, 253, 254, 255, 248, 249, 250, 251, 252, 253, 254, 255,
0, 0,
}; };
/* unquant tables (not used directly) */ /* unquant tables (not used directly) */
...@@ -312,8 +312,8 @@ static const uint8_t dv_quant_shifts[22][4] = { ...@@ -312,8 +312,8 @@ static const uint8_t dv_quant_shifts[22][4] = {
{ 0,0,0,0 }, { 0,0,0,0 },
}; };
static const uint8_t dv_quant_offset[4] = { 6, 3, 0, 1 }; static const uint8_t dv_quant_offset[4] = { 6, 3, 0, 1 };
static const uint8_t dv_quant_areas[4] = { 6, 21, 43, 64 }; static const uint8_t dv_quant_areas[4] = { 6, 21, 43, 64 };
/* quantization quanta by QNO for DV100 */ /* quantization quanta by QNO for DV100 */
static const uint8_t dv100_qstep[16] = { static const uint8_t dv100_qstep[16] = {
...@@ -6360,7 +6360,8 @@ enum dv_pack_type { ...@@ -6360,7 +6360,8 @@ enum dv_pack_type {
#define DV_PROFILE_IS_1080i50(p) (((p)->video_stype == 0x14) && ((p)->dsf == 1)) #define DV_PROFILE_IS_1080i50(p) (((p)->video_stype == 0x14) && ((p)->dsf == 1))
#define DV_PROFILE_IS_720p50(p) (((p)->video_stype == 0x18) && ((p)->dsf == 1)) #define DV_PROFILE_IS_720p50(p) (((p)->video_stype == 0x18) && ((p)->dsf == 1))
/* minimum number of bytes to read from a DV stream in order to determine the profile */ /* minimum number of bytes to read from a DV stream in order to
determine the profile */
#define DV_PROFILE_BYTES (6*80) /* 6 DIF blocks */ #define DV_PROFILE_BYTES (6*80) /* 6 DIF blocks */
/** /**
...@@ -6398,21 +6399,23 @@ static const DVprofile* dv_codec_profile(AVCodecContext* codec) ...@@ -6398,21 +6399,23 @@ static const DVprofile* dv_codec_profile(AVCodecContext* codec)
int i; int i;
for (i=0; i<FF_ARRAY_ELEMS(dv_profiles); i++) for (i=0; i<FF_ARRAY_ELEMS(dv_profiles); i++)
if (codec->height == dv_profiles[i].height && codec->pix_fmt == dv_profiles[i].pix_fmt && if (codec->height == dv_profiles[i].height &&
codec->width == dv_profiles[i].width) codec->pix_fmt == dv_profiles[i].pix_fmt &&
codec->width == dv_profiles[i].width)
return &dv_profiles[i]; return &dv_profiles[i];
return NULL; return NULL;
} }
static inline int dv_write_dif_id(enum dv_section_type t, uint8_t chan_num, uint8_t seq_num, static inline int dv_write_dif_id(enum dv_section_type t, uint8_t chan_num,
uint8_t dif_num, uint8_t* buf) uint8_t seq_num, uint8_t dif_num,
uint8_t* buf)
{ {
buf[0] = (uint8_t)t; /* Section type */ buf[0] = (uint8_t)t; /* Section type */
buf[1] = (seq_num<<4) | /* DIF seq number 0-9 for 525/60; 0-11 for 625/50 */ buf[1] = (seq_num << 4) | /* DIF seq number 0-9 for 525/60; 0-11 for 625/50 */
(chan_num << 3) | /* FSC: for 50Mb/s 0 - first channel; 1 - second */ (chan_num << 3) | /* FSC: for 50Mb/s 0 - first channel; 1 - second */
7; /* reserved -- always 1 */ 7; /* reserved -- always 1 */
buf[2] = dif_num; /* DIF block number Video: 0-134, Audio: 0-8 */ buf[2] = dif_num; /* DIF block number Video: 0-134, Audio: 0-8 */
return 3; return 3;
} }
...@@ -6420,18 +6423,18 @@ static inline int dv_write_dif_id(enum dv_section_type t, uint8_t chan_num, uint ...@@ -6420,18 +6423,18 @@ static inline int dv_write_dif_id(enum dv_section_type t, uint8_t chan_num, uint
static inline int dv_write_ssyb_id(uint8_t syb_num, uint8_t fr, uint8_t* buf) static inline int dv_write_ssyb_id(uint8_t syb_num, uint8_t fr, uint8_t* buf)
{ {
if (syb_num == 0 || syb_num == 6) { if (syb_num == 0 || syb_num == 6) {
buf[0] = (fr<<7) | /* FR ID 1 - first half of each channel; 0 - second */ buf[0] = (fr << 7) | /* FR ID 1 - first half of each channel; 0 - second */
(0<<4) | /* AP3 (Subcode application ID) */ (0 << 4) | /* AP3 (Subcode application ID) */
0x0f; /* reserved -- always 1 */ 0x0f; /* reserved -- always 1 */
} }
else if (syb_num == 11) { else if (syb_num == 11) {
buf[0] = (fr<<7) | /* FR ID 1 - first half of each channel; 0 - second */ buf[0] = (fr << 7) | /* FR ID 1 - first half of each channel; 0 - second */
0x7f; /* reserved -- always 1 */ 0x7f; /* reserved -- always 1 */
} }
else { else {
buf[0] = (fr<<7) | /* FR ID 1 - first half of each channel; 0 - second */ buf[0] = (fr << 7) | /* FR ID 1 - first half of each channel; 0 - second */
(0<<4) | /* APT (Track application ID) */ (0 << 4) | /* APT (Track application ID) */
0x0f; /* reserved -- always 1 */ 0x0f; /* reserved -- always 1 */
} }
buf[1] = 0xf0 | /* reserved -- always 1 */ buf[1] = 0xf0 | /* reserved -- always 1 */
(syb_num & 0x0f); /* SSYB number 0 - 11 */ (syb_num & 0x0f); /* SSYB number 0 - 11 */
......
This diff is collapsed.
...@@ -38,12 +38,12 @@ struct DVMuxContext { ...@@ -38,12 +38,12 @@ struct DVMuxContext {
const DVprofile* sys; /* current DV profile, e.g.: 525/60, 625/50 */ const DVprofile* sys; /* current DV profile, e.g.: 525/60, 625/50 */
int n_ast; /* number of stereo audio streams (up to 2) */ int n_ast; /* number of stereo audio streams (up to 2) */
AVStream *ast[2]; /* stereo audio streams */ AVStream *ast[2]; /* stereo audio streams */
AVFifoBuffer audio_data[2]; /* FIFO for storing excessive amounts of PCM */ AVFifoBuffer audio_data[2]; /* FIFO for storing excessive amounts of PCM */
int frames; /* current frame number */ int frames; /* current frame number */
time_t start_time; /* recording start time */ time_t start_time; /* recording start time */
int has_audio; /* frame under contruction has audio */ int has_audio; /* frame under contruction has audio */
int has_video; /* frame under contruction has video */ int has_video; /* frame under contruction has video */
uint8_t frame_buf[DV_MAX_FRAME_SIZE]; /* frame under contruction */ uint8_t frame_buf[DV_MAX_FRAME_SIZE]; /* frame under contruction */
}; };
static const int dv_aaux_packs_dist[12][9] = { static const int dv_aaux_packs_dist[12][9] = {
...@@ -63,7 +63,7 @@ static const int dv_aaux_packs_dist[12][9] = { ...@@ -63,7 +63,7 @@ static const int dv_aaux_packs_dist[12][9] = {
static int dv_audio_frame_size(const DVprofile* sys, int frame) static int dv_audio_frame_size(const DVprofile* sys, int frame)
{ {
return sys->audio_samples_dist[frame % (sizeof(sys->audio_samples_dist)/ return sys->audio_samples_dist[frame % (sizeof(sys->audio_samples_dist) /
sizeof(sys->audio_samples_dist[0]))]; sizeof(sys->audio_samples_dist[0]))];
} }
...@@ -77,14 +77,14 @@ static int dv_write_pack(enum dv_pack_type pack_id, DVMuxContext *c, uint8_t* bu ...@@ -77,14 +77,14 @@ static int dv_write_pack(enum dv_pack_type pack_id, DVMuxContext *c, uint8_t* bu
buf[0] = (uint8_t)pack_id; buf[0] = (uint8_t)pack_id;
switch (pack_id) { switch (pack_id) {
case dv_timecode: case dv_timecode:
ct = (time_t)av_rescale_rnd(c->frames, c->sys->time_base.num, c->sys->time_base.den, ct = (time_t)av_rescale_rnd(c->frames, c->sys->time_base.num,
AV_ROUND_DOWN); c->sys->time_base.den, AV_ROUND_DOWN);
brktimegm(ct, &tc); brktimegm(ct, &tc);
/* /*
* LTC drop-frame frame counter drops two frames (0 and 1) every * LTC drop-frame frame counter drops two frames (0 and 1) every
* minute, unless it is exactly divisible by 10 * minute, unless it is exactly divisible by 10
*/ */
ltc_frame = (c->frames + 2*ct/60 - 2*ct/600) % c->sys->ltc_divisor; ltc_frame = (c->frames + 2 * ct / 60 - 2 * ct / 600) % c->sys->ltc_divisor;
buf[1] = (0 << 7) | /* color frame: 0 - unsync; 1 - sync mode */ buf[1] = (0 << 7) | /* color frame: 0 - unsync; 1 - sync mode */
(1 << 6) | /* drop frame timecode: 0 - nondrop; 1 - drop */ (1 << 6) | /* drop frame timecode: 0 - nondrop; 1 - drop */
((ltc_frame / 10) << 4) | /* tens of frames */ ((ltc_frame / 10) << 4) | /* tens of frames */
...@@ -132,14 +132,14 @@ static int dv_write_pack(enum dv_pack_type pack_id, DVMuxContext *c, uint8_t* bu ...@@ -132,14 +132,14 @@ static int dv_write_pack(enum dv_pack_type pack_id, DVMuxContext *c, uint8_t* bu
7; 7;
buf[3] = (1 << 7) | /* direction: 1 -- forward */ buf[3] = (1 << 7) | /* direction: 1 -- forward */
(c->sys->pix_fmt == PIX_FMT_YUV420P ? 0x20 : /* speed */ (c->sys->pix_fmt == PIX_FMT_YUV420P ? 0x20 : /* speed */
c->sys->ltc_divisor*4); c->sys->ltc_divisor * 4);
buf[4] = (1 << 7) | /* reserved -- always 1 */ buf[4] = (1 << 7) | /* reserved -- always 1 */
0x7f; /* genre category */ 0x7f; /* genre category */
break; break;
case dv_audio_recdate: case dv_audio_recdate:
case dv_video_recdate: /* VAUX recording date */ case dv_video_recdate: /* VAUX recording date */
ct = c->start_time + av_rescale_rnd(c->frames, c->sys->time_base.num, ct = c->start_time + av_rescale_rnd(c->frames, c->sys->time_base.num,
c->sys->time_base.den, AV_ROUND_DOWN); c->sys->time_base.den, AV_ROUND_DOWN);
brktimegm(ct, &tc); brktimegm(ct, &tc);
buf[1] = 0xff; /* ds, tm, tens of time zone, units of time zone */ buf[1] = 0xff; /* ds, tm, tens of time zone, units of time zone */
/* 0xff is very likely to be "unknown" */ /* 0xff is very likely to be "unknown" */
...@@ -264,10 +264,10 @@ int dv_assemble_frame(DVMuxContext *c, AVStream* st, ...@@ -264,10 +264,10 @@ int dv_assemble_frame(DVMuxContext *c, AVStream* st,
} }
/* Let us see if we have enough data to construct one DV frame. */ /* Let us see if we have enough data to construct one DV frame. */
if (c->has_video == 1 && c->has_audio + 1 == 1<<c->n_ast) { if (c->has_video == 1 && c->has_audio + 1 == 1 << c->n_ast) {
dv_inject_metadata(c, *frame); dv_inject_metadata(c, *frame);
c->has_audio = 0; c->has_audio = 0;
for (i=0; i<c->n_ast; i++) { for (i=0; i < c->n_ast; i++) {
dv_inject_audio(c, i, *frame); dv_inject_audio(c, i, *frame);
av_fifo_drain(&c->audio_data[i], reqasize); av_fifo_drain(&c->audio_data[i], reqasize);
c->has_audio |= ((reqasize <= av_fifo_size(&c->audio_data[i])) << i); c->has_audio |= ((reqasize <= av_fifo_size(&c->audio_data[i])) << i);
...@@ -293,7 +293,7 @@ DVMuxContext* dv_init_mux(AVFormatContext* s) ...@@ -293,7 +293,7 @@ DVMuxContext* dv_init_mux(AVFormatContext* s)
if (s->nb_streams > 3) if (s->nb_streams > 3)
return NULL; return NULL;
c->n_ast = 0; c->n_ast = 0;
c->ast[0] = c->ast[1] = NULL; c->ast[0] = c->ast[1] = NULL;
/* We have to sort out where audio and where video stream is */ /* We have to sort out where audio and where video stream is */
...@@ -316,29 +316,29 @@ DVMuxContext* dv_init_mux(AVFormatContext* s) ...@@ -316,29 +316,29 @@ DVMuxContext* dv_init_mux(AVFormatContext* s)
if (!vst || vst->codec->codec_id != CODEC_ID_DVVIDEO) if (!vst || vst->codec->codec_id != CODEC_ID_DVVIDEO)
goto bail_out; goto bail_out;
for (i=0; i<c->n_ast; i++) { for (i=0; i<c->n_ast; i++) {
if (c->ast[i] && (c->ast[i]->codec->codec_id != CODEC_ID_PCM_S16LE || if (c->ast[i] && (c->ast[i]->codec->codec_id != CODEC_ID_PCM_S16LE ||
c->ast[i]->codec->sample_rate != 48000 || c->ast[i]->codec->sample_rate != 48000 ||
c->ast[i]->codec->channels != 2)) c->ast[i]->codec->channels != 2))
goto bail_out; goto bail_out;
} }
c->sys = dv_codec_profile(vst->codec); c->sys = dv_codec_profile(vst->codec);
if (!c->sys) if (!c->sys)
goto bail_out; goto bail_out;
if((c->n_ast > 1) && (c->sys->n_difchan < 2)) { if ((c->n_ast > 1) && (c->sys->n_difchan < 2)) {
/* only 1 stereo pair is allowed in 25Mbps mode */ /* only 1 stereo pair is allowed in 25Mbps mode */
goto bail_out; goto bail_out;
} }
/* Ok, everything seems to be in working order */ /* Ok, everything seems to be in working order */
c->frames = 0; c->frames = 0;
c->has_audio = 0; c->has_audio = 0;
c->has_video = 0; c->has_video = 0;
c->start_time = (time_t)s->timestamp; c->start_time = (time_t)s->timestamp;
for (i=0; i<c->n_ast; i++) { for (i=0; i < c->n_ast; i++) {
if (c->ast[i] && av_fifo_init(&c->audio_data[i], 100*AVCODEC_MAX_AUDIO_FRAME_SIZE) < 0) { if (c->ast[i] && av_fifo_init(&c->audio_data[i], 100*AVCODEC_MAX_AUDIO_FRAME_SIZE) < 0) {
while (i>0) { while (i > 0) {
i--; i--;
av_fifo_free(&c->audio_data[i]); av_fifo_free(&c->audio_data[i]);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment