EasyCodecInstallation

Differences between revisions 11 and 12
Revision 11 as of 2006-06-16 17:34:34
Size: 5352
Editor: 84-122-255-249
Comment: Comment about localization & translation of the installation instructions
Revision 12 as of 2006-06-19 12:59:07
Size: 5604
Editor: ALagny-109-1-2-23
Comment:
Deletions are marked like this. Additions are marked like this.
Line 23: Line 23:
This assistant appears on an as-needed basis, and may also be presented by an application's first run if all supported plugins are not installed. This assistant appears on an as-needed basis, and may also be presented by an application's first run if all supported plugins are not installed. That is, when the player encounters a codec which it is unable to play without additional packages, it will display the assistant to the user. The assistant will include a database mapping codecs to packages, so that it can find an appropriate package to install if one is available. If a package is known to provide support for a codec, but the package is not available from any known source, it should be displayed but grayed out.
Line 25: Line 25:
Bracketed items below are either buttons or conditional text which varies based on if a user is:
 * online
 * a member of the group admin
 * starting a program or trying to perform an action
If the user is not a member of the admin group, and is thus unable to install packages, the program should behave as normal and display an error (not launch the assistant).
Line 30: Line 27:
''This application [supports the following multimedia formats through the use of plugins/requires the following plugins to [run / play this file / compress this file / whatever]][, which you are unable to install. Start [program] as an adminstrative user to install these plugins].'' ''This application requires additional plugins to use this file.''
Line 32: Line 29:
[''Certain countries have laws making the installation of these plugins illegal. _link_ may help in determining what steps, if any, must be taken by you to legally install these plugins in your jurisdiction.''] [''Certain countries may have laws making the installation of these plugins illegal. _link_ may help in determining what steps, if any, must be taken by you to legally install these plugins in your jurisdiction.'']
Line 34: Line 31:
|| Plugin || Install || Read Licence ||
||Quicktime Audio || [checkbox, checked / browse button if offline] || [read licence] ||
||Quicktime Video || [checkbox, checked / browse button if offline] || [read licence] ||
|| || Optional Plugins || ||
||Quicktime Audio || [checkbox, unchecked / browse button if offline] || [read licence] ||
||Quicktime Audio || [checkbox, unchecked / browse button if offline] || [read licence] ||
|| Plugin || Install ||
|| Frobinator Audio || [checkbox] ||
|| Frobinator Video || [checkbox] ||
Line 41: Line 35:
''[Install] [Do nothing]''
Line 42: Line 37:
''[[checkbox] Disable this assistant for all non-administrative users of this computer'']]

''[checkbox] Ask me again next time I run [program]''

''[[continue, grayed until all required entries are checked/located] [cancel]]''

If password authentication is failed for a user, the dialog will not cancel, but ''ask me again'' will be checked'

