Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/mpc-hc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXhmikosR <xhmikosr@users.sourceforge.net>2010-04-09 18:12:59 +0400
committerXhmikosR <xhmikosr@users.sourceforge.net>2010-04-09 18:12:59 +0400
commitefbc9d9043ff8ff92716ddd00a5f61412d535593 (patch)
tree8f3e621f756cf1f5b4d64d97964c7e7abd8aaf08 /src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/nellymoserdec.c
parentdf6b139a6d9027156f614b68687e039e3a5854db (diff)
revert r1783
git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@1785 10f7b99b-c216-0410-bff0-8a66a9350fd8
Diffstat (limited to 'src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/nellymoserdec.c')
-rw-r--r--src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/nellymoserdec.c117
1 files changed, 47 insertions, 70 deletions
diff --git a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/nellymoserdec.c b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/nellymoserdec.c
index d0dae1d86..942f8de30 100644
--- a/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/nellymoserdec.c
+++ b/src/filters/transform/MPCVideoDec/ffmpeg/libavcodec/nellymoserdec.c
@@ -45,10 +45,9 @@
#endif
-typedef struct NellyMoserDecodeContext
-{
+typedef struct NellyMoserDecodeContext {
AVCodecContext* avctx;
- DECLARE_ALIGNED_16(float, float_buf)[NELLY_SAMPLES];
+ DECLARE_ALIGNED_16(float,float_buf)[NELLY_SAMPLES];
float state[128];
AVLFG random_state;
GetBitContext gb;
@@ -56,7 +55,7 @@ typedef struct NellyMoserDecodeContext
float scale_bias;
DSPContext dsp;
FFTContext imdct_ctx;
- DECLARE_ALIGNED_16(float, imdct_out)[NELLY_BUF_LEN * 2];
+ DECLARE_ALIGNED_16(float,imdct_out)[NELLY_BUF_LEN * 2];
} NellyMoserDecodeContext;
static void overlap_and_window(NellyMoserDecodeContext *s, float *state, float *audio, float *a_in)
@@ -64,12 +63,11 @@ static void overlap_and_window(NellyMoserDecodeContext *s, float *state, float *
int bot, top;
bot = 0;
- top = NELLY_BUF_LEN - 1;
+ top = NELLY_BUF_LEN-1;
- while(bot < NELLY_BUF_LEN)
- {
- audio[bot] = a_in [bot] * ff_sine_128[bot]
- + state[bot] * ff_sine_128[top] + s->add_bias;
+ while (bot < NELLY_BUF_LEN) {
+ audio[bot] = a_in [bot]*ff_sine_128[bot]
+ +state[bot]*ff_sine_128[top] + s->add_bias;
bot++;
top--;
@@ -81,7 +79,7 @@ static void nelly_decode_block(NellyMoserDecodeContext *s,
const unsigned char block[NELLY_BLOCK_LEN],
float audio[NELLY_SAMPLES])
{
- int i, j;
+ int i,j;
float buf[NELLY_FILL_LEN], pows[NELLY_FILL_LEN];
float *aptr, *bptr, *pptr, val, pval;
int bits[NELLY_BUF_LEN];
@@ -92,13 +90,11 @@ static void nelly_decode_block(NellyMoserDecodeContext *s,
bptr = buf;
pptr = pows;
val = ff_nelly_init_table[get_bits(&s->gb, 6)];
- for(i = 0 ; i < NELLY_BANDS ; i++)
- {
- if(i > 0)
+ for (i=0 ; i<NELLY_BANDS ; i++) {
+ if (i > 0)
val += ff_nelly_delta_table[get_bits(&s->gb, 5)];
- pval = -pow(2, val / 2048) * s->scale_bias;
- for(j = 0; j < ff_nelly_band_sizes_table[i]; j++)
- {
+ pval = -pow(2, val/2048) * s->scale_bias;
+ for (j = 0; j < ff_nelly_band_sizes_table[i]; j++) {
*bptr++ = val;
*pptr++ = pval;
}
@@ -107,25 +103,20 @@ static void nelly_decode_block(NellyMoserDecodeContext *s,
ff_nelly_get_sample_bits(buf, bits);
- for(i = 0; i < 2; i++)
- {
+ for (i = 0; i < 2; i++) {
aptr = audio + i * NELLY_BUF_LEN;
init_get_bits(&s->gb, block, NELLY_BLOCK_LEN * 8);
- skip_bits_long(&s->gb, NELLY_HEADER_BITS + i * NELLY_DETAIL_BITS);
-
- for(j = 0; j < NELLY_FILL_LEN; j++)
- {
- if(bits[j] <= 0)
- {
- aptr[j] = M_SQRT1_2 * pows[j];
- if(av_lfg_get(&s->random_state) & 1)
+ skip_bits_long(&s->gb, NELLY_HEADER_BITS + i*NELLY_DETAIL_BITS);
+
+ for (j = 0; j < NELLY_FILL_LEN; j++) {
+ if (bits[j] <= 0) {
+ aptr[j] = M_SQRT1_2*pows[j];
+ if (av_lfg_get(&s->random_state) & 1)
aptr[j] *= -1.0;
- }
- else
- {
+ } else {
v = get_bits(&s->gb, bits[j]);
- aptr[j] = ff_nelly_dequantization_table[(1<<bits[j]) - 1 + v] * pows[j];
+ aptr[j] = ff_nelly_dequantization_table[(1<<bits[j])-1+v]*pows[j];
}
}
memset(&aptr[NELLY_FILL_LEN], 0,
@@ -138,8 +129,7 @@ static void nelly_decode_block(NellyMoserDecodeContext *s,
}
}
-static av_cold int decode_init(AVCodecContext * avctx)
-{
+static av_cold int decode_init(AVCodecContext * avctx) {
NellyMoserDecodeContext *s = avctx->priv_data;
s->avctx = avctx;
@@ -148,19 +138,16 @@ static av_cold int decode_init(AVCodecContext * avctx)
dsputil_init(&s->dsp, avctx);
- if(s->dsp.float_to_int16 == ff_float_to_int16_c)
- {
+ if(s->dsp.float_to_int16 == ff_float_to_int16_c) {
s->add_bias = 385;
- s->scale_bias = 1.0 / (8 * 32768);
- }
- else
- {
+ s->scale_bias = 1.0/(8*32768);
+ } else {
s->add_bias = 0;
- s->scale_bias = 1.0 / (1 * 8);
+ s->scale_bias = 1.0/(1*8);
}
/* Generate overlap window */
- if(!ff_sine_128[127])
+ if (!ff_sine_128[127])
ff_init_ff_sine_windows(7);
avctx->sample_fmt = SAMPLE_FMT_S16;
@@ -170,59 +157,49 @@ static av_cold int decode_init(AVCodecContext * avctx)
static int decode_tag(AVCodecContext * avctx,
void *data, int *data_size,
- const uint8_t * buf, int buf_size)
-{
+ const uint8_t * buf, int buf_size) {
NellyMoserDecodeContext *s = avctx->priv_data;
int blocks, i;
int16_t* samples;
*data_size = 0;
samples = (int16_t*)data;
- if(buf_size < avctx->block_align)
+ if (buf_size < avctx->block_align)
return buf_size;
- switch(buf_size)
- {
- case 64: // 8000Hz
- blocks = 1;
- break;
- case 128: // 11025Hz
- blocks = 2;
- break;
- case 192: // 16000Hz
- blocks = 3;
- break;
- case 256: // 22050Hz
- blocks = 4;
- break;
- case 512: // 44100Hz
- blocks = 8;
- break;
- default:
- av_log(avctx, AV_LOG_DEBUG, "Tag size %d.\n", buf_size);
- return buf_size;
+ switch (buf_size) {
+ case 64: // 8000Hz
+ blocks = 1; break;
+ case 128: // 11025Hz
+ blocks = 2; break;
+ case 192: // 16000Hz
+ blocks = 3; break;
+ case 256: // 22050Hz
+ blocks = 4; break;
+ case 512: // 44100Hz
+ blocks = 8; break;
+ default:
+ av_log(avctx, AV_LOG_DEBUG, "Tag size %d.\n", buf_size);
+ return buf_size;
}
- for(i = 0 ; i < blocks ; i++)
- {
+ for (i=0 ; i<blocks ; i++) {
nelly_decode_block(s, &buf[i*NELLY_BLOCK_LEN], s->float_buf);
s->dsp.float_to_int16(&samples[i*NELLY_SAMPLES], s->float_buf, NELLY_SAMPLES);
- *data_size += NELLY_SAMPLES * sizeof(int16_t);
+ *data_size += NELLY_SAMPLES*sizeof(int16_t);
}
return buf_size;
}
-static av_cold int decode_end(AVCodecContext * avctx)
-{
+static av_cold int decode_end(AVCodecContext * avctx) {
NellyMoserDecodeContext *s = avctx->priv_data;
ff_mdct_end(&s->imdct_ctx);
return 0;
}
-AVCodec nellymoser_decoder =
-{
+AVCodec nellymoser_decoder = {
"nellymoser",
CODEC_TYPE_AUDIO,
CODEC_ID_NELLYMOSER,