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 |
||||
|
@ -1,2 +1,2 @@ |
||||
7b7ede9548a09346675edad36acfbf19 *./tests/data/lavf/lavf.rm |
||||
da74fe749c2eb21bbead7de81d2f3078 *./tests/data/lavf/lavf.rm |
||||
346706 ./tests/data/lavf/lavf.rm |
||||
|
Loading…
Reference in new issue