Getting access through custom buffers through subbuffers

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Getting access through custom buffers through subbuffers

Arnout Vandecappelle
 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

------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Getting access through custom buffers through subbuffers

Demon Deng
I think it is better to write your own videorate plugin or modify videorate plugin to support DMAI buffer than modify gstbuffer.

2010/3/16 Arnout Vandecappelle <[hidden email]>
 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

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Getting access through custom buffers through subbuffers

Arnout Vandecappelle
 Note, I didn't modify gstbuffer, I just added a function that peeks through
the GstSubBuffer class.

 Regards,
 Arnout

On Tuesday 16 March 2010 01:15:18, Demon Deng wrote:

> I think it is better to write your own videorate plugin or modify
> videorate plugin to support DMAI buffer than modify gstbuffer.
>
> 2010/3/16 Arnout Vandecappelle <[hidden email]>
>
> >  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
> >
> >
> > -----------------------------------------------------------------------
> > ------- Download Intel&#174; Parallel Studio Eval
> > Try the new software tools for yourself. Speed compiling, find bugs
> > proactively, and fine-tune applications for parallel performance.
> > See why Intel Parallel Studio got high marks during beta.
> > http://p.sf.net/sfu/intel-sw-dev
> > _______________________________________________
> > gstreamer-devel mailing list
> > [hidden email]
> > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel

--
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

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel