ffmpeg / libavcodec / ac3enc_fixed.h @ 67fc32ac
History  View  Annotate  Download (1.96 KB)
1 
/*


2 
* The simplest AC3 encoder

3 
* Copyright (c) 2000 Fabrice Bellard

4 
* Copyright (c) 20062010 Justin Ruggles <justin.ruggles@gmail.com>

5 
* Copyright (c) 20062010 Prakash Punnoor <prakash@punnoor.de>

6 
*

7 
* This file is part of FFmpeg.

8 
*

9 
* FFmpeg is free software; you can redistribute it and/or

10 
* modify it under the terms of the GNU Lesser General Public

11 
* License as published by the Free Software Foundation; either

12 
* version 2.1 of the License, or (at your option) any later version.

13 
*

14 
* FFmpeg is distributed in the hope that it will be useful,

15 
* but WITHOUT ANY WARRANTY; without even the implied warranty of

16 
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU

17 
* Lesser General Public License for more details.

18 
*

19 
* You should have received a copy of the GNU Lesser General Public

20 
* License along with FFmpeg; if not, write to the Free Software

21 
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 021101301 USA

22 
*/

23  
24 
/**

25 
* @file

26 
* fixedpoint AC3 encoder header.

27 
*/

28  
29 
#ifndef AVCODEC_AC3ENC_FIXED_H

30 
#define AVCODEC_AC3ENC_FIXED_H

31  
32 
#include <stdint.h> 
33  
34  
35 
typedef int16_t SampleType;

36 
typedef int32_t CoefType;

37 
typedef int64_t CoefSumType;

38  
39 
#define MUL_COEF(a,b) MUL64(a,b)

40  
41  
42 
/**

43 
* Compex number.

44 
* Used in fixedpoint MDCT calculation.

45 
*/

46 
typedef struct IComplex { 
47 
int16_t re,im; 
48 
} IComplex; 
49  
50 
typedef struct AC3MDCTContext { 
51 
const int16_t *window; ///< MDCT window function 
52 
int nbits; ///< log2(transform size) 
53 
int16_t *costab; ///< FFT cos table

54 
int16_t *sintab; ///< FFT sin table

55 
int16_t *xcos1; ///< MDCT cos table

56 
int16_t *xsin1; ///< MDCT sin table

57 
int16_t *rot_tmp; ///< temp buffer for prerotated samples

58 
IComplex *cplx_tmp; ///< temp buffer for complex prerotated samples

59 
} AC3MDCTContext; 
60  
61 
#endif /* AVCODEC_AC3ENC_FIXED_H */ 