Automated installation of GStreamer codecs provided by third-party repositories
- Targeted release: Fedora 10
- Last updated: 2008-09-18
- Percentage of completion: 90%
Using a modified version of gst-inspect-0.10, we marshal GStreamer's plugins capabilities into RPM provides. RPM was recently modified to actually call this script (see Bugzilla bug 438225 for complete information).
After rebuilding all the RPMs that include GStreamer plugins (to get those provides in the RPMs themselves), we need to write a small application that will take Gstreamer missing plugin information, and transform it into a potential RPM provides. From there, PackageKit will be used to install the package providing this requirement if available.
This feature is a precursor to a more thorough refactoring into a generic framework for these types of additions.
Benefit to Fedora
Improved codec support without any appearance of vendor non-neutrality, and user flexibility. The Fedora Board has previously discussed and approved this implementation.
- Patch to the rpm-build configuration (done)
- Patch to
gstreamer-develto enable these provides when building packages. (building)
- Rebuilding of packages using
- Writing small application to bridge between GStreamer applications and PackageKit (done, just need to get it in rawhide)
- Install repository setup for a third-party repository containing gst-ffmpeg
- On a stock Fedora installation, try to play back a video in WMV format (something supported by gst-ffmpeg)
- Without installation a third-party repository, try playing back a video in WMV format
- With and without a third-party repository set up
- Try playing back a web stream that uses mms
Remove some installed GStreamer plugins, and play back a file that requires a GStreamer plugin available in a configured repository. Also test workflow when no matching plugins are available.
For example, imagine the user opens a file that requires a specific codec with an aware media player. The user can receive a prompt from PackageKit asking whether to install the package that provides that codec. This implementation of codec support is completely vendor neutral and relies on package providers to rebuild their packages and making them available via yum.
- Updated gstreamer and assorted plugins
- Updated PackageKit (requires 0.3.4 to be installed)
- Still install codeina by default.
The RPM package building system now includes the ability to provide GStreamer capabilities in codec packages. When a user opens a piece of media which is not handled by the installed codecs, a prompt appears to ask if the user wishes to search for an appropriate one. PackageKit launches, and if an appropriate codec is found in the
yum repositories configured by the user, the user can install it.