[gst-devel] Problem with recording audio

Markus Westergren markus.westergren at orexis.se
Wed Jan 29 01:51:02 CET 2003


Hi Ronald, 

On Tuesday 28 January 2003 17:33, you wrote:
> Hi Markus,
>
> On Tue, 2003-01-28 at 16:52, Markus Westergren wrote:
> > If I try using OSS instead I can play audio but when I try to record
> > audio the tst.wav file is empty and the process eats all available CPU.
> >
> >    gst-launch osssrc device=/dev/dsp ! wavenc ! filesink location
> > =/tmp/tst.wav
> >
> > Is there anything I have missed? This worked with version 0.4.2 of
> > GStreamer and I noticed that there have been some changed to the valid
> > parameters to the OSS plugin.
> >
> > This have been tested on Debian Unstable with kernel 2.4.19
> > ALSA: 0.9.0rc6
> > GStreamer: 0.5.2 and CVS 0.7.0.1
>
> 0.5.2 or CVS? osssrc in CVS is fixed, the one in 0.5.2 is supposedly
> broken (some weirdo patch that shouldn't have been there).
>
Both 0.5.2 and the CVS version 0.7.0.1 from Jan 27 2003. Did a CVS update 
today and now osssrc is working. A wav file is created which can be played 
and the recorded sound sounds ok.

I get a new warning message, here are the output from the gst-launch command 
above:

INFO (11984: 0) Initializing GStreamer Core Library version 0.7.0.1 
INFO (11984: 0) CPU features: (c1c7f9ff) MMX 3DNOW MMXEXT 
registry: loaded user_registry in 0.000245 seconds
          (/home/markus/.gstreamer/registry.xml)
registry: loaded global_registry in 0.423228 seconds
          (/usr/local/var/cache/gstreamer-0.7/registry.xml)
GStreamer-INFO: 0 live buffer(s)
GStreamer-INFO: 0 live bufferpool(s)
GStreamer-INFO: 0 live event(s)
RUNNING pipeline
/pipeline0/wavenc0.src: caps = (GstCaps *) { audio/x-wav;  }
/pipeline0/filesink0.sink: caps = (GstCaps *) { audio/x-wav;  }
/pipeline0/osssrc0.src: active = TRUE
/pipeline0/wavenc0.sink: active = TRUE
/pipeline0/wavenc0.src: active = TRUE
/pipeline0/filesink0.sink: active = TRUE

** (process:11984): WARNING **: couldn't set requested OSS parameters, enjoy 
the noise :)
/pipeline0/wavenc0.sink: caps = (GstCaps *) { audio/raw; format=(string) 
'int'; depth=(int) 16; endianness=(int) 1234; width=(int) 16; law=(int) 0; 
signed=(boolean) TRUE; rate=(int) 44101; channels=(int) 2 }
/pipeline0/osssrc0.src: caps = (GstCaps *) { audio/raw; format=(string) 
'int'; depth=(int) 16; endianness=(int) 1234; width=(int) 16; law=(int) 0; 
signed=(boolean) TRUE; rate=(int) 44101; channels=(int) 2 }

So I guess I have to set the caps for the src pad on the gstosssrc element if 
I want to use this in my own C code.

/Markus





More information about the gstreamer-devel mailing list