[FFmpeg-soc] [soc]: r1710 - in eac3: ac3dec.c ac3dec.h eac3dec.c
jbr
subversion at mplayerhq.hu
Sun Dec 30 19:01:23 CET 2007
Author: jbr
Date: Sun Dec 30 19:01:23 2007
New Revision: 1710
Log:
change ff_ac3_get_transform_coeffs_ch() back to taking an AC3DecodeContext as
an input parameter
Modified:
eac3/ac3dec.c
eac3/ac3dec.h
eac3/eac3dec.c
Modified: eac3/ac3dec.c
==============================================================================
--- eac3/ac3dec.c (original)
+++ eac3/ac3dec.c Sun Dec 30 19:01:23 2007
@@ -394,17 +394,25 @@ void ff_ac3_uncouple_channels(int fbw_ch
* Get the transform coefficients for a particular channel
* reference: Section 7.3 Quantization and Decoding of Mantissas
*/
-int ff_ac3_get_transform_coeffs_ch(mant_groups *m, GetBitContext *gbc, uint8_t *exps,
- uint8_t *bap, float *coeffs, int start,
- int end, AVRandomState *dith_state)
+int ff_ac3_get_transform_coeffs_ch(AC3DecodeContext *ctx, int ch_index, mant_groups *m)
{
- int i, gcode, tbap;
+ GetBitContext *gbc = &ctx->gbc;
+ int i, gcode, tbap, start, end;
+ uint8_t *exps;
+ uint8_t *bap;
+ float *coeffs;
+
+ exps = ctx->dexps[ch_index];
+ bap = ctx->bap[ch_index];
+ coeffs = ctx->transform_coeffs[ch_index];
+ start = ctx->start_freq[ch_index];
+ end = ctx->end_freq[ch_index];
for (i = start; i < end; i++) {
tbap = bap[i];
switch (tbap) {
case 0:
- coeffs[i] = ((av_random(dith_state) & 0xFFFF) / 65535.0f) - 0.5f;
+ coeffs[i] = ((av_random(&ctx->dith_state) & 0xFFFF) / 65535.0f) - 0.5f;
break;
case 1:
@@ -504,20 +512,13 @@ static int get_transform_coeffs(AC3Decod
for (ch = 1; ch <= ctx->channels; ch++) {
/* transform coefficients for full-bandwidth channel */
- //if (get_transform_coeffs_ch(ctx, ch, &m))
- if(ff_ac3_get_transform_coeffs_ch(&m, &ctx->gbc, ctx->dexps[ch],
- ctx->bap[ch], ctx->transform_coeffs[ch], ctx->start_freq[ch],
- ctx->end_freq[ch], &ctx->dith_state))
+ if(ff_ac3_get_transform_coeffs_ch(ctx, ch, &m))
return -1;
/* tranform coefficients for coupling channel come right after the
coefficients for the first coupled channel*/
if (ctx->channel_in_cpl[ch]) {
if (!got_cplchan) {
- if (ff_ac3_get_transform_coeffs_ch(&m, &ctx->gbc,
- ctx->dexps[CPL_CH], ctx->bap[CPL_CH],
- ctx->transform_coeffs[CPL_CH],
- ctx->start_freq[CPL_CH], ctx->end_freq[CPL_CH],
- &ctx->dith_state)) {
+ if (ff_ac3_get_transform_coeffs_ch(ctx, CPL_CH, &m)) {
av_log(ctx->avctx, AV_LOG_ERROR, "error in decoupling channels\n");
return -1;
}
Modified: eac3/ac3dec.h
==============================================================================
--- eac3/ac3dec.h (original)
+++ eac3/ac3dec.h Sun Dec 30 19:01:23 2007
@@ -244,8 +244,7 @@ typedef struct {
int b4ptr;
} mant_groups;
-int ff_ac3_get_transform_coeffs_ch(mant_groups *m, GetBitContext *gb, uint8_t *exps,
- uint8_t *bap, float *coeffs, int start, int end, AVRandomState *dith_state);
+int ff_ac3_get_transform_coeffs_ch(AC3DecodeContext *s, int ch, mant_groups *m);
void ff_ac3_uncouple_channels(int fbw_channels, int cpl_start_freq,
int num_cpl_bands, int channel_in_cpl[AC3_MAX_CHANNELS],
Modified: eac3/eac3dec.c
==============================================================================
--- eac3/eac3dec.c (original)
+++ eac3/eac3dec.c Sun Dec 30 19:01:23 2007
@@ -277,9 +277,7 @@ static void idct_transform_coeffs_ch(AC3
static void get_eac3_transform_coeffs_ch(AC3DecodeContext *s, int blk,
int ch, mant_groups *m){
if (!s->channel_uses_aht[ch]) {
- ff_ac3_get_transform_coeffs_ch(m, &s->gbc, s->dexps[ch], s->bap[ch],
- s->transform_coeffs[ch], s->start_freq[ch], s->end_freq[ch],
- &s->dith_state);
+ ff_ac3_get_transform_coeffs_ch(s, ch, m);
} else if (s->channel_uses_aht[ch] == 1) {
get_transform_coeffs_aht_ch(s, ch);
s->channel_uses_aht[ch] = -1; /* AHT info for this frame has been read - do not read again */
More information about the FFmpeg-soc
mailing list