summaryrefslogtreecommitdiff
path: root/libavcodec/libvorbis.c
diff options
context:
space:
mode:
authorJustin Ruggles <justin.ruggles@gmail.com>2012-02-28 19:33:07 -0500
committerJustin Ruggles <justin.ruggles@gmail.com>2012-02-29 14:54:20 -0500
commit147ff24a0e8d819615a0f596df3ea47dddd79fdc (patch)
treee304f1c1f536eede194b181a628b56eec0857d85 /libavcodec/libvorbis.c
parent182d4f1f3855460ee8634ea052f33332cf9d174e (diff)
libvorbis: use VBR by default, with default quality of 3
Diffstat (limited to 'libavcodec/libvorbis.c')
-rw-r--r--libavcodec/libvorbis.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/libavcodec/libvorbis.c b/libavcodec/libvorbis.c
index 030da2a6d5..7b44c1f671 100644
--- a/libavcodec/libvorbis.c
+++ b/libavcodec/libvorbis.c
@@ -61,6 +61,12 @@ static const AVOption options[] = {
{ "iblock", "Sets the impulse block bias", offsetof(OggVorbisContext, iblock), AV_OPT_TYPE_DOUBLE, { .dbl = 0 }, -15, 0, AV_OPT_FLAG_AUDIO_PARAM | AV_OPT_FLAG_ENCODING_PARAM },
{ NULL }
};
+
+static const AVCodecDefault defaults[] = {
+ { "b", "0" },
+ { NULL },
+};
+
static const AVClass class = { "libvorbis", av_default_item_name, options, LIBAVUTIL_VERSION_INT };
@@ -81,12 +87,15 @@ static av_cold int oggvorbis_init_encoder(vorbis_info *vi,
double cfreq;
int ret;
- if (avctx->flags & CODEC_FLAG_QSCALE) {
+ if (avctx->flags & CODEC_FLAG_QSCALE || !avctx->bit_rate) {
/* variable bitrate
* NOTE: we use the oggenc range of -1 to 10 for global_quality for
- * user convenience, but libvorbis uses -0.1 to 1.0
+ * user convenience, but libvorbis uses -0.1 to 1.0.
*/
float q = avctx->global_quality / (float)FF_QP2LAMBDA;
+ /* default to 3 if the user did not set quality or bitrate */
+ if (!(avctx->flags & CODEC_FLAG_QSCALE))
+ q = 3.0;
if ((ret = vorbis_encode_setup_vbr(vi, avctx->channels,
avctx->sample_rate,
q / 10.0)))
@@ -307,4 +316,5 @@ AVCodec ff_libvorbis_encoder = {
AV_SAMPLE_FMT_NONE },
.long_name = NULL_IF_CONFIG_SMALL("libvorbis Vorbis"),
.priv_class = &class,
+ .defaults = defaults,
};