The disable this assistant option will disable the assistant for all applications and all non-administrative users.
It should not be necessary to restart the application after the plugin has been installed.
Line 54: Line 41:
1. All non free codecs need to be split into individual packages on a licence-by-licence basis with the existing by package replaced by a metapackage. We must compile a database of the codecs which are supported by each package. This list is believed to be short enough that we may compile the database by hand in order to ship it with the package. It may also be feasible to automatically generate it based on the gstreamer registry.
Line 58: Line 45:
=== Data preservation and migration === There is some work being done on this upstream for Rhythmbox: See [http://bugzilla.gnome.org/show_bug.cgi?id=338308 Gnome bug 338308]. This is very similar to our approach, but we would prefer to implement it directly in gstreamer, in order to support other applications as well.

Guadalinex includes a program called hermes which uses dbus to request installation of software. We may be able to reuse this code.
Line 62: Line 51:
== BoF agenda and discussion == In order for most of the interesting packages to be available, multiverse must be enabled. The matter of arranging for these packages to be installed, regardless of the apt configuration, will be addressed in a separate spec (marked as a dependency of this one).

We must examine hermes from Guadalinex and determine whether it will meet our needs. There was an older Ubuntu spec which described a very similar idea, but we can't find it just now.

Line 77: Line 70:
 ''There is some work being done on this upstream for Rhythmbox - the approach would require plugins/patches for all applications. See [http://bugzilla.gnome.org/show_bug.cgi?id=338308 Gnome bug 338308]

Summary

Messages about unsupported gstreamer formats are currently unhelpful. This utility assists users in installing the packages needed to use those formats.

Use cases

  • Frederic is a new Linux user on DSL. He attempts to open an mp3 file through a gstreamer application and receives an assistant to help him download and install the needed codecs.
  • Vincent, also new to Linux, is not on the internet. He attempts to open a QuickTime file and is given a different assistant with instructions on how to download the files he needs from an official Ubuntu mirror, and an offer to locate file if he already has a copy handy.

Scope

All gstreamer applications

Design

This assistant appears on an as-needed basis, and may also be presented by an application's first run if all supported plugins are not installed. That is, when the player encounters a codec which it is unable to play without additional packages, it will display the assistant to the user. The assistant will include a database mapping codecs to packages, so that it can find an appropriate package to install if one is available. If a package is known to provide support for a codec, but the package is not available from any known source, it should be displayed but grayed out.

If the user is not a member of the admin group, and is thus unable to install packages, the program should behave as normal and display an error (not launch the assistant).

This application requires additional plugins to use this file.

[Certain countries may have laws making the installation of these plugins illegal. _link_ may help in determining what steps, if any, must be taken by you to legally install these plugins in your jurisdiction.]

Plugin

Install

Frobinator Audio

[checkbox]

Frobinator Video

[checkbox]

[Install] [Do nothing]

It should not be necessary to restart the application after the plugin has been installed.

Implementation

We must compile a database of the codecs which are supported by each package. This list is believed to be short enough that we may compile the database by hand in order to ship it with the package. It may also be feasible to automatically generate it based on the gstreamer registry.

Code

There is some work being done on this upstream for Rhythmbox: See [http://bugzilla.gnome.org/show_bug.cgi?id=338308 Gnome bug 338308]. This is very similar to our approach, but we would prefer to implement it directly in gstreamer, in order to support other applications as well.

Guadalinex includes a program called hermes which uses dbus to request installation of software. We may be able to reuse this code.

Outstanding issues

In order for most of the interesting packages to be available, multiverse must be enabled. The matter of arranging for these packages to be installed, regardless of the apt configuration, will be addressed in a separate spec (marked as a dependency of this one).

We must examine hermes from Guadalinex and determine whether it will meet our needs. There was an older Ubuntu spec which described a very similar idea, but we can't find it just now.

Suggestions from VideoPlaybackRoadmap

ATM, when you try to play an unhandled video with totem, it tells you that he cannot found the corresponding plugin. What I suggest he must do is :

- Tell you what format you are trying to view and what plugin you need. - If available with apt-get, it must suggest "Install this plugin now", so you can install the corresponding plugin in one click. - If not available via apt-get for known issues (patents), it must explain why it is not avalaible and offer a "click here to know more" that send you to a page on this wiki (or on the website), telling you how to install w32codecs, libdvdcss, ... (it can perhaps download and install it automatically after asking you if you are in a country with software patents)

  • The web (or wiki) page is fine for me IF AND ONLY IF this solution implicates an easy localization & translation of the installation instructions. IMHO, this solution is not a solution if the non-English user needs to read English instructions about installing weird things like w32codecs, libdvdcss... -- RicardoPérezLópez

Another way is to have a standalone application that manage gstreamer plugins

- What about developing "dummy" plugins which somehow trigger the display of a message explaining the problem? It could be possible to have fake libraries which either play beck an audio clip or video clip (these things are either decoding audio, video, or both) with directions as to what the problem is, and the individual plugin packages could simply obsolete the dummy plugins / libraries... It seems reasonable to assume that the user will have sound support if he's trying to play back a sound file, and video support if he's trying to play back a video file.

  • This would cause some fairly large issues with many GStreamer-based applications that do more than simple playback. It would (for example) confuse music players that require users to "import" tracks before they can be played. -- JamesLivingston

also see DesktopTeam/CommonInstallHook --SamTygier


CategorySpec

EasyCodecInstallation (last edited 2008-08-06 16:27:02 by localhost)