GNOME Bugzilla – Bug 539601
[realvideodec] not-negotiated error if codec lib isn't found
Last modified: 2008-06-27 00:34:29 UTC
Trying to play: http://samples.mplayerhq.hu/real/spear.rm I get: $ gst-launch-0.10 playbin uri=file:///tmp/spear.rm Setting pipeline to PAUSED ... Pipeline is PREROLLING ... ERROR: from element /playbin0/decodebin0/rmdemux0: GStreamer encountered a general stream error. Additional debug info: rmdemux.c(943): gst_rmdemux_loop (): /playbin0/decodebin0/rmdemux0: stream stopped, reason not-negotiated ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... FREEING pipeline ... I don't get any errors saying the audio or video is unsupported, just an error. This happens with every rm file I try to play.
Can't reproduce it, this files is playing normal on my system with the latest CVS version of gstreamer.
I'm using the latest CVS of rmdemux. As well as: gstreamer-plugins-base-0.10.20-1.fc10.x86_64 gstreamer-plugins-good-0.10.8-7.fc10.x86_64 gstreamer-ffmpeg-0.10.4-1.lvn10.x86_64 gstreamer-plugins-ugly-0.10.8-1.lvn10.x86_64 gstreamer-plugins-bad-0.10.7-1.lvn9.x86_64
I guess it depends a bit on which decoder is used too. How about a GST_DEBUG=*:5 gst-launch-0.10 playbin uri=file:/// 2>&1 | tail -n 10000 > foo.log log or so?
Created attachment 113223 [details] log as requested
Created attachment 113255 [details] updated log With all the data, the other one was too verbose, and contained only the end of the output.
I think what happens is: realvideodec is plugged since it claims to support all real video versions, and then when the caps are set once it gets some data it finds that the required codec lib is missing and errors out. Which is a bit broken really, since it should only advertise the formats it can support from the start. I think this is fixed in -bad CVS though: 2008-06-13 Wim Taymans <wim.taymans@collabora.co.uk> * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_chain), (close_library), (open_library), (gst_real_audio_dec_probe_modules), (gst_real_audio_dec_getcaps), (gst_real_audio_dec_setcaps), (gst_real_audio_dec_init), (gst_real_audio_dec_change_state), (gst_real_audio_dec_finalize): Add raversions we can support on the caps. Refactor the loading of the real codecs like realvideo so that we can implement probing. Probe all supported formats by trying to load the .so files, only report the versions on the caps that we can actually load. * gst/real/gstrealvideodec.c: (gst_real_video_dec_chain), (gst_real_video_dec_getcaps), (gst_real_video_dec_setcaps), (open_library), (close_library), (gst_real_video_dec_probe_modules), (gst_real_video_dec_change_state), (gst_real_video_dec_init), (gst_real_video_dec_finalize), (gst_real_video_dec_class_init): * gst/real/gstrealvideodec.h: Change the loading of the library like the audio decoder. Probe the supported formats by trying to load the .so files and only report the versions on the caps that we can actually load.
Yep, that's it. It complains about missing codecs properly now.