GNOME Bugzilla – Bug 136179
totem/gst-player/libgstplay doesn't work with ximagesink
Last modified: 2004-12-22 21:47:04 UTC
Try ximagesink instead of xvimagesink. You'll see what I mean. I get a 16x16 window displayed, no matter what. Proper gst-launch testcase for Dave/Benjamin to reproduce: gst-launch videotestsrc ! ffcolorspace ! videoscale ! ximagesink This one works, though: gst-launch videotestsrc ! videoscale ! ffcolorspace ! ximagesink (Assigned to plugins becayse I assume it's a plugin capsnego error... Might as well be a player or core bug, though...)
As always, if you don't like the default fixation, you need to provide a fixate function in your application. The following recommended pipeline works well, btw: gst-launch-0.7 videotestsrc ! video/x-raw-yuv, width=320, height=240, framerate=30.0 ! ffcolorspace ! videoscale ! ximagesink
No, in this case, videoscale should passthrough the width/height. Videoscale should *only* rescale if requested. Default should be passthrough.
And don't forget that even if you're right, gst-player is still bugged because it doesn't provide an application fixation function... The window is 16x16. That's a bug. :).
In the case you list as buggy, videoscale _is_ doing a passthrough. One side decided on 16x16, and convinced the other side to use the same.
FWIW, the best way to fix stuff like this is to call gst_pad_renegotiate() on one of the later links in a video pipeline. For example, gstplay should probably call it on the link before $(gconf.videosink). And the app should use the fixate signal to encourage the best format.
I've noticed your fixes and they didn't help. FWIW, I've tracked the bug down to the switch element. Giving that a closer look, it seems that switch doesn't do any negotiation at all, which explains a lot. Removing switch (replacing it by identity) in the gstplay pipeline fixed totem and gst-player for me.
Created attachment 25278 [details] [review] obvious patch
I'm not saying this is *the* proper fix (therefore, I'm not using the PATCH keyword). But this makes stuff work for me. It's more useful to fix the switch element, but I'll leave that decision on what/how to Julien, or at least wait so he can comment on it.
Apparently, my switch was bugged locally. Dave thinks the other pipeline is not a bug but a feature, so close...