summaryrefslogtreecommitdiff
path: root/libavcodec/libvorbis.c
diff options
context:
space:
mode:
authorJustin Ruggles <justin.ruggles@gmail.com>2012-02-28 19:55:10 -0500
committerJustin Ruggles <justin.ruggles@gmail.com>2012-02-29 14:54:24 -0500
commitc5063e0348db97626aecc17c42fd41718fd62f13 (patch)
treecd104beba0f3f804239722ee394cc1ddea6cbaf3 /libavcodec/libvorbis.c
parentf15c4281dcabeddb61cb6430e0cc1047173292f8 (diff)
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.c6
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,