From Fedora Project Wiki
(OK, first stab.)
 
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== Summary ==
== Summary ==


Add bits to enable GStreamer capability Provides in building RPM packages.
Automated installation of GStreamer codecs provided by third-party repositories


== Owner ==
== Owner ==
Line 8: Line 8:
== Current status ==
== Current status ==
* Targeted release: [[Releases/10|  Fedora 10]]  
* Targeted release: [[Releases/10|  Fedora 10]]  
* Last updated: 2008-09-11
* Last updated: 2008-10-03
* Percentage of completion: 85%
* Percentage of completion: 100%


== Detailed Description ==
== Detailed Description ==


See [https://bugzilla.redhat.com/show_bug.cgi?id=438225 Bugzilla bug 438225] for complete information. This change will allow packages to provide GStreamer capabilities.  Desktop technologies like Totem and PackageKit can detect the need for those capabilities, and interact with the user accordingly.
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 [https://bugzilla.redhat.com/show_bug.cgi?id=438225 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.
This feature is a precursor to a more thorough refactoring into a generic framework for these types of additions.
Line 24: Line 26:


Requires:
Requires:
* Patch to the rpm-build configuration.
* Patch to the rpm-build configuration (done)
* Patch to <code>gstreamer-devel</code> to enable these provides when building packages.
* Patch to <code>gstreamer-devel</code> to enable these provides when building packages. (building)
* ''New versions of PK, Totem, ??? to detect file requirements and communicate via D-Bus?''
* Rebuilding of packages using <code>gstreamer-devel</code>. (building)
* Rebuilding of packages using <code>gstreamer-devel</code>.
* Writing small application to bridge between GStreamer applications and PackageKit (done, just need to get it in rawhide)


== Test Plan ==
== Test Plan ==


After code patching is complete:
# 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.


== User Experience ==
== User Experience ==


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 the provides that codec.  This implementation of codec support is completely vendor neutral and relies on package providers to rebuild their packages.
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.
 
[[Image:gpk-client-codecs.png]]


== Dependencies ==
== Dependencies ==


* Updated gstreamer
* Updated gstreamer and assorted plugins
* Updated totem (?)
* Updated PackageKit (requires 0.3.4 to be installed)
* Updated PackageKit (?)


== Contingency Plan ==
== Contingency Plan ==


* None required. If the last changes are not completed, users and packagers are unaffected. (?)
* Still install codeina by default.


== Documentation ==
== Documentation ==
Line 59: Line 68:
----
----


[[Category:FeaturePageIncomplete]]
[[Category:FeatureAcceptedF10]]

Latest revision as of 14:10, 3 October 2008

Summary

Automated installation of GStreamer codecs provided by third-party repositories

Owner

Current status

  • Targeted release: Fedora 10
  • Last updated: 2008-10-03
  • Percentage of completion: 100%

Detailed Description

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.

Scope

Requires:

  • Patch to the rpm-build configuration (done)
  • Patch to gstreamer-devel to enable these provides when building packages. (building)
  • Rebuilding of packages using gstreamer-devel. (building)
  • Writing small application to bridge between GStreamer applications and PackageKit (done, just need to get it in rawhide)

Test Plan

  1. Install repository setup for a third-party repository containing gst-ffmpeg
  2. On a stock Fedora installation, try to play back a video in WMV format (something supported by gst-ffmpeg)
  1. Without installation a third-party repository, try playing back a video in WMV format
  1. With and without a third-party repository set up
  2. 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.

User Experience

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.

Dependencies

  • Updated gstreamer and assorted plugins
  • Updated PackageKit (requires 0.3.4 to be installed)

Contingency Plan

  • Still install codeina by default.

Documentation

Bugzilla bug 438225

Release Notes

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.