[FFmpeg-soc] [soc]: r676 - in eac3/ac3: ac3.h ac3dec.h

bwolowiec subversion at mplayerhq.hu
Fri Aug 10 22:48:36 CEST 2007


Author: bwolowiec
Date: Fri Aug 10 22:48:36 2007
New Revision: 676

Log:
seperate ac3.h and ac3dec.h


Added:
   eac3/ac3/ac3dec.h
      - copied, changed from r675, /eac3/ac3/ac3.h
Modified:
   eac3/ac3/ac3.h

Modified: eac3/ac3/ac3.h
==============================================================================
--- eac3/ac3/ac3.h	(original)
+++ eac3/ac3/ac3.h	Fri Aug 10 22:48:36 2007
@@ -175,53 +175,4 @@ void ac3_parametric_bit_allocation(AC3Bi
                                    int snroffset, int fgain, int is_lfe,
                                    int deltbae,int deltnseg,
                                    uint8_t *deltoffst, uint8_t *deltlen, uint8_t *deltba);
-
-void ff_ac3_window_init(float *window);
-void ff_ac3_tables_init(void);
-
-/** tables for ungrouping mantissas */
-extern float ff_ac3_b1_mantissas[32][3];
-extern float ff_ac3_b2_mantissas[128][3];
-extern float ff_ac3_b3_mantissas[8];
-extern float ff_ac3_b4_mantissas[128][2];
-extern float ff_ac3_b5_mantissas[16];
-
-/** dynamic range table. converts codes to scale factors. */
-extern float ff_ac3_dynrng_tbl[256];
-
-/** dialogue normalization table */
-extern float ff_ac3_dialnorm_tbl[32];
-
-/**
- * table for exponent to scale_factor mapping
- * ff_ac3_scale_factors[i] = 2 ^ -i
- */
-extern float ff_ac3_scale_factors[25];
-
-/** table for grouping exponents */
-extern uint8_t ff_ac3_exp_ungroup_tbl[128][3];
-
-/**
- * Decode the grouped exponents according to exponent strategy.
- * reference: Section 7.1.3 Exponent Decoding
- */
-void ff_ac3_decode_exponents(GetBitContext *gb, int expstr, int ngrps,
-                             uint8_t absexp, int8_t *dexps);
-
-/**
- * Grouped mantissas for 3-level 5-level and 11-level quantization
- */
-typedef struct {
-    float b1_mant[3];
-    float b2_mant[3];
-    float b4_mant[2];
-    int b1ptr;
-    int b2ptr;
-    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);
-
-
 #endif /* AC3_H */

Copied: eac3/ac3/ac3dec.h (from r675, /eac3/ac3/ac3.h)
==============================================================================
--- /eac3/ac3/ac3.h	(original)
+++ eac3/ac3/ac3dec.h	Fri Aug 10 22:48:36 2007
@@ -24,158 +24,13 @@
  * Common code between AC3 encoder and decoder.
  */
 
-#ifndef AC3_H
-#define AC3_H
+#ifndef AC3DEC_H
+#define AC3DEC_H
 
 #include "ac3tab.h"
 #include "bitstream.h"
 #include "random.h"
 
