Statistics
| Branch: | Revision:

ffmpeg / libavcodec / ac3enc_fixed.h @ dc7e07ac

History | View | Annotate | Download (1.93 KB)

1
/*
2
 * The simplest AC-3 encoder
3
 * Copyright (c) 2000 Fabrice Bellard
4
 * Copyright (c) 2006-2010 Justin Ruggles <justin.ruggles@gmail.com>
5
 * Copyright (c) 2006-2010 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 02110-1301 USA
22
 */
23

    
24
/**
25
 * @file
26
 * fixed-point AC-3 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

    
40
/**
41
 * Compex number.
42
 * Used in fixed-point MDCT calculation.
43
 */
44
typedef struct IComplex {
45
    int16_t re,im;
46
} IComplex;
47

    
48
typedef struct AC3MDCTContext {
49
    const int16_t *window;                  ///< MDCT window function
50
    int nbits;                              ///< log2(transform size)
51
    int16_t *costab;                        ///< FFT cos table
52
    int16_t *sintab;                        ///< FFT sin table
53
    int16_t *xcos1;                         ///< MDCT cos table
54
    int16_t *xsin1;                         ///< MDCT sin table
55
    int16_t *rot_tmp;                       ///< temp buffer for pre-rotated samples
56
    IComplex *cplx_tmp;                     ///< temp buffer for complex pre-rotated samples
57
} AC3MDCTContext;
58

    
59
#endif /* AVCODEC_AC3ENC_FIXED_H */