After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 169289 - Playbin should fallback on x11 when xvideo isn't available
Playbin should fallback on x11 when xvideo isn't available
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins
0.8.9
Other Linux
: Normal normal
: 0.8.9
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2005-03-05 13:31 UTC by Loïc Minier
Modified: 2005-09-01 11:47 UTC
See Also:
GNOME target: ---
GNOME version: 2.7/2.8


Attachments
Patch to fallback on x11 imagesink when xvimagesink creation fails (749 bytes, patch)
2005-03-05 13:32 UTC, Loïc Minier
rejected Details | Review

Description Loïc Minier 2005-03-05 13:31:19 UTC
Hi,

this is inspired of Debian bug <http://bugs.debian.org/296848> where totem fails
to play anything with an error dialog.

Since it seems totem uses "playbin", I guess the underlying problem is that
playbin doesn't fallback on x11 imagesink (ximagesink) when xvideo isn't
available or is busy (such as zero or only one xv window possible).

I'll attach a trivial patch which attemps to create a ximagesink when
xvimagesink creation returns NULL in playbin.

I'm unsure on how this will resolve the issue since the GConf preferences might
point to using xvimagesink... but it's a step forward.  :-P
Comment 1 Loïc Minier 2005-03-05 13:32:01 UTC
Created attachment 38297 [details] [review]
Patch to fallback on x11 imagesink when xvimagesink creation fails
Comment 2 Ronald Bultje 2005-03-05 14:10:32 UTC
Comment on attachment 38297 [details] [review]
Patch to fallback on x11 imagesink when xvimagesink creation fails

Hi, the idea isn't so bad, but it's not what we want. Specifically, if Xv is
not available but the plugin isn't installed, it'll fail.

I've added an 'autovideosink' to CVS a few days ago which fixes this by
explicitely setting the element to READY for testing. If that fails, it tests
another one, all this rank-based (so it could work for any kind of videosink,
not just xv/x). We intend to make this the default sink in gconf. There's also
a 'gconfvideosink' that totem would then use (instead of
gst_gconf_get_default_video_sink()), so that it doesn't need to hardlink to the
gstgconf library anymore.
Comment 3 Loïc Minier 2005-03-05 20:35:35 UTC
That's perfect, this how I would have ideally imaginated it, and you made it
true.  ;)

I did not understand correctly: "if Xv is
not available but the plugin isn't installed, it'll fail".

From the context, I think it's permitted to gst_element_factory_make() an
element which has the corresponding installed, but not to initialize it until
the READY state, which would mean in this particular case that my patch was not
enough to detect the abscence of xv adapters, merely the abscence of the
xvimagesink plugin / element factory.

Sorry, I'll try to do better next time.  :-/
Comment 4 Ronald Bultje 2005-03-06 11:18:11 UTC
That sentence is wrong, I should have said: "if Xv isn't available, but the
plugin is installed, ...". gst_element_factory_make() will still return a valid
object, so yuor patch wouldn't work in that case. Anyway, no bad there, thanks
for the patch, it's good that people poke us about missing features. Thanks for
that.

Anyway, I'll keep this bug open so I remember to change the gconf schemas to use
autoaudiosink as default. We should also test it on OS X, Solaris and the like.
Comment 5 Ronald Bultje 2005-03-10 15:27:00 UTC
Added such code to CVS.
Comment 6 Chris Hubick 2005-09-01 06:00:05 UTC
The release notes state this bugfix made it into GStreamer Plugins 0.8.9, so
does anyone know what my problem might be?

Using Fedora Core 4 (guest of VMware 5):

[hubick@FC4a ~]$ rpm -qa | grep gst
gstreamer-ffmpeg-0.8.5-0.gst.1.4
gstreamer-plugins-0.8.10-0.gst.1.4
gstreamer-0.8.10-1
[hubick@FC4a ~]$ xvinfo
X-Video Extension version 2.2
screen #0
 no adaptors present
[hubick@FC4a ~]$ totem --gst-debug-level=2
ERROR (0x8246080 - 312653:52:48.501834000)     xvimagesink( 5355)
xvimagesink.c(740):gst_xvimagesink_get_xv_support:<xvimagesink0> No port available
[hubick@FC4a ~]$
Comment 7 Loïc Minier 2005-09-01 07:07:29 UTC
Maybe /system/gstreamer/0.8/default/videosink still set to xvimagesink?

(At least totem seems to use it:
src/bacon-video-widget-gst.c:2990
video_sink = gst_gconf_get_default_video_sink ();
)
Comment 8 Ronald Bultje 2005-09-01 11:47:42 UTC
It was removed from 0.8.9 at the last minute because it has issues. It is
enabled by default in 0.9. I don't think this bug will ever be fixed in
GStreamer 0.8.x.