Hi,<br><br>yes, I DO hate the default gmail settings..<br><br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Marco Ballesio</b> <span dir="ltr">&lt;<a href="mailto:gibrovacco@gmail.com">gibrovacco@gmail.com</a>&gt;</span><br>
Date: Sat, Sep 18, 2010 at 4:52 PM<br>Subject: Re: [gst-embedded] gstreamer dma buffer &amp; management<br>To: Feng Ye &lt;<a href="mailto:fye@broadcom.com">fye@broadcom.com</a>&gt;<br><br><br>Hi,<br><br><div class="gmail_quote">
<div class="im">On Fri, Sep 17, 2010 at 2:49 AM, Feng Ye <span dir="ltr">&lt;<a href="mailto:fye@broadcom.com" target="_blank">fye@broadcom.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

Hello there,<br>
<br>
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.<br></blockquote></div><div><br>it&#39;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).<br>

 </div><div class="im"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
The buffers from plugin&#39;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&#39;s not possible? Looks like I will need to allocate my own buffer in my plugin and then copy them over?<br>

</blockquote></div><div><br>if you&#39;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).<br> </div><div class="im">
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<br>
Also, a video frame may contain less bytes than what&#39;s in the buffer, what do I do with the remaining bytes?<br>
&gt;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. </blockquote>

</div><div><br>yes it is, but I guess you could afford it for compressed data. The overhead depends, of course, on the bandwidth you&#39;re using.<br> </div><div class="im"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

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

</blockquote></div><div><br>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&#39;s the penalty like described some rows above.<br>

<br>Regards.<br> </div><div class="im"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
<br>
Thanks,<br>
Feng<br>
<br>
<br>
<br>
------------------------------------------------------------------------------<br>
Start uncovering the many advantages of virtual appliances<br>
and start using them to simplify application deployment and<br>
accelerate your shift to cloud computing.<br>
<a href="http://p.sf.net/sfu/novell-sfdev2dev" target="_blank">http://p.sf.net/sfu/novell-sfdev2dev</a><br>
_______________________________________________<br>
Gstreamer-embedded mailing list<br>
<a href="mailto:Gstreamer-embedded@lists.sourceforge.net" target="_blank">Gstreamer-embedded@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-embedded" target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-embedded</a><br>
</blockquote></div></div><br>
</div><br>