*/
/**
- * @file libavcodec/wmadec.c
+ * @file
* WMA compatible decoder.
* This decoder handles Microsoft Windows Media Audio data, versions 1 & 2.
* WMA v1 is identified by audio format 0x160 in Microsoft media files
}
if (s->use_exp_vlc) {
- init_vlc(&s->exp_vlc, EXPVLCBITS, sizeof(ff_wma_scale_huffbits), //FIXME move out of context
- ff_wma_scale_huffbits, 1, 1,
- ff_wma_scale_huffcodes, 4, 4, 0);
+ init_vlc(&s->exp_vlc, EXPVLCBITS, sizeof(ff_aac_scalefactor_bits), //FIXME move out of context
+ ff_aac_scalefactor_bits, 1, 1,
+ ff_aac_scalefactor_code, 4, 4, 0);
} else {
wma_lsp_to_curve_init(s, s->frame_len);
}
- avctx->sample_fmt = SAMPLE_FMT_S16;
+ avctx->sample_fmt = AV_SAMPLE_FMT_S16;
return 0;
}
/* convert frame to integer */
n = s->frame_len;
incr = s->nb_channels;
- for(ch = 0; ch < s->nb_channels; ch++) {
- ptr = samples + ch;
- iptr = s->frame_out[ch];
+ 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;
+ 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));
}
- /* prepare for next block */
- memmove(&s->frame_out[ch][0], &s->frame_out[ch][s->frame_len],
- s->frame_len * sizeof(float));
}
#ifdef TRACE
AVCodec wmav1_decoder =
{
"wmav1",
- CODEC_TYPE_AUDIO,
+ AVMEDIA_TYPE_AUDIO,
CODEC_ID_WMAV1,
sizeof(WMACodecContext),
wma_decode_init,
AVCodec wmav2_decoder =
{
"wmav2",
- CODEC_TYPE_AUDIO,
+ AVMEDIA_TYPE_AUDIO,
CODEC_ID_WMAV2,
sizeof(WMACodecContext),
wma_decode_init,