[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