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 394697 - [PATCH] easy codec installation support
[PATCH] easy codec installation support
Status: RESOLVED FIXED
Product: totem
Classification: Core
Component: Movie player
unspecified
Other Linux
: Normal enhancement
: ---
Assigned To: General Totem maintainer(s)
General Totem maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2007-01-09 16:59 UTC by Tim-Philipp Müller
Modified: 2007-01-10 14:25 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
patch adding support for automatic installation of missing plugins via libgimmecode (13.13 KB, patch)
2007-01-09 17:00 UTC, Tim-Philipp Müller
none Details | Review
updated patch (12.77 KB, patch)
2007-01-10 13:24 UTC, Tim-Philipp Müller
committed Details | Review

Description Tim-Philipp Müller 2007-01-09 16:59:31 UTC
Attached the totem part of the patch to enable easy/automatic GStreamer codec installation for totem.

The GStreamer backend bits for this haven't been committed yet, but aren't important either. Basically, the backend will emit a missing-plugins signal when plugins are missing. This happens either when an error occured or the playback engine is ready for playback ("prerolled" in GStreamer lingo) but can't decode all of the streams.

If this happens, it will call libgimmecodec with the details of the missing plugins and wait (asynchroneously) for the result.

If new plugins have been installed, a rescan of the GStreamer registry will be triggered and playback tried again.

This requires an up-to-date GStreamer core and gst-plugins-base from CVS.
Comment 1 Tim-Philipp Müller 2007-01-09 17:00:19 UTC
Created attachment 79858 [details] [review]
patch adding support for automatic installation of missing plugins via libgimmecode
Comment 2 Tim-Philipp Müller 2007-01-10 13:24:31 UTC
Created attachment 79936 [details] [review]
updated patch

Updated patch as suggested on IRC. Changes:

 - only require GStreamer CVS if libgimme-codec stuff is actually used
 - add a totem_missing_plugins_setup() and move all the bits into
   totem-missing-plugins.c

The required backend additions (ie. add the signal) have been committed now, so this could go in at any time as well.
Comment 3 Bastien Nocera 2007-01-10 13:59:49 UTC
Looks good, thanks.
Comment 4 Tim-Philipp Müller 2007-01-10 14:25:36 UTC
Thanks, committed:

 2007-01-10  Tim-Philipp Müller  <tim at centricular dot net>

        * configure.in:
        * src/Makefile.am:
        * src/totem-missing-plugins.c: Added.
        (totem_codec_install_plugin_is_blacklisted):
        (totem_codec_install_blacklist_plugin):
        (totem_codec_install_context_free):
        (on_gimme_codec_installation_done):
        (totem_on_missing_plugins_event):
        (totem_missing_plugins_setup):
        * src/totem-missing-plugins.h: Added.
        * src/totem.c:
        (video_widget_create):
         Add optional support for automatic/easy missing codec installation via
         libgimme-codec. If libgimme-codec is available and the GStreamer backend
         is used (and a recent-enough gst-plugins-base used), totem will use the
         library to call an external installer program with information about
         the plugins missing. If anything was installed, the GStreamer plugin
         registry will be updated and playback tried again (without the need to
         restart totem). (Closes: #394697)