Getting access through custom buffers through subbuffers

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


 Hoi all,

 I'm currently hacking with the DMAI plugins that use the DSP on the TI OMAP 
for video encoding and other transformations.  These plugins require 
specially allocated DMA buffers to be able to communicate with the DSP.  A 
custom GstTIDmaiBufferTranport sub-class of GstBuffer is used for that.  
When the encoder element receives a buffer, it checks whether it is a 
GstTIDmaiBufferTransport; if not, it memcpy's the data in a DMA buffer.

 Since the memcpy's completely kill performance in my application, I make 
sure that GstTIDmaiBufferTransport buffers are allocated in the beginning of 
the pipeline.  However, when I insert a videorate element in the pipeline, 
it creates subbuffers of these.  These are no longer recognized as 
GstTIDmaiBufferTransport objects, and therefore the physical address of the 
DMA buffer is not accessible.  Hence, there are memcpy's again.

 To work around this, I've added a function to GstBuffer that checks if it 
is a subbuffer and if so returns the parent buffer.  Does this sound like a 
good solution?  If so, I'll put it in bugzilla.

 Regards,
 Arnout
-- 
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  31BB CF53 8660 6F88 345D  54CC A836 5879 20D7 CF43




[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