typedef struct {
int acmod;
int dsurmod;
-
int blksw[AC3_MAX_CHANNELS];
int dithflag[AC3_MAX_CHANNELS];
int dither_all;
AVCodecContext *avctx; ///< parent context
} AC3DecodeContext;
-/*********** BEGIN INIT HELPER FUNCTIONS ***********/
/**
* Generate a Kaiser-Bessel Derived Window.
*/
return 0;
}
-/*********** END INIT FUNCTIONS ***********/
/**
* Parses the 'sync info' and 'bit stream info' from the AC-3 bitstream.
start = ctx->startmant[ch_index];
end = ctx->endmant[ch_index];
-
for (i = start; i < end; i++) {
tbap = bap[i];
switch (tbap) {
}
bit_alloc_stages[ch] = FFMAX(bit_alloc_stages[ch], 2);
}
-
for (ch = !ctx->cplinu; ch <= nfchans; ch++) {
if (ctx->deltbae[ch] == DBA_NEW) {/*channel delta offset, len and bit allocation */
ctx->deltnseg[ch] = get_bits(gb, 3);
while(skipl--)
skip_bits(gb, 8);
}
+
/* unpack the transform coefficients
* * this also uncouples channels if coupling is in use.
*/
}
ctx->out_channels = avctx->channels;
- //av_log(avctx, AV_LOG_INFO, "channels = %d \t bit rate = %d \t sampling rate = %d \n", avctx->channels, avctx->bit_rate * 1000, avctx->sample_rate);
-
//Parse the Audio Blocks.
for (blk = 0; blk < NB_BLOCKS; blk++) {
if (ac3_parse_audio_block(ctx, blk)) {
.close = ac3_decode_end,
.decode = ac3_decode_frame,
};
-