[FFmpeg-cvslog] libvorbis: use VBR by default, with default quality of 3

Justin Ruggles git at videolan.org
Thu Mar 1 03:20:22 CET 2012


ffmpeg | branch: master | Justin Ruggles <justin.ruggles at gmail.com> | Tue Feb 28 19:33:07 2012 -0500| [147ff24a0e8d819615a0f596df3ea47dddd79fdc] | committer: Justin Ruggles

libvorbis: use VBR by default, with default quality of 3

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=147ff24a0e8d819615a0f596df3ea47dddd79fdc
---

 libavcodec/libvorbis.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/libavcodec/libvorbis.c b/libavcodec/libvorbis.c
index 030da2a..7b44c1f 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,
 };



More information about the ffmpeg-cvslog mailing list