From: Sjoerd Op 't L. <sj...@in...> - 2008-11-12 08:11:12
|
Hi Eric, Thanks for your quick response. In fact my problem is with osxaudiosrc, so let's focus on that element. In the source code of osxaudiosrc, I found this "Example launch line" gst-launch -v -m osxaudiosrc ! fakesink Which generates (...)osxaudiosrc0: Could not negotiate format. Apparently, either (a) there is no format that satisfies the pads of osxaudiosrc and fakesink, or (b) there are multiple formats that satisfy the pads of osxaudiosrc and fakesink (is this reasoning correct?). Adding audioconvert ! audioresample does not help: gst-launch -v -m osxaudiosrc ! audioconvert ! audioresample ! fakesink Also results in (...)osxaudiosrc0: Could not negotiate format. Perhaps I should force the format: gst-launch -v -m osxaudiosrc ! audioconvert ! audioresample ! audio/ x-raw-float,rate=44100,channels=2,width=32,depth=32 ! fakesink gst-launch -v -m osxaudiosrc ! audio/x-raw- float,rate=44100,channels=2,width=32,depth=32 ! audioconvert ! audioresample ! audio/x-raw- float,rate=44100,channels=2,width=32,depth=32 ! fakesink Both result in (...)osxaudiosrc0: Could not negotiate format. For completeness I added the complete output at the bottom of this e-mail. Thanks in advance for any suggestions, Sjoerd Op 't Land Op 12 nov 2008, om 02:29 heeft Eric Zhang het volgende geschreven: > Hi, gstreamer-devel: > > Actually, I don't get what your problem is. Maybe this is > because a language limitation. if you wanna use osxaudiosink, add > converter or any other filter elements into your pipeline, otherwise > the not-negotiation error occurs. This is the sample pipeline from > osxaudiosink's manual: > > gst-launch -v filesrc location=sine.ogg ! oggdemux ! vorbisdec ! > audioconvert ! audioresample ! osxaudiosink > > I think your can read gstreamer developer guide and maybe you > will figure out the answer yourself while reading it. > > Eric Zhang > > > 2008/11/11 Sjoerd Op 't Land <sj...@in...> > Hello all, > > I am new to gstreamer, so please forgive me if the errors encountered > are due to my inexperience. I am running Mac OS 10.5.5 on a MacBook > Core 2 Duo and I compiled gstreamer, gst-plugins-base and gst-plugins- > good from cvs (0.10.21.1). > > To start off, I wanted to create an audio loopthrough. First, I tried > to get the output to work. With a little modification, I was able to > produce a sine: > > > gst-launch audiotestsrc ! audioconvert ! audio/x-raw- > float,channels=2,width=32,depth=32 ! osxaudiosink > > (My first attempt failed, I don't know whether this is expected > behaviour: > > gst-launch audiotestsrc ! osxaudiosink > Setting pipeline to PAUSED ... > Pipeline is PREROLLING ... > ERROR: from element /GstPipeline:pipeline0/ > GstAudioTestSrc:audiotestsrc0: Internal data flow error. > Additional debug info: > gstbasesrc.c(2292): gst_base_src_loop (): /GstPipeline:pipeline0/ > GstAudioTestSrc:audiotestsrc0: > streaming task paused, reason not-negotiated (-4) > ERROR: pipeline doesn't want to preroll. > Setting pipeline to NULL ... > FREEING pipeline ...) > > The reason I am mailing you, is that I can't seem to get osxaudiosrc > to function, tried various stream types and convert/resample options. > The command line suggested in the source code unfortunately does not > function: > > > gst-launch -v -m osxaudiosrc ! fakesink > Setting pipeline to PAUSED ... > ERROR: Pipeline doesn't want to pause. > Got Message from element "fakesink0" (state-changed): GstMessageState, > old-state=(GstState)GST_STATE_NULL, new- > state=(GstState)GST_STATE_READY, pending- > state=(GstState)GST_STATE_VOID_PENDING; > Got Message from element "osxaudiosrc0" (state-changed): > GstMessageState, old-state=(GstState)GST_STATE_NULL, new- > state=(GstState)GST_STATE_READY, pending- > state=(GstState)GST_STATE_VOID_PENDING; > Got Message from element "pipeline0" (state-changed): GstMessageState, > old-state=(GstState)GST_STATE_NULL, new- > state=(GstState)GST_STATE_READY, pending- > state=(GstState)GST_STATE_PAUSED; > Got Message from element "osxaudiosrc0" (error): GstMessageError, > gerror=(GstGError)(NULL), debug=(string)"gstbasesrc.c\(2484\):\ > gst_base_src_start\ \(\):\ /GstPipeline:pipeline0/ > GstOsxAudioSrc:osxaudiosrc0:\012Check\ your\ filtered\ caps\,\ if\ > any"; > ERROR: from element /GstPipeline:pipeline0/ > GstOsxAudioSrc:osxaudiosrc0: Could not negotiate format > Additional debug info: > gstbasesrc.c(2484): gst_base_src_start (): /GstPipeline:pipeline0/ > GstOsxAudioSrc:osxaudiosrc0: > Check your filtered caps, if any > Setting pipeline to NULL ... > FREEING pipeline ... > > Thanks in advance for any suggestions. Again, I apologise beforehand > if this is an error of mine, due to my inexperience with GStreamer. > > Best regards, > Sjoerd Op 't Land ========= Output listing 1 ========= $ gst-launch -v -m osxaudiosrc ! fakesink Setting pipeline to PAUSED ... ERROR: Pipeline doesn't want to pause. Got Message from element "fakesink0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new- state=(GstState)GST_STATE_READY, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "osxaudiosrc0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new- state=(GstState)GST_STATE_READY, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "pipeline0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new- state=(GstState)GST_STATE_READY, pending- state=(GstState)GST_STATE_PAUSED; Got Message from element "osxaudiosrc0" (error): GstMessageError, gerror=(GstGError)(NULL), debug=(string)"gstbasesrc.c\(2484\):\ gst_base_src_start\ \(\):\ /GstPipeline:pipeline0/ GstOsxAudioSrc:osxaudiosrc0:\012Check\ your\ filtered\ caps\,\ if\ any"; ERROR: from element /GstPipeline:pipeline0/ GstOsxAudioSrc:osxaudiosrc0: Could not negotiate format Additional debug info: gstbasesrc.c(2484): gst_base_src_start (): /GstPipeline:pipeline0/ GstOsxAudioSrc:osxaudiosrc0: Check your filtered caps, if any Setting pipeline to NULL ... FREEING pipeline ... ========= Output listing 2 ========= $ gst-launch -v -m osxaudiosrc ! audioconvert ! audioresample ! fakesink Setting pipeline to PAUSED ... ERROR: Pipeline doesn't want to pause. Got Message from element "fakesink0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new- state=(GstState)GST_STATE_READY, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "audioresample0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new- state=(GstState)GST_STATE_READY, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "audioconvert0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new- state=(GstState)GST_STATE_READY, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "osxaudiosrc0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new- state=(GstState)GST_STATE_READY, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "pipeline0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new- state=(GstState)GST_STATE_READY, pending- state=(GstState)GST_STATE_PAUSED; Got Message from element "audioresample0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_READY, new- state=(GstState)GST_STATE_PAUSED, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "audioconvert0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_READY, new- state=(GstState)GST_STATE_PAUSED, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "osxaudiosrc0" (error): GstMessageError, gerror=(GstGError)(NULL), debug=(string)"gstbasesrc.c\(2484\):\ gst_base_src_start\ \(\):\ /GstPipeline:pipeline0/ GstOsxAudioSrc:osxaudiosrc0:\012Check\ your\ filtered\ caps\,\ if\ any"; ERROR: from element /GstPipeline:pipeline0/ GstOsxAudioSrc:osxaudiosrc0: Could not negotiate format Additional debug info: gstbasesrc.c(2484): gst_base_src_start (): /GstPipeline:pipeline0/ GstOsxAudioSrc:osxaudiosrc0: Check your filtered caps, if any Setting pipeline to NULL ... FREEING pipeline ... ========= Output listing 3 ========= $ gst-launch -v -m osxaudiosrc ! audioconvert ! audioresample ! audio/ x-raw-float,rate=44100,channels=2,width=32,depth=32 ! fakesink Setting pipeline to PAUSED ... ERROR: Pipeline doesn't want to pause. Got Message from element "fakesink0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new- state=(GstState)GST_STATE_READY, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "capsfilter0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new- state=(GstState)GST_STATE_READY, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "audioresample0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new- state=(GstState)GST_STATE_READY, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "audioconvert0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new- state=(GstState)GST_STATE_READY, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "osxaudiosrc0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new- state=(GstState)GST_STATE_READY, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "pipeline0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new- state=(GstState)GST_STATE_READY, pending- state=(GstState)GST_STATE_PAUSED; Got Message from element "capsfilter0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_READY, new- state=(GstState)GST_STATE_PAUSED, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "audioresample0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_READY, new- state=(GstState)GST_STATE_PAUSED, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "audioconvert0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_READY, new- state=(GstState)GST_STATE_PAUSED, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "osxaudiosrc0" (error): GstMessageError, gerror=(GstGError)(NULL), debug=(string)"gstbasesrc.c\(2484\):\ gst_base_src_start\ \(\):\ /GstPipeline:pipeline0/ GstOsxAudioSrc:osxaudiosrc0:\012Check\ your\ filtered\ caps\,\ if\ any"; ERROR: from element /GstPipeline:pipeline0/ GstOsxAudioSrc:osxaudiosrc0: Could not negotiate format Additional debug info: gstbasesrc.c(2484): gst_base_src_start (): /GstPipeline:pipeline0/ GstOsxAudioSrc:osxaudiosrc0: Check your filtered caps, if any Setting pipeline to NULL ... FREEING pipeline ... ========= Output listing 4 ========= $ gst-launch -v -m osxaudiosrc ! audio/x-raw- float,rate=44100,channels=2,width=32,depth=32 ! audioconvert ! audioresample ! audio/x-raw- float,rate=44100,channels=2,width=32,depth=32 ! fakesink Setting pipeline to PAUSED ... ERROR: Pipeline doesn't want to pause. Got Message from element "fakesink0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new- state=(GstState)GST_STATE_READY, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "capsfilter1" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new- state=(GstState)GST_STATE_READY, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "audioresample0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new- state=(GstState)GST_STATE_READY, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "audioconvert0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new- state=(GstState)GST_STATE_READY, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "capsfilter0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new- state=(GstState)GST_STATE_READY, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "osxaudiosrc0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new- state=(GstState)GST_STATE_READY, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "pipeline0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_NULL, new- state=(GstState)GST_STATE_READY, pending- state=(GstState)GST_STATE_PAUSED; Got Message from element "capsfilter1" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_READY, new- state=(GstState)GST_STATE_PAUSED, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "audioresample0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_READY, new- state=(GstState)GST_STATE_PAUSED, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "audioconvert0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_READY, new- state=(GstState)GST_STATE_PAUSED, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "capsfilter0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_READY, new- state=(GstState)GST_STATE_PAUSED, pending- state=(GstState)GST_STATE_VOID_PENDING; Got Message from element "osxaudiosrc0" (error): GstMessageError, gerror=(GstGError)(NULL), debug=(string)"gstbasesrc.c\(2484\):\ gst_base_src_start\ \(\):\ /GstPipeline:pipeline0/ GstOsxAudioSrc:osxaudiosrc0:\012Check\ your\ filtered\ caps\,\ if\ any"; ERROR: from element /GstPipeline:pipeline0/ GstOsxAudioSrc:osxaudiosrc0: Could not negotiate format Additional debug info: gstbasesrc.c(2484): gst_base_src_start (): /GstPipeline:pipeline0/ GstOsxAudioSrc:osxaudiosrc0: Check your filtered caps, if any Setting pipeline to NULL ... FREEING pipeline ... |