GNOME Bugzilla – Bug 688803
playbin: converters don't work? not-negotiated error with non-1/1 PAR and ximagesink
Last modified: 2013-05-28 20:07:39 UTC
gst-launch-1.0 playbin uri=dvd:///home/tpm/samples/Dvds/dvd-test-futurama-menu-hover-deadlock/VIDEO_TS/ ERROR: from element /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:abin/GstAutoAudioSink:audiosink/GstPulseSink:audiosink-actual-sink-pulse: The stream is in the wrong format. Additional debug info: gstaudiobasesink.c(1971): gst_audio_base_sink_render (): /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:abin/GstAutoAudioSink:audiosink/GstPulseSink:audiosink-actual-sink-pulse: sink not negotiated. $ gst-launch-1.0 playbin uri=file:///home/tpm/foo.mkv video-sink=ximagesink Setting pipeline to PAUSED ... Pipeline is PREROLLING ... Redistribute latency... ERROR: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstMatroskaDemux:matroskademux0: GStreamer encountered a general stream error. Additional debug info: matroska-demux.c(4648): gst_matroska_demux_loop (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstMatroskaDemux:matroskademux0: stream stopped, reason not-negotiated (Works fine with xvimagesink of course)
Created attachment 229609 [details] playbin-not-negotiated.log.xz
Bug #686459 might be related.
This seems to work now: gst-launch-1.0 playbin uri=http://mirrorblender.top-ix.org/movies/sintel-1280-surround.mp4 video-sink=ximagesink
(In reply to comment #3) > This seems to work now: > gst-launch-1.0 playbin > uri=http://mirrorblender.top-ix.org/movies/sintel-1280-surround.mp4 > video-sink=ximagesink That works here as well, also as a local file, but it still fails for e.g. an mkv file I have, and the dvd menu (though that might be something else, as it's audio).
I'm also experiencing this with DVDs: gst-launch-1.0 playbin uri=dvd:///dev/cdrom ... Setting pipeline to PLAYING ... New clock: GstSystemClock ERROR: from element /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:abin/GstAutoAudioSink:audiosink/GstPulseSink:audiosink-actual-sink-pulse: The stream is in the wrong format. Additional debug info: gstaudiobasesink.c(1971): gst_audio_base_sink_render (): /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:abin/GstAutoAudioSink:audiosink/GstPulseSink:audiosink-actual-sink-pulse: sink not negotiated. Execution ended after 143897 ns. ... gst-launch-0.10 can play the DVD fine (unfortunately totem is using the newer gstreamer).
> This seems to work now: > > gst-launch-1.0 playbin > uri=http://mirrorblender.top-ix.org/movies/sintel-1280-surround.mp4 > video-sink=ximagesink It appears the reason this works is because that file has a 1/1 pixel-aspect-ratio for the video. It fails with files with non-1/1 par, because the playsink videoconverter bin is using the 'identity' path instead of the videoconvert ! videoscale path for some reason. An additional observation: everything works fine with the deinterlace flag removed (e.g. just flags=video). To reproduce: gst-launch-1.0 playbin uri=http://people.freedesktop.org/~tpm/samples/bbcnews2.m2t video-sink=ximagesink
Simpler pipeline to reproduce the issue: gst-launch-1.0 videotestsrc num-buffers=1 ! video/x-raw,format=I420,pixel-aspect-ratio=11/10 ! sink.video_raw_sink playsink name=sink video-sink='appsink caps=video/x-raw,width=320,height=240,framerate=10/1,pixel-aspect-ratio=1/1' Josep investigated this and found that adding a pixel-aspect-ratio field to videoscale's source pad template fixes this, but I would still like to understand what the actual issue is, I believe that fix just works around the issue.
commit 9084bc151be66c7271a5b3679e0e3dc653e96fb2 Author: Sebastian Dröge <sebastian.droege@collabora.co.uk> Date: Thu Mar 21 13:33:44 2013 +0100 playsinkconvertbin: Make sure to return all allowed caps in the GET_CAPS query Add all the caps that we can convert to to the filter caps, otherwise downstream might just return EMPTY caps because it doesn't handle the filter caps but we could still convert to these caps, causing us to return EMPTY caps although conversion would be possible. https://bugzilla.gnome.org/show_bug.cgi?id=688803
Did this fix make it into 1.0.7? I'm still hitting this bug there.
Indeed still broken in 1.0.7 but not git master, although the above patch was backported to 1.0.7
One missing part is this: commit ec0d03d2395bbfb9cf40702eeb62b9e46109bd06 Author: Tim-Philipp Müller <tim.muller@collabora.co.uk> Date: Tue Feb 19 11:14:11 2013 +0000 dvbsuboverlay: don't forward CAPS event from subtitle pad May results in not-negotiated flow errors otherwise.
And this: commit 4137391174087a72da6fe3e8828ca7e58c3e4fc9 Author: Sebastian Dröge <sebastian.droege@collabora.co.uk> Date: Wed Feb 13 10:46:37 2013 +0100 structure: Make sure that subsets have all fields of the superset "video/x-h264,parsed=(boolean)true" is not a superset of "video/x-h264,stream-format=(string)byte-stream,alignment=(string)nal" for example. https://bugzilla.gnome.org/show_bug.cgi?id=693365
Hrm, I just hope this doesn't cause any other issues, I think I didn't cherry-pick it into 1.0 on purpose back then because I felt it was too risky: > And this: > > commit 4137391174087a72da6fe3e8828ca7e58c3e4fc9 > Author: Sebastian Dröge <sebastian.droege@collabora.co.uk> > Date: Wed Feb 13 10:46:37 2013 +0100 > > structure: Make sure that subsets have all fields of the superset > > "video/x-h264,parsed=(boolean)true" is not a superset of > "video/x-h264,stream-format=(string)byte-stream,alignment=(string)nal" > for example. > > https://bugzilla.gnome.org/show_bug.cgi?id=693365
(In reply to comment #13) > Hrm, I just hope this doesn't cause any other issues, I think I didn't > cherry-pick it into 1.0 on purpose back then because I felt it was too risky: I'm not aware of any that were not detected the few days after this commit (mostly in unit tests)... and nothing appearing for 3 months is a good sign, considering how many people are using git master currently.
True, should be ok, esp. after you picked the other fixes related to that.