GNOME Bugzilla – Bug 144436
opt / oggmux problem (endless interrupt event loop)
Last modified: 2004-12-22 21:47:04 UTC
Pipeline: gst-launch-0.8 filesrc location="out.wav" ! typefind ! spider ! audioconvert ! rawvorbisenc quality=0.8 ! oggmux ! filesink location=foo.ogg Runs forever, never writes a single byte to foo.ogg. This used to work a couple of days ago. Works fine with basicgthread and entryomega scheduler (well, actually the vorbisenc segfaults with basicgthread when it gets the EOS, but that's another issue I suppose). --gst-debug-level=5 output attached. Cheers -Tim
Created attachment 28736 [details] debug output
I should add that the above pipeline generally works, even with opt, it just fails in a few cases. There's nothing special about the input stream of the cases where it fails though, as far as I can see. Cheers -Tim
can you try and reproduce the problem without spider in the pipeline ?
Tim, ping ?
Sorry, I've just moved home and only got my internet connectivity back yesterday. If I remember correctly, I was able to reproduce the problem without spider. Will re-check properly and provide logs on Monday if I don't forget. Cheers -Tim
I know why I used spider. With a pipeline like gst-launch-0.8 filesrc location=lj.wav ! wavparse ! audioconvert ! rawvorbisenc quality=0.8 ! oggmux ! filesink location=lj.ogg I used to get something like: RUNNING pipeline ... ERROR (0x8050948 - 302988:39:28.190238000) audioconvert(10879) gstaudioconvert.c(261):gst_audio_convert_chain:<audioconvert0> Sink pad (connected to wavparse0:src) not negotiated before chain function ERROR: from element /pipeline0/audioconvert0: Internal GStreamer error: negotiation problem. File a bug. Additional debug info: gstaudioconvert.c(261): gst_audio_convert_chain: /pipeline0/audioconvert0: Sink pad (connected to wavparse0:src) not negotiated before chain function With spider I got it working back then. With current CVS, things work fine using something like: gst-launch-0.8 filesrc location=lj.wav ! wavparse ! audioconvert ! rawvorbisenc quality=0.8 ! oggmux ! filesink location=lj.ogg which used to fail in the past. However, now things fail using spider :) Cheers -Tim
Created attachment 29932 [details] debug output with spider Attached the debug output for the following pipeline: gst-launch-0.8 -v filesrc location=lj.wav ! spider ! audioconvert ! rawvorbisenc quality=0.8 ! oggmux ! fakesink Here's the short output when running the pipeline with -v RUNNING pipeline ... /pipeline0/filesrc0.src: active = TRUE /pipeline0/filesrc0.src: caps = application/octet-stream /pipeline0/spider0/sink_ident.sink: caps = application/octet-stream /pipeline0/spider0/sink_ident.sink: active = TRUE /pipeline0/spider0/sink_ident.src: active = TRUE /pipeline0/spider0/src_0.sink: active = TRUE /pipeline0/spider0/src_0.src: active = TRUE /pipeline0/audioconvert0.sink: active = TRUE /pipeline0/audioconvert0.src: active = TRUE /pipeline0/vorbisenc0.sink: active = TRUE /pipeline0/vorbisenc0.src: active = TRUE /pipeline0/vorbisenc0.src: caps = audio/x-vorbis /pipeline0/oggmux0.sink_787819414: caps = audio/x-vorbis /pipeline0/oggmux0.src: active = TRUE /pipeline0/oggmux0.sink_787819414: active = TRUE /pipeline0/oggmux0.src: caps = application/ogg /pipeline0/fakesink0.sink: caps = application/ogg /pipeline0/fakesink0.sink: active = TRUE /pipeline0/fakesink0: last-message = "chain ******* (fakesink0:sink)E (type: 14) 0x805dac8" /pipeline0/fakesink0: last-message = "chain ******* (fakesink0:sink)E (type: 14) 0x805dac8" /pipeline0/fakesink0: last-message = "chain ******* (fakesink0:sink)E (type: 14) 0x805dac8" /pipeline0/fakesink0: last-message = "chain ******* (fakesink0:sink)E (type: 14) 0x805dac8" /pipeline0/fakesink0: last-message = "chain ******* (fakesink0:sink)E (type: 14) 0x805dac8" /pipeline0/fakesink0: last-message = "chain ******* (fakesink0:sink)E (type: 14) 0x805dac8" /pipeline0/fakesink0: last-message = "chain ******* (fakesink0:sink)E (type: 14) 0x805dac8" /pipeline0/fakesink0: last-message = "chain ******* (fakesink0:sink)E (type: 14) 0x805dac8" /pipeline0/fakesink0: last-message = "chain ******* (fakesink0:sink)E (type: 14) 0x805dac8" /pipeline0/fakesink0: last-message = "chain ******* (fakesink0:sink)E (type: 14) 0x805dac8" /pipeline0/fakesink0: last-message = "chain ******* (fakesink0:sink)E (type: 14) 0x805dac8" ... Cheers -Tim
I forgot to add that the pipeline works fine with basicomega scheduler. Sorry for the flood. Cheers -Tim
Created attachment 33507 [details] [review] fix for interrupt event handling If your title is correct, then it's interrupt event handling, and it indeed fails there. The attached patch fixes it. Please see if this improves it.
Yes, your patch makes things work. Without the patch, I can still reproduce the reported mis-behaviour, using up-to-date gstreamer + plugins CVS HEAD. Cheers -Tim
applied.