Re: [gst-embedded] gstreamer dma buffer & management

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Re: [gst-embedded] gstreamer dma buffer & management

Marco Ballesio
Hi,

yes, I DO hate the default gmail settings..

---------- Forwarded message ----------
From: Marco Ballesio <[hidden email]>
Date: Sat, Sep 18, 2010 at 4:52 PM
Subject: Re: [gst-embedded] gstreamer dma buffer & management
To: Feng Ye <[hidden email]>


Hi,

On Fri, Sep 17, 2010 at 2:49 AM, Feng Ye <[hidden email]> wrote:
Hello there,

I am working on a video dec plugin (based on hardware dec). I plan to use filesrc to read a raw H264 file and feed to my plugin.

it's generically better to use a container format rather than a raw h264 byte-stream. If a container is not an option for your case, maybe you could use at least an annex-B compliant stream. This makes it easier to identify NAL boundaries. It should anyway possible to use even an unformatted NAL sequence (see below).
 
The buffers from plugin's sink pad are the source data for decoding so they need to be DMA-able. Is there way to control how the buffers are allocated? Since they are allocated in filesrc so that's not possible? Looks like I will need to allocate my own buffer in my plugin and then copy them over?

if you're not using any container format, the source has no way to pass to you buffers aligned with NAL boundaries, so you definitely need an adapter somewhere (see below).
 

Also, a video frame may contain less bytes than what's in the buffer, what do I do with the remaining bytes?
>From the ffmpeg example (they are software based so the first dma question does not exist), they create a sub buffer of the remaining bytes and then does a buffer join. These are time consuming I think.

yes it is, but I guess you could afford it for compressed data. The overhead depends, of course, on the bandwidth you're using.
 
I wonder if there are other faster solution? One thing I think might help is to have another plugin in between, which parse the file and only give one frame size of data to my plugin. But I am not sure if these kind of plugin exists.

You can use h264parse for this. It will identify NAL boundaries and pass them to your plugin on separated buffers. Btw everything has a price and in this case it's the penalty like described some rows above.

Regards.
 


Thanks,
Feng



------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Gstreamer-embedded mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-embedded



------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel