<div>Hi,</div>
<div> </div>
<div>1) I use bellagio only for the first tests on my desktop before going on &quot;real&quot; world  (I mean on the ARM device from TI, STE or Freescale or anyother with openmax components).</div>
<div> </div>
<div>2) Most of the ARM devices don&#39;t have hw decoder/encoder with MMU capabilities (and yes it is a shame) so we have to take of that, and the &quot;share buffer&quot; hack doesn&#39;t in this case.</div>
<div> </div>
<div>3) about gst_pad_alloc_buffer: you are right is it a problem with ring buffer, and Rob comments also suggest that isn&#39;t a good idea...</div>
<div> </div>
<div>Benjamin <br></div>
<div class="gmail_quote">2011/1/26 Felipe Contreras <span dir="ltr">&lt;<a href="mailto:felipe.contreras@gmail.com">felipe.contreras@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Hi,<br>
<div>
<div></div>
<div class="h5"><br>On Mon, Jan 24, 2011 at 3:16 PM, Benjamin Gaignard<br>&lt;<a href="mailto:benjamin.gaignard@linaro.org">benjamin.gaignard@linaro.org</a>&gt; wrote:<br>&gt; For Linaro project I working on a new implementation of gst-openmax to allow<br>
&gt; zero copy between OMX element in gstreamer.<br>&gt;<br>&gt; On this page:<br>&gt; <a href="https://wiki.linaro.org/WorkingGroups/Middleware/Multimedia/Specs/1105/ConsolidateGtsOmxMultivendor" target="_blank">https://wiki.linaro.org/WorkingGroups/Middleware/Multimedia/Specs/1105/ConsolidateGtsOmxMultivendor</a><br>
&gt; I have put sequence diagrams of what we want to achieve.<br>&gt;<br>&gt; We are looking for feedbacks about this proposal and all comment are<br>&gt; welcome.<br><br></div></div>Here are my comments:<br><br>1) Why bellagio?<br>
<br>Bellagio is largely unmaintained and too complicated IMO. I have<br>contributed to the bellagio project, and although I think it has<br>contributed greatly to the OpenMAX ecosystem, I think I can write<br>something simpler that does the same in a short period of time. In<br>
fact, I kind of did already:<br><br><a href="https://github.com/felipec/libomxil-g" target="_blank">https://github.com/felipec/libomxil-g</a><br><br>This is a good example of how simple an OpenMAX IL implementation can be.<br>
<br>Also, recently bellagio stopped working at all for me.<br><br>2) gst-openmax already has zero-copy support<br><br>Through the &quot;share buffer&quot; hacks, which is not ideal, but it works on<br>the implementations that support this. Any hardware that has an MMU<br>
(all decent hw should) should have no trouble with it.<br><br>Your solution on the other hand would _not_ provide zero-copy support<br>for non-omx elements.<br><br>3) Your solution doesn&#39;t conform with GStreamer API<br>
<br>You can&#39;t just pad_buffer_alloc() and unref a buffer. If this buffer<br>comes from a sink that has a ring-buffer, like pulsesink, the sequence<br>would be screwed up.<br><br>This could be easily fixed by checking of the next element implements<br>
the gst-openmax interface, and add some kind of query.<br><br>Cheers.<br><br>--<br><font color="#888888">Felipe Contreras<br></font></blockquote></div><br>