GNOME Bugzilla – Bug 621349
[theoraenc] Implement two-pass encoding
Last modified: 2010-07-16 15:44:52 UTC
See summary. It's quite easy to implement, take a look at TH_ENCCTL_2PASS_IN and TH_ENCCTL_2PASS_OUT. I'll probably implement it in the next days.
Created attachment 165185 [details] [review] theoraenc: Implement two pass encoding Fixes bug #621349.
Review of attachment 165185 [details] [review]: I think we should bump the libtheora requirement to 1.1 and do away with all the #ifdef stuff in this patch. The next -base release is not before September, at which point 1.1 will have been out for ca. a year, and IIRC there are great quality differences between the 1.0 and 1.1 encoder, so we really want people to upgrade. Also, that way apps can figure out from the presence of the properties if multipass encoding is actually supported or not, seems much better to me. New properties look ok. We should aim to standardise these properties in 0.11. ::: ext/theora/gsttheoraenc.c @@ +92,3 @@ + static GType multipass_mode_type = 0; + static const GEnumValue multipass_mode[] = { + {MULTIPASS_MODE_SINGLE_PASS, "Single pass (default)", "single-pass"}, The "(default)" bit is superfluous here IMHO. The default is documented via the GParamSpec and shouldn't be part of the enum description. @@ +247,3 @@ gobject_class->finalize = theora_enc_finalize; + g_object_class_install_property (gobject_class, PROP_CENTER, The ARG_* => PROP_* renaming should really be done in a separate commit :-) @@ +408,3 @@ + gst_object_unref (enc->multipass_cache_adapter); + enc->multipass_cache_adapter = NULL; + } Maybe all this enc->multipass_* cleanup should be put into a separate function, since the same code is repeated again below IIRC.
Created attachment 165232 [details] [review] theora: Use PROP_ instead of ARG_ for property enum values
Created attachment 165233 [details] [review] configure: Require libtheora >= 1.1 It's more than a year old at the time of the next -base release, has many encoder and decoder improvements and gets us rid of a lot of #ifdefs
Created attachment 165234 [details] [review] theoraenc: Implement two pass encoding Fixes bug #621349.
Created attachment 165235 [details] [review] configure: Require libtheora >= 1.1 It's more than a year old at the time of the next -base release, has many encoder and decoder improvements and gets us rid of a lot of #ifdefs
Created attachment 165236 [details] [review] theoraenc: Implement two pass encoding Fixes bug #621349.
commit c95d0034afbded164793120912db711000fcd8a6 Author: Sebastian Dröge <sebastian.droege@collabora.co.uk> Date: Sun Jul 4 20:29:53 2010 +0200 theoraenc: Implement two pass encoding Fixes bug #621349. commit 5318e71b4dedd4d3a4c0666bfd96e9bce77e1105 Author: Sebastian Dröge <sebastian.droege@collabora.co.uk> Date: Sun Jul 4 20:14:34 2010 +0200 configure: Require libtheora >= 1.1 It's more than a year old at the time of the next -base release, has many encoder and decoder improvements and gets us rid of a lot of #ifdefs