Thank you for all of your input. Unfortunately I did not write the decoders at all, but I do have the source code. What is considered as decoder latency? Is it the time for decoder to set up or something else?<br>Cheers <br>
Ogi<br><br><div class="gmail_quote">On Thu, Dec 9, 2010 at 7:45 PM, ved kpl <span dir="ltr"><<a href="mailto:ved.kpl@gmail.com">ved.kpl@gmail.com</a>></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;">
<div class="im">On Fri, Dec 10, 2010 at 1:39 AM, Radivoje Jovanovic<br>
<<a href="mailto:radivojejovanovic@gmail.com">radivojejovanovic@gmail.com</a>> wrote:<br>
> It seems like we are on a good path. after I tried the pipeline:<br>
> gst-launch-0.10 filesrc location=MY_MOVIE ! qtdemux name=t ! queue<br>
> max-size-time=0 max-size-bytes=0 ! mpeg4dec ! MY_VIDEO_SINK t. ! queue<br>
> ! faad ! alsasink<br>
> (so I only give time and bytes for video side) the video and audio worked<br>
> just fine.<br>
><br>
> Unfortunately this trick does not work for the other decoder I have which<br>
> decodes h264 videos.<br>
><br>
> Even with the pipeline:<br>
> gst-launch-0.10 filesrc location=MY_MOVIE ! qtdemux name=t ! queue<br>
> max-size-time=0 max-size-bytes=0 ! h264dec ! MY_VIDEO_SINK t. ! queue<br>
> ! faad ! alsasink<br>
> The pipeline is stuck. This all has nothing to do with GST_FLOW_WRONG_STATE<br>
> since this error pops up all the time after CTRL-C operation. Any idea why<br>
> would h264 get stuck?<br>
<br>
</div> To start off, try setting max-size-time/bytes/buffers=0 on the both<br>
the queues (no limits)<br>
If it works, it indicates that your h264dec has a very high<br>
latency..and you can<br>
narrow to the problem from here.<br>
<div class="im"><br>
> Another question is if I am giving too much memory to gstreamer with<br>
> max-size-time=0 max-size-bytes=0?<br>
<br>
</div> Well, It would depend on your codec details (resilution, etc),<br>
environment/platform. You could possibly track down the issue.<br>
<div><div></div><div class="h5"><br>
> Cheers<br>
> Ogi<br>
><br>
><br>
> On Wed, Dec 8, 2010 at 8:27 PM, ved kpl <<a href="mailto:ved.kpl@gmail.com">ved.kpl@gmail.com</a>> wrote:<br>
>><br>
>> Hi,<br>
>><br>
>> One possible reason could be that one of the queues is getting full<br>
>> while the other remains empty<br>
>> because of<br>
>> (a) continuous audio/video buffers for a considerably longer time,<br>
>> longer than the what the queues can hold.<br>
>> (b) high latency at the your video decoder (mpeg4dec).<br>
>> Hence the streaming thread is blocked & one of the sinks is not able<br>
>> to commit the state to PAUSED.<br>
>> (because it has not received a buffer yet).<br>
>><br>
>> Yo can also set async=FALSE on the sinks and see. (not recommended)<br>
>><br>
>> You can try disabling the the max time & max bytes properties of the<br>
>> queue.<br>
>> Try the following pipeline<br>
>><br>
>> gst-launch-0.10 filesrc location=MY_MOVIE ! qtdemux name=t ! queue<br>
>> max-size-time=0 max-size-bytes=0 ! mpeg4dec ! MY_VIDEO_SINK t. ! queue<br>
>> max-size-time=0 max-size-bytes=0 ! faad ! alsasink -v<br>
>><br>
>> Note that this will increase the mem usage.. and even more if u set<br>
>> max-size-buffers=0 as well. (queue without any limits!)<br>
>><br>
>> Vikram<br>
>><br>
>> On Thu, Dec 9, 2010 at 9:44 AM, ved kpl <<a href="mailto:ved.kpl@gmail.com">ved.kpl@gmail.com</a>> wrote:<br>
>> > On Thu, Dec 9, 2010 at 6:26 AM, Radivoje Jovanovic<br>
>> > <<a href="mailto:radivojejovanovic@gmail.com">radivojejovanovic@gmail.com</a>> wrote:<br>
>> >> So the pipeline I am using is:<br>
>> >> gst-launch-0.10 filesrc location=MY_MOVIE ! qtdemux name=t ! queue !<br>
>> >> mpeg4dec ! MY_VIDEO_SINK t. ! queue ! faad ! alsasink<br>
>> >> This pipeline will hang and after CTRL-C the mpeg4dec will show the<br>
>> >> message<br>
>> >> that is the result of calling gst_push_pad. This gst_push_pad will<br>
>> >> return<br>
>> >> GST_FLOW_WRONG_STATE.<br>
>> >><br>
>> >> If I run gst-launch-0.10 filesrc location=MY_MOVIE ! qtdemux name=t !<br>
>> >> queue<br>
>> >> ! mpeg4dec ! MY_VIDEO_SINK<br>
>> >> the video will play just fine<br>
>> >><br>
>> >> If I run:<br>
>> >> gst-launch-0.10 filesrc location=MY_MOVIE ! qtdemux name=t ! queue !<br>
>> >> faad !<br>
>> >> alsasink<br>
>> >> the audio from the audio will play just fine.<br>
>> >><br>
>> >> I am not sure which code would be helpful since I have a lot of it.<br>
>> >> Thanks for the GST_DEBUG info.<br>
>> >><br>
>> >> Ogi<br>
>> >><br>
>> >><br>
>> >> On Wed, Dec 8, 2010 at 4:05 PM, Tim-Philipp Müller <<a href="mailto:t.i.m@zen.co.uk">t.i.m@zen.co.uk</a>><br>
>> >> wrote:<br>
>> >>><br>
>> >>> On Wed, 2010-12-08 at 12:53 -0800, Radivoje Jovanovic wrote:<br>
>> >>><br>
>> >>> > I have a video sink and ALSA driver to be used to play videos on the<br>
>> >>> > platform. If I play video or audio by them self everything works<br>
>> >>> > fine,<br>
>> >>> > but if I specify the whole pipeline for video and audio, the video<br>
>> >>> > decoder (in pipeline right before the sink) comes back with the<br>
>> >>> > message:<br>
>> >>> > "The decoded frame did not successfully push out to downstream<br>
>> >>> > element"<br>
>> >>> > The message comes because the gst_pad_push have returned with<br>
>> >>> > GST_FLOW_WRONG_STATE instead GST_FLOW_OK.<br>
>> >>> ><br>
>> >>> > Any idea why this might happen?<br>
>> >>><br>
>> >>> It usually helps if you post your exact pipeline and/or any code<br>
>> >>> snippets that go with it.<br>
>> >>><br>
>> >>> FLOW_WRONG_STATE is what you get when a pad is flushing, which may be<br>
>> >>> normal (happens during a flushing seek, to make the old streaming<br>
>> >>> thread<br>
>> >>> stop) or because you forgot to set an element into PAUSED/PLAYING<br>
>> >>> state<br>
>> >>> (e.g. because you added it from a pad-added or new-decoded-pad<br>
>> >>> callback<br>
>> >>> or so).<br>
>> >>><br>
>> >>> The GST_DEBUG=*:5 log might give you more information (just grep for<br>
>> >>> wrong-state and read the lines before that).<br>
>> >>><br>
>> >>> Cheers<br>
>> >>> -Tim<br>
>> >>><br>
>> >>><br>
>> >>><br>
>> >>><br>
>> >>><br>
>> >>> ------------------------------------------------------------------------------<br>
>> >>> This SF Dev2Dev email is sponsored by:<br>
>> >>><br>
>> >>> WikiLeaks The End of the Free Internet<br>
>> >>> <a href="http://p.sf.net/sfu/therealnews-com" target="_blank">http://p.sf.net/sfu/therealnews-com</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>
>> >><br>
>> >><br>
>> >><br>
>> >> ------------------------------------------------------------------------------<br>
>> >> This SF Dev2Dev email is sponsored by:<br>
>> >><br>
>> >> WikiLeaks The End of the Free Internet<br>
>> >> <a href="http://p.sf.net/sfu/therealnews-com" target="_blank">http://p.sf.net/sfu/therealnews-com</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>
>> >><br>
>> >><br>
>> ><br>
>><br>
>><br>
>> ------------------------------------------------------------------------------<br>
>> This SF Dev2Dev email is sponsored by:<br>
>><br>
>> WikiLeaks The End of the Free Internet<br>
>> <a href="http://p.sf.net/sfu/therealnews-com" target="_blank">http://p.sf.net/sfu/therealnews-com</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>
><br>
><br>
</div></div>> ------------------------------------------------------------------------------<br>
<div><div></div><div class="h5">><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>
><br>
><br>
<br>
------------------------------------------------------------------------------<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>