diff options
Diffstat (limited to 'lib/ffmpeg/libavcodec/wmadec.c')
-rw-r--r-- | lib/ffmpeg/libavcodec/wmadec.c | 39 |
1 files changed, 11 insertions, 28 deletions
diff --git a/lib/ffmpeg/libavcodec/wmadec.c b/lib/ffmpeg/libavcodec/wmadec.c index 5582a7236b..83f8dea8bb 100644 --- a/lib/ffmpeg/libavcodec/wmadec.c +++ b/lib/ffmpeg/libavcodec/wmadec.c @@ -123,7 +123,7 @@ static int wma_decode_init(AVCodecContext * avctx) wma_lsp_to_curve_init(s, s->frame_len); } - avctx->sample_fmt = SAMPLE_FMT_S16; + avctx->sample_fmt = AV_SAMPLE_FMT_S16; return 0; } @@ -768,9 +768,8 @@ next: /* decode a frame of frame_len samples */ static int wma_decode_frame(WMACodecContext *s, int16_t *samples) { - int ret, i, n, ch, incr; - int16_t *ptr; - float *iptr; + int ret, n, ch, incr; + const float *output[MAX_CHANNELS]; #ifdef TRACE tprintf(s->avctx, "***decode_frame: %d size=%d\n", s->frame_count++, s->frame_len); @@ -790,28 +789,12 @@ static int wma_decode_frame(WMACodecContext *s, int16_t *samples) /* convert frame to integer */ n = s->frame_len; incr = s->nb_channels; - if (s->dsp.float_to_int16_interleave == ff_float_to_int16_interleave_c) { - for(ch = 0; ch < s->nb_channels; ch++) { - ptr = samples + ch; - iptr = s->frame_out[ch]; - - for(i=0;i<n;i++) { - *ptr = av_clip_int16(lrintf(*iptr++)); - ptr += incr; - } - /* prepare for next block */ - memmove(&s->frame_out[ch][0], &s->frame_out[ch][s->frame_len], - s->frame_len * sizeof(float)); - } - } else { - const float *output[MAX_CHANNELS]; - for (ch = 0; ch < MAX_CHANNELS; ch++) - output[ch] = s->frame_out[ch]; - s->dsp.float_to_int16_interleave(samples, output, n, incr); - for(ch = 0; ch < incr; ch++) { - /* prepare for next block */ - memmove(&s->frame_out[ch][0], &s->frame_out[ch][n], n * sizeof(float)); - } + for (ch = 0; ch < MAX_CHANNELS; ch++) + output[ch] = s->frame_out[ch]; + s->fmt_conv.float_to_int16_interleave(samples, output, n, incr); + for (ch = 0; ch < incr; ch++) { + /* prepare for next block */ + memmove(&s->frame_out[ch][0], &s->frame_out[ch][n], n * sizeof(float)); } #ifdef TRACE @@ -939,7 +922,7 @@ static av_cold void flush(AVCodecContext *avctx) s->last_superframe_len= 0; } -AVCodec wmav1_decoder = +AVCodec ff_wmav1_decoder = { "wmav1", AVMEDIA_TYPE_AUDIO, @@ -953,7 +936,7 @@ AVCodec wmav1_decoder = .long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 1"), }; -AVCodec wmav2_decoder = +AVCodec ff_wmav2_decoder = { "wmav2", AVMEDIA_TYPE_AUDIO, |