From 0022fb100b7d22b9612474ebee944e66c2a7b33b Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 7 Jan 2011 19:37:39 +0100 Subject: [PATCH] encoder/lame: explicitly configure the output sample rate When you don't explicitly set an output sample rate, liblame tries to guess an output sample rate from the input sample rate. You would think that this "guessing" consists of just setting both equal, but that is not the case. For 44.1kHz at 96kbit/s, liblame chooses 32kHz. This patch explicitly configures the output sample rate, to stop the bad guessing. --- NEWS | 2 ++ src/encoder/lame_encoder.c | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/NEWS b/NEWS index 52780c99d..1a90124b5 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,6 @@ ver 0.15.16 (2010/??/??) +* encoders: + - lame: explicitly configure the output sample rate ver 0.15.15 (2010/11/08) diff --git a/src/encoder/lame_encoder.c b/src/encoder/lame_encoder.c index acaf4470f..6c8f20890 100644 --- a/src/encoder/lame_encoder.c +++ b/src/encoder/lame_encoder.c @@ -169,6 +169,13 @@ lame_encoder_setup(struct lame_encoder *encoder, GError **error) return false; } + if (0 != lame_set_out_samplerate(encoder->gfp, + encoder->audio_format.sample_rate)) { + g_set_error(error, lame_encoder_quark(), 0, + "error setting lame out sample rate"); + return false; + } + if (0 > lame_init_params(encoder->gfp)) { g_set_error(error, lame_encoder_quark(), 0, "error initializing lame params");