diff options
author | Justin Ruggles <justin.ruggles@gmail.com> | 2012-02-28 19:55:10 -0500 |
---|---|---|
committer | Justin Ruggles <justin.ruggles@gmail.com> | 2012-02-29 14:54:24 -0500 |
commit | c5063e0348db97626aecc17c42fd41718fd62f13 (patch) | |
tree | cd104beba0f3f804239722ee394cc1ddea6cbaf3 /libavcodec/libvorbis.c | |
parent | f15c4281dcabeddb61cb6430e0cc1047173292f8 (diff) | |
download | ffmpeg-c5063e0348db97626aecc17c42fd41718fd62f13.tar.gz |
libvorbis: use float input instead of s16
libvorbis takes float input, so we can just deinterleave/reorder the input
as-is instead of also converting.
Diffstat (limited to 'libavcodec/libvorbis.c')
-rw-r--r-- | libavcodec/libvorbis.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libavcodec/libvorbis.c b/libavcodec/libvorbis.c index d7839425ea..2ca779653e 100644 --- a/libavcodec/libvorbis.c +++ b/libavcodec/libvorbis.c @@ -236,7 +236,7 @@ static int oggvorbis_encode_frame(AVCodecContext *avctx, unsigned char *packets, { OggVorbisContext *s = avctx->priv_data; ogg_packet op; - signed short *audio = data; + float *audio = data; int pkt_size; /* send samples to libvorbis */ @@ -251,7 +251,7 @@ static int oggvorbis_encode_frame(AVCodecContext *avctx, unsigned char *packets, int co = (channels > 8) ? c : ff_vorbis_encoding_channel_layout_offsets[channels - 1][c]; for (i = 0; i < samples; i++) - buffer[c][i] = audio[i * channels + co] / 32768.f; + buffer[c][i] = audio[i * channels + co]; } vorbis_analysis_wrote(&s->vd, samples); } else { @@ -315,7 +315,7 @@ AVCodec ff_libvorbis_encoder = { .encode = oggvorbis_encode_frame, .close = oggvorbis_encode_close, .capabilities = CODEC_CAP_DELAY, - .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16, + .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_NONE }, .long_name = NULL_IF_CONFIG_SMALL("libvorbis Vorbis"), .priv_class = &class, |