-#define CPL_CH 0
-
-#define AC3_MAX_CODED_FRAME_SIZE 3840 /* in bytes */
-#define AC3_MAX_CHANNELS 6 /* including LFE channel */
-
-#define NB_BLOCKS 6 /* number of PCM blocks inside an AC3 frame */
-#define AC3_FRAME_SIZE (NB_BLOCKS * 256)
-
-/* exponent encoding strategy */
-#define EXP_REUSE 0
-#define EXP_NEW   1
-
-#define EXP_D15   1
-#define EXP_D25   2
-#define EXP_D45   3
-
-/** Delta bit allocation strategy */
-typedef enum {
-    DBA_REUSE = 0,
-    DBA_NEW,
-    DBA_NONE,
-    DBA_RESERVED
-} AC3DeltaStrategy;
-
-/** Channel mode (audio coding mode) */
-typedef enum {
-    AC3_ACMOD_DUALMONO = 0,
-    AC3_ACMOD_MONO,
-    AC3_ACMOD_STEREO,
-    AC3_ACMOD_3F,
-    AC3_ACMOD_2F1R,
-    AC3_ACMOD_3F1R,
-    AC3_ACMOD_2F2R,
-    AC3_ACMOD_3F2R
-} AC3ChannelMode;
-
-typedef struct AC3BitAllocParameters {
-    int fscod; /* frequency */
-    int halfratecod;
-    int sgain, sdecay, fdecay, dbknee, floor;
-    int cplfleak, cplsleak;
-} AC3BitAllocParameters;
-
-/**
- * @struct AC3HeaderInfo
- * Coded AC-3 header values up to the lfeon element, plus derived values.
- */
-typedef struct {
-    /** @defgroup coded Coded elements
-     * @{
-     */
-    uint16_t sync_word;
-    uint16_t crc1;
-    uint8_t fscod;
-    uint8_t frmsizecod;
-    uint8_t bsid;
-    uint8_t bsmod;
-    uint8_t acmod;
-    uint8_t cmixlev;
-    uint8_t surmixlev;
-    uint8_t dsurmod;
-    uint8_t lfeon;
-    /** @} */
-
-    /** @defgroup derived Derived values
-     * @{
-     */
-    uint8_t halfratecod;
-    uint16_t sample_rate;
-    uint32_t bit_rate;
-    uint8_t channels;
-    uint16_t frame_size;
-    /** @} */
-} AC3HeaderInfo;
-
-
-void ac3_common_init(void);
-
-/**
- * Calculates the log power-spectral density of the input signal.
- * This gives a rough estimate of signal power in the frequency domain by using
- * the spectral envelope (exponents).  The psd is also separately grouped
- * into critical bands for use in the calculating the masking curve.
- * 128 units in psd = -6 dB.  The dbknee parameter in AC3BitAllocParameters
- * determines the reference level.
- *
- * @param[in]  exp        frequency coefficient exponents
- * @param[in]  start      starting bin location
- * @param[in]  end        ending bin location
- * @param[out] psd        signal power for each frequency bin
- * @param[out] bndpsd     signal power for each critical band
- */
-void ff_ac3_bit_alloc_calc_psd(int8_t *exp, int start, int end, int16_t *psd,
-                               int16_t *bndpsd);
-
-/**
- * Calculates the masking curve.
- * First, the excitation is calculated using parameters in \p s and the signal
- * power in each critical band.  The excitation is compared with a predefined
- * hearing threshold table to produce the masking curve.  If delta bit
- * allocation information is provided, it is used for adjusting the masking
- * curve, usually to give a closer match to a better psychoacoustic model.
- *
- * @param[in]  s          adjustable bit allocation parameters
- * @param[in]  bndpsd     signal power for each critical band
- * @param[in]  start      starting bin location
- * @param[in]  end        ending bin location
- * @param[in]  fgain      fast gain (estimated signal-to-mask ratio)
- * @param[in]  is_lfe     whether or not the channel being processed is the LFE
- * @param[in]  deltbae    delta bit allocation exists (none, reuse, or new)
- * @param[in]  deltnseg   number of delta segments
- * @param[in]  deltoffst  location offsets for each segment
- * @param[in]  deltlen    length of each segment
- * @param[in]  deltba     delta bit allocation for each segment
- * @param[out] mask       calculated masking curve
- */
-void ff_ac3_bit_alloc_calc_mask(AC3BitAllocParameters *s, int16_t *bndpsd,
-                                int start, int end, int fgain, int is_lfe,
-                                int deltbae, int deltnseg, uint8_t *deltoffst,
-                                uint8_t *deltlen, uint8_t *deltba,
-                                int16_t *mask);
-
-/**
- * Calculates bit allocation pointers.
- * The SNR is the difference between the masking curve and the signal.  AC-3
- * uses this value for each frequency bin to allocate bits.  The \p snroffset
- * parameter is a global adjustment to the SNR for all bins.
- *
- * @param[in]  mask       masking curve
- * @param[in]  psd        signal power for each frequency bin
- * @param[in]  start      starting bin location
- * @param[in]  end        ending bin location
- * @param[in]  snroffset  SNR adjustment
- * @param[in]  floor      noise floor
- * @param[out] bap        bit allocation pointers
- */
-void ff_ac3_bit_alloc_calc_bap(int16_t *mask, int16_t *psd, int start, int end,
-                               int snroffset, int floor, uint8_t *bap);
-
-void ac3_parametric_bit_allocation(AC3BitAllocParameters *s, uint8_t *bap,
-                                   int8_t *exp, int start, int end,
-                                   int snroffset, int fgain, int is_lfe,
-                                   int deltbae,int deltnseg,
-                                   uint8_t *deltoffst, uint8_t *deltlen, uint8_t *deltba);
-
 void ff_ac3_window_init(float *window);
 void ff_ac3_tables_init(void);
 
@@ -224,4 +79,4 @@ int ff_ac3_get_transform_coeffs_ch(mant_
         uint8_t *bap, float *coeffs, int start, int end, AVRandomState *dith_state);
 
 
-#endif /* AC3_H */
+#endif /* AC3DEC_H */



More information about the FFmpeg-soc mailing list