[packagekit] GStreamer Structure

Richard Hughes hughsient at gmail.com
Sun Dec 7 00:49:03 PST 2008


On Sat, 2008-12-06 at 15:49 -0800, Sebastian Heinlein wrote:
> recently the provided Gstreamer plugins have been added to the package
> meta data in Debian and therefor in Ubuntu too.

Great news.

> When making use of this in the APT backend, I was wondering about all
> the structure rewriting which happens.
> 
> This is an example request of GStreamer which it gives to the installer
> plugin (in this case requesting for a mp3 decoder):
> 
> gstreamer|0.10|totem|MPEG-1 Layer 3 (MP3) decoder|decoder-audio/mpeg,
> mpegversion=(int)1, layer=(int)3 (MPEG Layer 3 (MP3) decoder
> 
> An here is what PackageKit gives to the backend:
> 
> gstreamer0.10(decoder-audio/mpeg)(mpgversion=1)(layer=3)

This is the most concise string we could use as a descriptor without the
string description. We also use this as the "provide" string used for
the packages in Fedora.

> What I need is to get the Gst object type and the structure to convert
> it into caps again:
> 
> Package.hasGstreamerPlugin("decoder", "audio/mpeg, version=1, layer=3")

What format is the package metadata in? Can't you just use a flat string
like "decoder-audio/mpeg, mpgversion=1, layer=3" -- or do you have to
break the decoder field up?

> Could we try to find a format which would avoid all this rewriting?

To be honest, I think all the backends are going to implement this
different ways, and encode the data slightly differently, and that we
just have to document the different formats.

Richard.





More information about the PackageKit mailing list