~ubuntu-branches/ubuntu/trusty/libav/trusty

« back to all changes in this revision

Viewing changes to libavcodec/ac3dec.h

  • Committer: Bazaar Package Importer
  • Author(s): Reinhard Tartler
  • Date: 2011-04-19 15:04:55 UTC
  • mfrom: (1.2.1 upstream)
  • mto: (1.3.4 sid)
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20110419150455-c1nac6gjm3t2aa4n
Tags: 4:0.7~b1-1
* New upstream version
* bump SONAME and SHLIBS
* configure flags --disable-stripping was removed upstream
* the MAINTAINERS file was removed upstream
* remove patch disable-configuration-warning.patch
* drop avfilter confflags, it is enable by default in 0.7
* libfaad wrapper has been removed upstream
* also update the *contents* of the lintian overrides

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
 * Common code between the AC-3 and E-AC-3 decoders
3
3
 * Copyright (c) 2007 Bartlomiej Wolowiec <bartek.wolowiec@gmail.com>
4
4
 *
5
 
 * This file is part of FFmpeg.
 
5
 * This file is part of Libav.
6
6
 *
7
 
 * FFmpeg is free software; you can redistribute it and/or
 
7
 * Libav is free software; you can redistribute it and/or
8
8
 * modify it under the terms of the GNU Lesser General Public
9
9
 * License as published by the Free Software Foundation; either
10
10
 * version 2.1 of the License, or (at your option) any later version.
11
11
 *
12
 
 * FFmpeg is distributed in the hope that it will be useful,
 
12
 * Libav is distributed in the hope that it will be useful,
13
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15
15
 * Lesser General Public License for more details.
16
16
 *
17
17
 * You should have received a copy of the GNU Lesser General Public
18
 
 * License along with FFmpeg; if not, write to the Free Software
 
18
 * License along with Libav; if not, write to the Free Software
19
19
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
20
 */
21
21
 
52
52
 
53
53
#include "libavutil/lfg.h"
54
54
#include "ac3.h"
 
55
#include "ac3dsp.h"
55
56
#include "get_bits.h"
56
57
#include "dsputil.h"
57
58
#include "fft.h"
 
59
#include "fmtconvert.h"
58
60
 
59
61
/* override ac3.h to include coupling channel */
60
62
#undef AC3_MAX_CHANNELS
63
65
 
64
66
#define AC3_OUTPUT_LFEON  8
65
67
 
66
 
#define AC3_MAX_COEFS   256
67
 
#define AC3_BLOCK_SIZE  256
68
 
#define MAX_BLOCKS        6
69
68
#define SPX_MAX_BANDS    17
70
69
 
