Hi,<br><br>sorry for the late reply. I hope it will help.<br><br><div class="gmail_quote">On Fri, Sep 10, 2010 at 7:52 PM, Baldur Gislason <span dir="ltr">&lt;<a href="mailto:baldur@medizza.com">baldur@medizza.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;">I am trying to construct a C application that can either pick up audio/video from a file (mpeg transport stream) or receive mpeg  transport stream on a UDP socket.<br>
Input format is MPEG2 A/V and output is H.264 with MPEG audio or AAC, transport stream multiplexing on output.<br>So far I have managed to transcode video from network but am getting buffer underruns on the queue. If I add audio everything just stops, the pipeline does nothing and I can&#39;t quite figure out why.<br>
</blockquote><div><br>I don&#39;t have many details about how your pipelines ar4e built, but in 90% of the cases the behaviour you&#39;re observing is due to a missing queue at the right point. The audio thread should be straightforward from source to sink, while one queue element should be separating the video thread before the muxer.<br>
 </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">If I read the data from a file, I get buffer overruns. So clearly this is a clocking thing. I have searched for documentation regarding clocking in gstreamer but found nothing useful.</blockquote>
<div><br>You can find something here:<br><br><a href="http://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/design/part-clocks.txt">http://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/design/part-clocks.txt</a><br>
<br>and here:<br><br><a href="http://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/design/part-scheduling.txt">http://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/design/part-scheduling.txt</a><br><a href="http://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/design/part-synchronisation.txt">http://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/design/part-synchronisation.txt</a><br>
 </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">The app developers manual mentions clocking but nothing about how it applies to code, and gst-inspect says none of the elements I have looked at have any clocking capabilities?!f<br>
<br>Anyway, I was wondering if anyone had an example for building an MPEG<br>transcoding pipeline in C, for working with a live stream and not file<br>input, file output. File input, network output would be the other<br>scenario.<br>
</blockquote><div><br>See here the excellent guide (should be from Mark Nauwelaerts):<br><br><a href="http://gentrans.sourceforge.net/docs/head/manual/html/howto.html">http://gentrans.sourceforge.net/docs/head/manual/html/howto.html</a><br>
<br>Regards<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><br>Baldur Gislason<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-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>
</blockquote></div><br>