[gst-devel] Bug in osxaudiosrc? (Mac OS 10.5.5)

Sjoerd Op 't Land sjoerd at intercue.nl
Wed Nov 12 09:11:00 CET 2008


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 <sjoerd at intercue.nl>
> 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 ...







More information about the gstreamer-devel mailing list