After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 621349 - [theoraenc] Implement two-pass encoding
[theoraenc] Implement two-pass encoding
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal enhancement
: 0.10.31
Assigned To: Sebastian Dröge (slomo)
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-06-12 07:14 UTC by Sebastian Dröge (slomo)
Modified: 2010-07-16 15:44 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
theoraenc: Implement two pass encoding (25.33 KB, patch)
2010-07-03 17:28 UTC, Sebastian Dröge (slomo)
reviewed Details | Review
theora: Use PROP_ instead of ARG_ for property enum values (13.95 KB, patch)
2010-07-04 18:25 UTC, Sebastian Dröge (slomo)
committed Details | Review
configure: Require libtheora >= 1.1 (1.10 KB, patch)
2010-07-04 18:25 UTC, Sebastian Dröge (slomo)
none Details | Review
theoraenc: Implement two pass encoding (15.29 KB, patch)
2010-07-04 18:26 UTC, Sebastian Dröge (slomo)
none Details | Review
configure: Require libtheora >= 1.1 (3.52 KB, patch)
2010-07-04 18:30 UTC, Sebastian Dröge (slomo)
committed Details | Review
theoraenc: Implement two pass encoding (13.47 KB, patch)
2010-07-04 18:30 UTC, Sebastian Dröge (slomo)
committed Details | Review

Description Sebastian Dröge (slomo) 2010-06-12 07:14:20 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.
Comment 1 Sebastian Dröge (slomo) 2010-07-03 17:28:26 UTC
Created attachment 165185 [details] [review]
theoraenc: Implement two pass encoding

Fixes bug #621349.
Comment 2 Tim-Philipp Müller 2010-07-04 16:11:21 UTC
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.
Comment 3 Sebastian Dröge (slomo) 2010-07-04 18:25:53 UTC
Created attachment 165232 [details] [review]
theora: Use PROP_ instead of ARG_ for property enum values
Comment 4 Sebastian Dröge (slomo) 2010-07-04 18:25:58 UTC
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
Comment 5 Sebastian Dröge (slomo) 2010-07-04 18:26:02 UTC
Created attachment 165234 [details] [review]
theoraenc: Implement two pass encoding

Fixes bug #621349.
Comment 6 Sebastian Dröge (slomo) 2010-07-04 18:30:22 UTC
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
Comment 7 Sebastian Dröge (slomo) 2010-07-04 18:30:26 UTC
Created attachment 165236 [details] [review]
theoraenc: Implement two pass encoding

Fixes bug #621349.
Comment 8 Sebastian Dröge (slomo) 2010-07-16 15:44:32 UTC
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