mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-24 12:09:55 +00:00
mpegaudio: move some struct definitions from mpegaudio.h
These structs are only used in mpegaudiodec.c, so move them there and remove no longer needed #include lines from mpegaudio.h. Signed-off-by: Mans Rullgard <mans@mansr.com>
This commit is contained in:
parent
c4f5c2d6f4
commit
918d0584a4
@ -31,8 +31,6 @@
|
||||
#endif
|
||||
|
||||
#include "avcodec.h"
|
||||
#include "get_bits.h"
|
||||
#include "dsputil.h"
|
||||
|
||||
/* max frame size, in samples */
|
||||
#define MPA_FRAME_SIZE 1152
|
||||
@ -81,29 +79,6 @@ typedef int16_t MPA_INT;
|
||||
typedef int32_t MPA_INT;
|
||||
#endif
|
||||
|
||||
#define BACKSTEP_SIZE 512
|
||||
#define EXTRABYTES 24
|
||||
|
||||
/* layer 3 "granule" */
|
||||
typedef struct GranuleDef {
|
||||
uint8_t scfsi;
|
||||
int part2_3_length;
|
||||
int big_values;
|
||||
int global_gain;
|
||||
int scalefac_compress;
|
||||
uint8_t block_type;
|
||||
uint8_t switch_point;
|
||||
int table_select[3];
|
||||
int subblock_gain[3];
|
||||
uint8_t scalefac_scale;
|
||||
uint8_t count1table_select;
|
||||
int region_size[3]; /* number of huffman codes in each region */
|
||||
int preflag;
|
||||
int short_start, long_end; /* long/short band indexes */
|
||||
uint8_t scale_factors[40];
|
||||
INTFLOAT sb_hybrid[SBLIMIT * 18]; /* 576 samples */
|
||||
} GranuleDef;
|
||||
|
||||
#define MPA_DECODE_HEADER \
|
||||
int frame_size; \
|
||||
int error_protection; \
|
||||
@ -120,36 +95,6 @@ typedef struct MPADecodeHeader {
|
||||
MPA_DECODE_HEADER
|
||||
} MPADecodeHeader;
|
||||
|
||||
typedef struct MPADecodeContext {
|
||||
MPA_DECODE_HEADER
|
||||
uint8_t last_buf[2*BACKSTEP_SIZE + EXTRABYTES];
|
||||
int last_buf_size;
|
||||
/* next header (used in free format parsing) */
|
||||
uint32_t free_format_next_header;
|
||||
GetBitContext gb;
|
||||
GetBitContext in_gb;
|
||||
DECLARE_ALIGNED(16, MPA_INT, synth_buf)[MPA_MAX_CHANNELS][512 * 2];
|
||||
int synth_buf_offset[MPA_MAX_CHANNELS];
|
||||
DECLARE_ALIGNED(16, INTFLOAT, sb_samples)[MPA_MAX_CHANNELS][36][SBLIMIT];
|
||||
INTFLOAT mdct_buf[MPA_MAX_CHANNELS][SBLIMIT * 18]; /* previous samples, for layer 3 MDCT */
|
||||
GranuleDef granules[2][2]; /* Used in Layer 3 */
|
||||
#ifdef DEBUG
|
||||
int frame_count;
|
||||
#endif
|
||||
int adu_mode; ///< 0 for standard mp3, 1 for adu formatted mp3
|
||||
int dither_state;
|
||||
int error_recognition;
|
||||
AVCodecContext* avctx;
|
||||
MPADSPContext mpadsp;
|
||||
} MPADecodeContext;
|
||||
|
||||
/* layer 3 huffman tables */
|
||||
typedef struct HuffTable {
|
||||
int xsize;
|
||||
const uint8_t *bits;
|
||||
const uint16_t *codes;
|
||||
} HuffTable;
|
||||
|
||||
int ff_mpa_l2_select_table(int bitrate, int nb_channels, int freq, int lsf);
|
||||
int ff_mpa_decode_header(AVCodecContext *avctx, uint32_t head, int *sample_rate, int *channels, int *frame_size, int *bitrate);
|
||||
|
||||
|
@ -39,6 +39,52 @@
|
||||
#include "mpegaudio.h"
|
||||
#include "mpegaudiodecheader.h"
|
||||
|
||||
#define BACKSTEP_SIZE 512
|
||||
#define EXTRABYTES 24
|
||||
|
||||
/* layer 3 "granule" */
|
||||
typedef struct GranuleDef {
|
||||
uint8_t scfsi;
|
||||
int part2_3_length;
|
||||
int big_values;
|
||||
int global_gain;
|
||||
int scalefac_compress;
|
||||
uint8_t block_type;
|
||||
uint8_t switch_point;
|
||||
int table_select[3];
|
||||
int subblock_gain[3];
|
||||
uint8_t scalefac_scale;
|
||||
uint8_t count1table_select;
|
||||
int region_size[3]; /* number of huffman codes in each region */
|
||||
int preflag;
|
||||
int short_start, long_end; /* long/short band indexes */
|
||||
uint8_t scale_factors[40];
|
||||
INTFLOAT sb_hybrid[SBLIMIT * 18]; /* 576 samples */
|
||||
} GranuleDef;
|
||||
|
||||
typedef struct MPADecodeContext {
|
||||
MPA_DECODE_HEADER
|
||||
uint8_t last_buf[2*BACKSTEP_SIZE + EXTRABYTES];
|
||||
int last_buf_size;
|
||||
/* next header (used in free format parsing) */
|
||||
uint32_t free_format_next_header;
|
||||
GetBitContext gb;
|
||||
GetBitContext in_gb;
|
||||
DECLARE_ALIGNED(16, MPA_INT, synth_buf)[MPA_MAX_CHANNELS][512 * 2];
|
||||
int synth_buf_offset[MPA_MAX_CHANNELS];
|
||||
DECLARE_ALIGNED(16, INTFLOAT, sb_samples)[MPA_MAX_CHANNELS][36][SBLIMIT];
|
||||
INTFLOAT mdct_buf[MPA_MAX_CHANNELS][SBLIMIT * 18]; /* previous samples, for layer 3 MDCT */
|
||||
GranuleDef granules[2][2]; /* Used in Layer 3 */
|
||||
#ifdef DEBUG
|
||||
int frame_count;
|
||||
#endif
|
||||
int adu_mode; ///< 0 for standard mp3, 1 for adu formatted mp3
|
||||
int dither_state;
|
||||
int error_recognition;
|
||||
AVCodecContext* avctx;
|
||||
MPADSPContext mpadsp;
|
||||
} MPADecodeContext;
|
||||
|
||||
#if CONFIG_FLOAT
|
||||
# define SHR(a,b) ((a)*(1.0f/(1<<(b))))
|
||||
# define FIXR_OLD(a) ((int)((a) * FRAC_ONE + 0.5))
|
||||
|
@ -33,6 +33,13 @@
|
||||
/*******************************************************/
|
||||
/* layer 3 tables */
|
||||
|
||||
/* layer 3 huffman tables */
|
||||
typedef struct HuffTable {
|
||||
int xsize;
|
||||
const uint8_t *bits;
|
||||
const uint16_t *codes;
|
||||
} HuffTable;
|
||||
|
||||
/* layer3 scale factor size */
|
||||
static const uint8_t slen_table[2][16] = {
|
||||
{ 0, 0, 0, 0, 3, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4 },
|
||||
|
Loading…
Reference in New Issue
Block a user