mirror of https://github.com/FFmpeg/FFmpeg.git
This makes the AC3 encoder use the shared fixed-point MDCT rather than its own implementation. The checksum changes are due to different rounding in the MDCT. Signed-off-by: Mans Rullgard <mans@mansr.com>oldabi
parent
aadfc9ee74
commit
79997def65
7 changed files with 23 additions and 424 deletions
@ -1,61 +0,0 @@ |
|||||||
/*
|
|
||||||
* The simplest AC-3 encoder |
|
||||||
* Copyright (c) 2000 Fabrice Bellard |
|
||||||
* Copyright (c) 2006-2010 Justin Ruggles <justin.ruggles@gmail.com> |
|
||||||
* Copyright (c) 2006-2010 Prakash Punnoor <prakash@punnoor.de> |
|
||||||
* |
|
||||||
* This file is part of Libav. |
|
||||||
* |
|
||||||
* Libav is free software; you can redistribute it and/or |
|
||||||
* modify it under the terms of the GNU Lesser General Public |
|
||||||
* License as published by the Free Software Foundation; either |
|
||||||
* version 2.1 of the License, or (at your option) any later version. |
|
||||||
* |
|
||||||
* Libav is distributed in the hope that it will be useful, |
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
||||||
* Lesser General Public License for more details. |
|
||||||
* |
|
||||||
* You should have received a copy of the GNU Lesser General Public |
|
||||||
* License along with Libav; if not, write to the Free Software |
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|
||||||
*/ |
|
||||||
|
|
||||||
/**
|
|
||||||
* @file |
|
||||||
* fixed-point AC-3 encoder header. |
|
||||||
*/ |
|
||||||
|
|
||||||
#ifndef AVCODEC_AC3ENC_FIXED_H |
|
||||||
#define AVCODEC_AC3ENC_FIXED_H |
|
||||||
|
|
||||||
#include <stdint.h> |
|
||||||
|
|
||||||
|
|
||||||
typedef int16_t SampleType; |
|
||||||
typedef int32_t CoefType; |
|
||||||
typedef int64_t CoefSumType; |
|
||||||
|
|
||||||
#define MAC_COEF(d,a,b) MAC64(d,a,b) |
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Compex number. |
|
||||||
* Used in fixed-point MDCT calculation. |
|
||||||
*/ |
|
||||||
typedef struct IComplex { |
|
||||||
int16_t re,im; |
|
||||||
} IComplex; |
|
||||||
|
|
||||||
typedef struct AC3MDCTContext { |
|
||||||
const int16_t *window; ///< MDCT window function
|
|
||||||
int nbits; ///< log2(transform size)
|
|
||||||
int16_t *costab; ///< FFT cos table
|
|
||||||
int16_t *sintab; ///< FFT sin table
|
|
||||||
int16_t *xcos1; ///< MDCT cos table
|
|
||||||
int16_t *xsin1; ///< MDCT sin table
|
|
||||||
int16_t *rot_tmp; ///< temp buffer for pre-rotated samples
|
|
||||||
IComplex *cplx_tmp; ///< temp buffer for complex pre-rotated samples
|
|
||||||
} AC3MDCTContext; |
|
||||||
|
|
||||||
#endif /* AVCODEC_AC3ENC_FIXED_H */ |
|
@ -1,47 +0,0 @@ |
|||||||
/*
|
|
||||||
* The simplest AC-3 encoder |
|
||||||
* Copyright (c) 2000 Fabrice Bellard |
|
||||||
* Copyright (c) 2006-2010 Justin Ruggles <justin.ruggles@gmail.com> |
|
||||||
* Copyright (c) 2006-2010 Prakash Punnoor <prakash@punnoor.de> |
|
||||||
* |
|
||||||
* This file is part of Libav. |
|
||||||
* |
|
||||||
* Libav is free software; you can redistribute it and/or |
|
||||||
* modify it under the terms of the GNU Lesser General Public |
|
||||||
* License as published by the Free Software Foundation; either |
|
||||||
* version 2.1 of the License, or (at your option) any later version. |
|
||||||
* |
|
||||||
* Libav is distributed in the hope that it will be useful, |
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
||||||
* Lesser General Public License for more details. |
|
||||||
* |
|
||||||
* You should have received a copy of the GNU Lesser General Public |
|
||||||
* License along with Libav; if not, write to the Free Software |
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|
||||||
*/ |
|
||||||
|
|
||||||
/**
|
|
||||||
* @file |
|
||||||
* floating-point AC-3 encoder header. |
|
||||||
*/ |
|
||||||
|
|
||||||
#ifndef AVCODEC_AC3ENC_FLOAT_H |
|
||||||
#define AVCODEC_AC3ENC_FLOAT_H |
|
||||||
|
|
||||||
#include "fft.h" |
|
||||||
|
|
||||||
|
|
||||||
typedef float SampleType; |
|
||||||
typedef float CoefType; |
|
||||||
typedef float CoefSumType; |
|
||||||
|
|
||||||
#define MAC_COEF(d,a,b) ((d)+=(a)*(b)) |
|
||||||
|
|
||||||
|
|
||||||
typedef struct AC3MDCTContext { |
|
||||||
const float *window; ///< MDCT window function
|
|
||||||
FFTContext fft; ///< FFT context for MDCT calculation
|
|
||||||
} AC3MDCTContext; |
|
||||||
|
|
||||||
#endif /* AVCODEC_AC3ENC_FLOAT_H */ |
|
@ -1,2 +1,2 @@ |
|||||||
346073c97eada69330f61e103a170ca1 *./tests/data/acodec/ac3.rm |
408f47ee5a60866fc751f7bc2314cbd6 *./tests/data/acodec/ac3.rm |
||||||
98751 ./tests/data/acodec/ac3.rm |
98751 ./tests/data/acodec/ac3.rm |
||||||
|
@ -1,2 +1,2 @@ |
|||||||
7b7ede9548a09346675edad36acfbf19 *./tests/data/lavf/lavf.rm |
da74fe749c2eb21bbead7de81d2f3078 *./tests/data/lavf/lavf.rm |
||||||
346706 ./tests/data/lavf/lavf.rm |
346706 ./tests/data/lavf/lavf.rm |
||||||
|
Loading…
Reference in new issue