view ac3enc.h @ 318:21697f35a9ca libavcodec

- Fixed AC3 decoding for 5:1 AC3 streams. Now when calling av_audio_decode for AC3 set avcodec_context->channels to the desired number channels, if the setting is 0 AC3 decoder will set it to the channels found in the stream. - Changed ffmpeg to cope with the new "way" of AC3 decoding. - ASF muxer now uses Tickers for PTS calculations.
author pulento
date Tue, 09 Apr 2002 04:52:49 +0000
parents 289eb941b8ba
children
line wrap: on
line source


#define AC3_FRAME_SIZE (6*256)
#define AC3_MAX_CODED_FRAME_SIZE 3840 /* in bytes */
#define AC3_MAX_CHANNELS 6

typedef struct AC3EncodeContext {
    PutBitContext pb;
    int nb_channels;
    int nb_all_channels;
    int lfe_channel;
    int bit_rate;
    int sample_rate;
    int bsid;
    int frame_size_min; /* minimum frame size in case rounding is necessary */
    int frame_size; /* current frame size in words */
    int halfratecod;
    int frmsizecod;
    int fscod; /* frequency */
    int acmod;
    int lfe;
    int bsmod;
    short last_samples[AC3_MAX_CHANNELS][256];
    int chbwcod[AC3_MAX_CHANNELS];
    int nb_coefs[AC3_MAX_CHANNELS];
    
    /* bitrate allocation control */
    int sgaincod, sdecaycod, fdecaycod, dbkneecod, floorcod; 
    int sgain, sdecay, fdecay, dbknee, floor;
    int csnroffst;
    int fgaincod[AC3_MAX_CHANNELS];
    int fsnroffst[AC3_MAX_CHANNELS];
    /* mantissa encoding */
    int mant1_cnt, mant2_cnt, mant4_cnt;
} AC3EncodeContext;