How to reduce gstreamer library size &startuptime

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


Benoit,

gst_pad_alloc_buffer() allows downstreame element have chance to manage
the memory allocation. 
For example, when decoder finishes decode, it will allocate buffer to
store data and push to sink, and release it after sink to audio device ,
but if use gst_pad_alloc_buffer(), audiosink can allocate memory in
audio device as buffer, and decoder should not allocate and release it
repeatedly. 

It will save system memory allocation time.

gst_buffer_new() can also do it, but it is using glib memory pool, not
memory in device.

Best Regards
Zhao Liang
 

-----Original Message-----
From: Benoit Fouet [mailto:benoit.fouet at purplelabs.com] 
Sent: Friday, February 29, 2008 5:21 PM
To: Zhang Yanlong-PBVM47
Cc: Zhao Liang-E3423C; Nicholas Hannah;
gstreamer-embedded at lists.sourceforge.net
Subject: Re: How to reduce gstreamer library size
&startuptime

Hi,

Zhang Yanlong-PBVM47 wrote:
>  
>   
>> Another suggestion is that:
>> Because your app is used for specified embedded device, some code 
>> optimization can be introduced.
>> For example, try to use gst_pad_alloc_buffer() insteand of
>> gst_buffer_new() to transfer data buffer between elements which can 
>> prevent from alloc new buffer frequently.
>>
>>   
>>     
>
> could you elaborate ?
> or did you mean gst_buffer_new_and_alloc() ?
>
> A call to gst_pad_alloc_buffer() is done when the element knows on 
> which source pad it is going to push the data. This allows the peer 
> element to provide special "hardware" buffers for the calling element 
> to work on, thus reducing the number of memcpys required in the
system.
>
>   

this can also work if you're doing a gst_buffer_new(), and not a
gst_buffer_new_and_alloc(), I don't really see a difference here...
the data you're providing to downstream element doesn't have to be
memcpy'd, it can be a pointer to a buffer of data in your element.

--
Benoit Fouet
Purple Labs S.A.
www.purplelabs.com




[Index of Archives]     [Linux Embedded]     [Linux ARM Kernel]     [Linux for ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux Media]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux