[gst-devel] bets place for PA_STREAM_FIX_* flags

Stefan Kost ensonic at hora-obscura.de
Tue Aug 17 12:07:16 CEST 2010


On 16.08.2010 17:57, Alexey Fisher wrote:
> On Mo, 2010-08-16 at 17:46 +0300, Stefan Kost wrote:
>   
>> On 16.08.2010 13:47, Alexey Fisher wrote:
>>     
>>> Hallo all,
>>>
>>> i working currently on cheese to make it use less resources. One thing
>>> what is in todo list is to make pulse use less CPU if i make record with
>>> cheese or other app. Current cheese will capture default stream and
>>> encode it. The problem is, gstreamers pulsesrc do not use same format
>>> provided by microphone, so pulse need to resample it and it use more
>>> cpu.
>>> Simple example: i have webcam which provide "s16le 1ch 16000Hz" pulsesrc
>>> will take "float32le 1ch 44100Hz". In this case pulse will convert it.
>>> At end point we have bigger file with 44100Hz even if we used source
>>> with 16000Hz.
>>>   
>>>       
>> won't it work using: pulsesrc ! audio/x-raw-int, channels=1,rate=16000 ! ...
>>     
>
>
> I wrote - it is for Cheese or even for gnome sound recorder. Check your
> microphone - it will have other format. So - no. It should make
> automatically correct choice. PA_STREAM_FIX_ make it possible.
>
>
>   
Ahh, so you probably want a property to express "please use native
format without any conversions". Could you file a feature request for it
into the gnome-bugzilla?

Stefan
>   
>>> Solution is to use flags when creating the stream: PA_STREAM_FIX_FORMAT,
>>> PA_STREAM_FIX_RATE and PA_STREAM_FIX_CHANNELS.
>>>
>>> My question is: what is the proper place for this flags? Hard coded  in
>>> gst-plugins-good0.10? Or some haw by app what use pulsesrc?
>>> Other ideas?
>>>
>>>
>>> here is patch what i used to hard code this flags, it work fine for me:
>>> --- gst-plugins-good0.10-0.10.24.3.orig/ext/pulse/pulsesrc.c
>>> +++ gst-plugins-good0.10-0.10.24.3/ext/pulse/pulsesrc.c
>>> @@ -963,6 +963,8 @@ gst_pulsesrc_prepare (GstAudioSrc * asrc
>>>  #ifdef HAVE_PULSE_0_9_11
>>>            PA_STREAM_ADJUST_LATENCY |
>>>  #endif
>>> +          PA_STREAM_FIX_FORMAT | PA_STREAM_FIX_RATE |
>>> +          PA_STREAM_FIX_CHANNELS |
>>>            PA_STREAM_START_CORKED) < 0) {
>>>      GST_ELEMENT_ERROR (pulsesrc, RESOURCE, FAILED,
>>>          ("Failed to connect stream: %s",
>>>
>>>
>>> Regards,
>>> 	Alexey 
>>>
>>>
>>> _______________________________________________
>>> cheese-list mailing list
>>> cheese-list at gnome.org
>>> http://mail.gnome.org/mailman/listinfo/cheese-list
>>>   
>>>       
>>     
>
>   





More information about the gstreamer-devel mailing list