Sure<br><br><div class="gmail_quote">On Sun, Nov 22, 2009 at 11:43 PM, Brijesh Singh <span dir="ltr">&lt;<a href="mailto:brijesh.ksingh@gmail.com">brijesh.ksingh@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div class="im">&gt;One of the things that i noticed is threads being spawned from within the decoder<br>
&gt;plugins, which does not fit well with me.<br>
<br>
</div>Well threads are used for parallelizing  ARM and DSP execution to meet<br>
the real-time performance on some platforms. But you can remove thread<br>
and call decoder directly from the chain() functions. Or use queue<br>
element to put the decoder element in different threads.<br>
<div class="im"><br>
&gt; I also noticed quite a lot of bugs in the code, which kept me from using it or hacking on it.<br>
</div>Can you please submit BUGs on <a href="http://gstreamer.ti.com" target="_blank">gstreamer.ti.com</a> ?<br>
<br>
<br>
Thanks<br>
Brijesh<br>
<br>
On Sun, Nov 22, 2009 at 11:07 AM, Sameer Naik<br>
<div><div></div><div class="h5">&lt;<a href="mailto:sameer.subscriptions@damagehead.com">sameer.subscriptions@damagehead.com</a>&gt; wrote:<br>
&gt; Hello,<br>
&gt; I had taken a look at the gstreamer-ti plugins some time back. One of the<br>
&gt; things that i noticed is threads being spawned from within the decoder<br>
&gt; plugins, which does not fit well with me. I also noticed quite a lot of bugs<br>
&gt; in the code, which kept me from using it or hacking on it. Besides i already<br>
&gt; have most of the functionality implemented and just need to tweak my<br>
&gt; code/design a bit, hence the mail.<br>
&gt;<br>
&gt; Thanks and Regards<br>
&gt; ~Sameer<br>
&gt;<br>
&gt; On Sun, Nov 22, 2009 at 9:27 PM, Brijesh Singh &lt;<a href="mailto:brijesh.ksingh@gmail.com">brijesh.ksingh@gmail.com</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hello,<br>
&gt;&gt;<br>
&gt;&gt; Have you looked at <a href="http://gstreamer.ti.com" target="_blank">gstreamer.ti.com</a> ?  gst_ti has all the elements you<br>
&gt;&gt; need. It support wide varity of TI platforms. (DM6446, DM355, DM365,<br>
&gt;&gt; DM357, DM6467, OMAP3530 and more...).<br>
&gt;&gt;<br>
&gt;&gt; To understand design detail you can watch 25-min of video presentation.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; <a href="https://gstreamer.ti.com/gf/project/gstreamer_ti/wiki/?pagename=OverviewPresentation" target="_blank">https://gstreamer.ti.com/gf/project/gstreamer_ti/wiki/?pagename=OverviewPresentation</a><br>
&gt;&gt;<br>
&gt;&gt; We do not have pad-allocation method yet (may be you can contribute on<br>
&gt;&gt; project). We use hw accelerated framecopy to copy the data from video<br>
&gt;&gt; decoder -&gt; sink element. Depending on the platform, this hw<br>
&gt;&gt; accelerator may be resizer/dma/vdce/sdma etc...<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Thanks<br>
&gt;&gt; Brijesh<br>
&gt;&gt;<br>
&gt;&gt; On Sun, Nov 22, 2009 at 4:18 AM, Sameer Naik<br>
&gt;&gt; &lt;<a href="mailto:sameer.subscriptions@damagehead.com">sameer.subscriptions@damagehead.com</a>&gt; wrote:<br>
&gt;&gt; &gt; Hi,<br>
&gt;&gt; &gt; I am developing a multimedia application for an embedded system based on<br>
&gt;&gt; &gt; TI&#39;s DM6446 platform. The decoding of the audio and video frames will be<br>
&gt;&gt; &gt; done using the HW decoders. The platform also includes a hardware<br>
&gt;&gt; &gt; resizer,<br>
&gt;&gt; &gt; that allows resizing of the video frames in hardware, thereby making the<br>
&gt;&gt; &gt; resizing operations pretty quick.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I need some advice on the architecture that i should base by application<br>
&gt;&gt; &gt; on.<br>
&gt;&gt; &gt; Following are the architectures that i have come up with<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 1.<br>
&gt;&gt; &gt; - audio decoder plugins<br>
&gt;&gt; &gt; - video decoder plugins<br>
&gt;&gt; &gt; - resizer plugin<br>
&gt;&gt; &gt; - frame buffer output plugin<br>
&gt;&gt; &gt; Here i can build a seperate plugin to do the resizing of video frames.<br>
&gt;&gt; &gt; This<br>
&gt;&gt; &gt; would conform more with gstreamer&#39;s idea that &quot;every element does one<br>
&gt;&gt; &gt; thing&quot;, providing better reusability. To reduce to number of memcpy&#39;s, i<br>
&gt;&gt; &gt; could equip the frame buffer plugin with pad allocation capabilities and<br>
&gt;&gt; &gt; accordingly add pad_alloc calls in the resizer plugin. The only this is,<br>
&gt;&gt; &gt; in<br>
&gt;&gt; &gt; this case the frames will always be resized, regardless of whether the<br>
&gt;&gt; &gt; frame<br>
&gt;&gt; &gt; is going to be displayed or dropped. I am not really sure whether this<br>
&gt;&gt; &gt; is<br>
&gt;&gt; &gt; that big of a problem considering that the number of frames that could<br>
&gt;&gt; &gt; be<br>
&gt;&gt; &gt; dropped is very less.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 2.<br>
&gt;&gt; &gt; - audio decoder plugins<br>
&gt;&gt; &gt; - video decoder plugins<br>
&gt;&gt; &gt; - frame buffer plugin with resizing capabilities using the hw resizer.<br>
&gt;&gt; &gt; Here i can build the frame buffer plugin with the built in capability to<br>
&gt;&gt; &gt; resize video frames. In this case i could resize the frame only if it is<br>
&gt;&gt; &gt; going to be displayed (i.e. just before it would be displayed on<br>
&gt;&gt; &gt; screen).<br>
&gt;&gt; &gt; Now in this case i loose the reusability advantage, which i can live<br>
&gt;&gt; &gt; with if<br>
&gt;&gt; &gt; i am able to achieve smooth video playback with av sync. In this case, I<br>
&gt;&gt; &gt; am<br>
&gt;&gt; &gt; not sure whether the last minute resizing of the frame would introduce a<br>
&gt;&gt; &gt; lot<br>
&gt;&gt; &gt; of latency while displaying the frame. Given that it is a hardware<br>
&gt;&gt; &gt; resizer i<br>
&gt;&gt; &gt; am assuming it would be quick.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; P.S. I would be employing the pad allocation method in other parts of<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; pipeline as well, so as to reduce the number of memcpy&#39;s going on in the<br>
&gt;&gt; &gt; pipeline.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Please Advice.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Regards<br>
&gt;&gt; &gt; ~Sameer<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; ------------------------------------------------------------------------------<br>
&gt;&gt; &gt; Let Crystal Reports handle the reporting - Free Crystal Reports 2008<br>
&gt;&gt; &gt; 30-Day<br>
&gt;&gt; &gt; trial. Simplify your report design, integration and deployment - and<br>
&gt;&gt; &gt; focus<br>
&gt;&gt; &gt; on<br>
&gt;&gt; &gt; what you do best, core application coding. Discover what&#39;s new with<br>
&gt;&gt; &gt; Crystal Reports now.  <a href="http://p.sf.net/sfu/bobj-july" target="_blank">http://p.sf.net/sfu/bobj-july</a><br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; gstreamer-devel mailing list<br>
&gt;&gt; &gt; <a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a><br>
&gt;&gt; &gt; <a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Confusion is always the most honest response.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; ------------------------------------------------------------------------------<br>
&gt;&gt; Let Crystal Reports handle the reporting - Free Crystal Reports 2008<br>
&gt;&gt; 30-Day<br>
&gt;&gt; trial. Simplify your report design, integration and deployment - and focus<br>
&gt;&gt; on<br>
&gt;&gt; what you do best, core application coding. Discover what&#39;s new with<br>
&gt;&gt; Crystal Reports now.  <a href="http://p.sf.net/sfu/bobj-july" target="_blank">http://p.sf.net/sfu/bobj-july</a><br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; gstreamer-devel mailing list<br>
&gt;&gt; <a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a><br>
&gt;&gt; <a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><br>
&gt;<br>
&gt;<br>
&gt; ------------------------------------------------------------------------------<br>
&gt; Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day<br>
&gt; trial. Simplify your report design, integration and deployment - and focus<br>
&gt; on<br>
&gt; what you do best, core application coding. Discover what&#39;s new with<br>
&gt; Crystal Reports now.  <a href="http://p.sf.net/sfu/bobj-july" target="_blank">http://p.sf.net/sfu/bobj-july</a><br>
&gt; _______________________________________________<br>
&gt; gstreamer-devel mailing list<br>
&gt; <a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a><br>
&gt; <a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><br>
&gt;<br>
&gt;<br>
<br>
<br>
<br>
--<br>
Confusion is always the most honest response.<br>
<br>
------------------------------------------------------------------------------<br>
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day<br>
trial. Simplify your report design, integration and deployment - and focus on<br>
what you do best, core application coding. Discover what&#39;s new with<br>
Crystal Reports now.  <a href="http://p.sf.net/sfu/bobj-july" target="_blank">http://p.sf.net/sfu/bobj-july</a><br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><br>
</div></div></blockquote></div><br>