You are not logged in.

#26 2015-07-08 06:58:00

lmello
Member
From: Brazil
Registered: 2012-11-06
Posts: 300

Re: Cheese complains about missing cluttervideosink

lazysunbather wrote:

The bug occurs because the GStreamer plugins available in both clutter-gst2 and clutter-gst define the same GObject types, something that the GType system prohibits, as documented by the error message.

Whenever a plugin fails to load, the GStreamer library puts it on a blacklist in order to prevent it from being registered in the registry. This is why, in order to fix this issue, it is needed to :

  1. Remove clutter-gst from your system, leaving only clutter-gst2.

  2. Remove ~/.cache/gstreamer-1.0.

  3. Start any GStreamer application, for example cheese.

I think that clutter-gst2 should be added to clutter-gst's conflicts (and vice versa) in PKGBUILD in order to prevent such issues.

Read on for more details.

Although the names of the plugin files themselves are different between versions (namely libgstclutter-3.0.so and libgstclutter.so for versions 3 and 2, respectively), the elements they want to register with the GStreamer subsystem are the same as far as the GType system is involved. Since libgstclutter-3.0.so gets loaded first, it registers its own ClutterGstVideoSink (via the plugin initialization routine), which leads to the error when the later loaded libgstclutter.so wants to register its own one.

I haven't seen the fact that versions 2 and 3 of clutter-gst can't be used simultaneously in one GStreamer installation mentioned anywhere in its documentation, but looking at the code says just that (version 3 and version 2).

The plugin initialization function in version 3 only directly registers the "clutterautovideosink" element. However, the element's initialization function explicitly creates a ClutterGstVideoSink, which triggers its registration in GType due to it being the first time the type is used. This is why the later registration by the version 2 of the plugin fails.

hum version conflict?

Currently a gnome desktop of mine has 3 applications that depend on clutter-gst2 - cheese, sushi and empathy.

pacman -Qi on all three shows clutter-gst2 AND clutter-gst as dependencies.

alas, all Arch Linux packages that require clutter-gst2 also ask for clutter-gst - https://www.archlinux.org/packages/extr … tter-gst2/. Your suggestion (clutter-gst2 to be added to clutter-gst's conflicts and vice versa in the PKGBUILD's) makes sense - I filed a bug report https://bugs.archlinux.org/task/45586

Last edited by lmello (2015-07-08 07:25:01)


Fundamental Axiom of the Universe (aka Murphy's Law): Whatever can go wrong, will go wrong.
First Digital Deduction: Nothing obeys Murphy's Law so well as computers.
Second Digital Deduction: Everything go wrong at least once.
Third Digital Deduction: Things go wrong even when there's absolutely no possibility of anything go wrong.

Offline

#27 2015-07-08 20:37:38

lmello
Member
From: Brazil
Registered: 2012-11-06
Posts: 300

Re: Cheese complains about missing cluttervideosink

Solved: https://bugs.archlinux.org/task/45586

I tested with a new user, removed the file ~/.cache/gstreamer-1.0/registry.x86_64.bin and started Cheese with both clutter-gst and clutter-gst2 installed. No problems.

Last edited by lmello (2015-07-08 20:39:01)


Fundamental Axiom of the Universe (aka Murphy's Law): Whatever can go wrong, will go wrong.
First Digital Deduction: Nothing obeys Murphy's Law so well as computers.
Second Digital Deduction: Everything go wrong at least once.
Third Digital Deduction: Things go wrong even when there's absolutely no possibility of anything go wrong.

Offline

Board footer

Powered by FluxBB