Originally committed as revision 14952 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.5
| @@ -27,7 +27,7 @@ OBJS-$(CONFIG_ENCODERS) += faandct.o jfdctfst.o jfdctint.o | |||||
| OBJS-$(CONFIG_AAC_DECODER) += aac.o aactab.o mdct.o fft.o | OBJS-$(CONFIG_AAC_DECODER) += aac.o aactab.o mdct.o fft.o | ||||
| OBJS-$(CONFIG_AASC_DECODER) += aasc.o | OBJS-$(CONFIG_AASC_DECODER) += aasc.o | ||||
| OBJS-$(CONFIG_AC3_DECODER) += ac3dec.o ac3tab.o ac3dec_data.o ac3.o mdct.o fft.o | |||||
| OBJS-$(CONFIG_AC3_DECODER) += eac3dec.o ac3dec.o ac3tab.o ac3dec_data.o ac3.o mdct.o fft.o | |||||
| OBJS-$(CONFIG_AC3_ENCODER) += ac3enc.o ac3tab.o ac3.o | OBJS-$(CONFIG_AC3_ENCODER) += ac3enc.o ac3tab.o ac3.o | ||||
| OBJS-$(CONFIG_ALAC_DECODER) += alac.o | OBJS-$(CONFIG_ALAC_DECODER) += alac.o | ||||
| OBJS-$(CONFIG_ALAC_ENCODER) += alacenc.o lpc.o | OBJS-$(CONFIG_ALAC_ENCODER) += alacenc.o lpc.o | ||||
| @@ -82,7 +82,7 @@ typedef struct { | |||||
| int phase_flags[18]; ///< phase flags (phsflg) | int phase_flags[18]; ///< phase flags (phsflg) | ||||
| int num_cpl_subbands; ///< number of coupling sub bands (ncplsubnd) | int num_cpl_subbands; ///< number of coupling sub bands (ncplsubnd) | ||||
| int num_cpl_bands; ///< number of coupling bands (ncplbnd) | int num_cpl_bands; ///< number of coupling bands (ncplbnd) | ||||
| int cpl_band_struct[18]; ///< coupling band structure (cplbndstrc) | |||||
| uint8_t cpl_band_struct[18]; ///< coupling band structure (cplbndstrc) | |||||
| int firstchincpl; ///< first channel in coupling | int firstchincpl; ///< first channel in coupling | ||||
| int first_cpl_coords[AC3_MAX_CHANNELS]; ///< first coupling coordinates states (firstcplcos) | int first_cpl_coords[AC3_MAX_CHANNELS]; ///< first coupling coordinates states (firstcplcos) | ||||
| int cpl_coords[AC3_MAX_CHANNELS][18]; ///< coupling coordinates (cplco) | int cpl_coords[AC3_MAX_CHANNELS][18]; ///< coupling coordinates (cplco) | ||||
| @@ -168,4 +168,16 @@ typedef struct { | |||||
| ///@} | ///@} | ||||
| } AC3DecodeContext; | } AC3DecodeContext; | ||||
| /** | |||||
| * Parse the E-AC-3 frame header. | |||||
| * This parses both the bit stream info and audio frame header. | |||||
| */ | |||||
| int ff_eac3_parse_header(AC3DecodeContext *s); | |||||
| /** | |||||
| * Decode mantissas in a single channel for the entire frame. | |||||
| * This is used when AHT mode is enabled. | |||||
| */ | |||||
| void ff_eac3_decode_transform_coeffs_aht_ch(AC3DecodeContext *s, int ch); | |||||
| #endif /* FFMPEG_AC3DEC_H */ | #endif /* FFMPEG_AC3DEC_H */ | ||||
| @@ -87,18 +87,19 @@ const int16_t ff_eac3_gaq_remap_2_4_a[9][2] = { | |||||
| /** | /** | ||||
| * Table E3.6, Gk=2 & Gk=4, B | * Table E3.6, Gk=2 & Gk=4, B | ||||
| * Large mantissa inverse quantization, negative mantissa remapping offsets | * Large mantissa inverse quantization, negative mantissa remapping offsets | ||||
| * Table values from the spec are right-shifted by 8 to simplify calculations. | |||||
| * ff_eac3_gaq_remap_3_4_b[hebap-8][Gk=2,4] | * ff_eac3_gaq_remap_3_4_b[hebap-8][Gk=2,4] | ||||
| */ | */ | ||||
| const int16_t ff_eac3_gaq_remap_2_4_b[9][2] = { | const int16_t ff_eac3_gaq_remap_2_4_b[9][2] = { | ||||
| { -5461, -1170}, | |||||
| { -11703, -4915}, | |||||
| { -14199, -6606}, | |||||
| { -15327, -7412}, | |||||
| { -15864, -7805}, | |||||
| { -16126, -7999}, | |||||
| { -16255, -8096}, | |||||
| { -16320, -8144}, | |||||
| { -16352, -8168} | |||||
| { -22, -5 }, | |||||
| { -46, -20 }, | |||||
| { -56, -26 }, | |||||
| { -60, -29 }, | |||||
| { -62, -31 }, | |||||
| { -63, -32 }, | |||||
| { -64, -32 }, | |||||
| { -64, -32 }, | |||||
| { -64, -32 }, | |||||
| }; | }; | ||||
| static const int16_t vq_hebap1[4][6] = { | static const int16_t vq_hebap1[4][6] = { | ||||