71
70
typedef struct {
81
80
    int bit_rate;                           ///< stream bit rate, in bits-per-second
82
81
    int sample_rate;                        ///< sample frequency, in Hz
83
82
    int num_blocks;                         ///< number of audio blocks
 
83
    int bitstream_mode;                     ///< bitstream mode                         (bsmod)
84
84
    int channel_mode;                       ///< channel mode                           (acmod)
85
85
    int channel_layout;                     ///< channel layout
86
86
    int lfe_on;                             ///< lfe channel in use
101
101
 ///@}
102
102
 
103
103
///@defgroup cpl standard coupling
104
 
    int cpl_in_use[MAX_BLOCKS];             ///< coupling in use                        (cplinu)
105
 
    int cpl_strategy_exists[MAX_BLOCKS];    ///< coupling strategy exists               (cplstre)
 
104
    int cpl_in_use[AC3_MAX_BLOCKS];         ///< coupling in use                        (cplinu)
 
105
    int cpl_strategy_exists[AC3_MAX_BLOCKS];///< coupling strategy exists               (cplstre)
106
106
    int channel_in_cpl[AC3_MAX_CHANNELS];   ///< channel in coupling                    (chincpl)
107
107
    int phase_flags_in_use;                 ///< phase flags in use                     (phsflginu)
108
 
    int phase_flags[18];                    ///< phase flags                            (phsflg)
 
108
    int phase_flags[AC3_MAX_CPL_BANDS];     ///< phase flags                            (phsflg)
109
109
    int num_cpl_bands;                      ///< number of coupling bands               (ncplbnd)
110
 
    uint8_t cpl_band_sizes[18];             ///< number of coeffs in each coupling band
 
110
    uint8_t cpl_band_sizes[AC3_MAX_CPL_BANDS]; ///< number of coeffs in each coupling band
111
111
    int firstchincpl;                       ///< first channel in coupling
112
112
    int first_cpl_coords[AC3_MAX_CHANNELS]; ///< first coupling coordinates states      (firstcplcos)
113
 
    int cpl_coords[AC3_MAX_CHANNELS][18];   ///< coupling coordinates                   (cplco)
 
113
    int cpl_coords[AC3_MAX_CHANNELS][AC3_MAX_CPL_BANDS]; ///< coupling coordinates      (cplco)
114
114
///@}
115
115
 
116
116
///@defgroup spx spectral extension
131
131
 
132
132
///@defgroup aht adaptive hybrid transform
133
133
    int channel_uses_aht[AC3_MAX_CHANNELS];                         ///< channel AHT in use (chahtinu)
134
 
    int pre_mantissa[AC3_MAX_CHANNELS][AC3_MAX_COEFS][MAX_BLOCKS];  ///< pre-IDCT mantissas
 
134
    int pre_mantissa[AC3_MAX_CHANNELS][AC3_MAX_COEFS][AC3_MAX_BLOCKS];  ///< pre-IDCT mantissas
135
135
///@}
136
136
 
137
137
///@defgroup channel channel
161
161
///@defgroup exponents exponents
162
162
    int num_exp_groups[AC3_MAX_CHANNELS];           ///< Number of exponent groups      (nexpgrp)
163
163
    int8_t dexps[AC3_MAX_CHANNELS][AC3_MAX_COEFS];  ///< decoded exponents
164
 
    int exp_strategy[MAX_BLOCKS][AC3_MAX_CHANNELS]; ///< exponent strategies            (expstr)
 
164
    int exp_strategy[AC3_MAX_BLOCKS][AC3_MAX_CHANNELS]; ///< exponent strategies        (expstr)
165
165
///@}
166
166
 
167
167
///@defgroup bitalloc bit allocation
171
171
    int fast_gain[AC3_MAX_CHANNELS];                ///< fast gain values/SMR's         (fgain)
172
172
    uint8_t bap[AC3_MAX_CHANNELS][AC3_MAX_COEFS];   ///< bit allocation pointers
173
173
    int16_t psd[AC3_MAX_CHANNELS][AC3_MAX_COEFS];   ///< scaled exponents
174
 
    int16_t band_psd[AC3_MAX_CHANNELS][50];         ///< interpolated exponents
175
 
    int16_t mask[AC3_MAX_CHANNELS][50];             ///< masking curve values
 
174
    int16_t band_psd[AC3_MAX_CHANNELS][AC3_CRITICAL_BANDS]; ///< interpolated exponents
 
175
    int16_t mask[AC3_MAX_CHANNELS][AC3_CRITICAL_BANDS];     ///< masking curve values
176
176
    int dba_mode[AC3_MAX_CHANNELS];                 ///< delta bit allocation mode
177
177
    int dba_nsegs[AC3_MAX_CHANNELS];                ///< number of delta segments
178
178
    uint8_t dba_offsets[AC3_MAX_CHANNELS][8];       ///< delta segment offsets
193
193
 
194
194
///@defgroup opt optimization
195
195
    DSPContext dsp;                         ///< for optimization
196
 
    float add_bias;                         ///< offset for float_to_int16 conversion
 
196
    AC3DSPContext ac3dsp;
 
197
    FmtConvertContext fmt_conv;             ///< optimized conversion functions
197
198
    float mul_bias;                         ///< scaling for float_to_int16 conversion
198
199
///@}
199
200