<html dir="ltr"><head></head><body style="text-align:left; direction:ltr;"><div>Hi,</div><div><br></div><div>On Thu, 2020-07-16 at 20:01 +0200, Michael Nazzareno Trimarchi wrote:</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><pre>From the stacktrace look like that I'm here</pre><pre><br></pre><pre>GST_PAD_STREAM_LOCK (pad); <----- pad is already locked</pre><pre>GST_PAD_STREAM_UNLOCK (pad);</pre><pre><br></pre><pre>Can someone explain me this code?</pre></blockquote><div><br></div><div>This pattern is used to ensure that the pad lock has been released by other code before proceding further. Normally after stopping a task. So if it stops there, you want to look at the other thread holding the lock and find out why it's not stopping, there is probably somethign blocking downstream.</div><div><br></div><div>Olivier</div><div><br></div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><pre><br></pre><pre>On Thu, Jul 16, 2020 at 7:51 PM Michael Nazzareno Trimarchi</pre><pre><</pre><a href="mailto:michael@amarulasolutions.com"><pre>michael@amarulasolutions.com</pre></a><pre>> wrote:</pre><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><pre><br></pre><pre>Hi</pre><pre><br></pre><pre>This is more straight forward and happen using QTMultimedia and seek on mpp</pre><pre><br></pre><pre>Michael</pre><pre><br></pre><pre>On Thu, Jul 16, 2020 at 7:23 PM David Ing <</pre><a href="mailto:ding@panopto.com"><pre>ding@panopto.com</pre></a><pre>> wrote:</pre><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><pre><br></pre><pre>In the past, I have encountered deadlocks when a part of my pipeline has a demuxer or a tee, or basically some kind of element which "splits" a single stream into multiple streams. The outputs (source pads) of all such elements should always be attached to some kind of queue because a queue is a thread boundary.</pre><pre><br></pre><pre>So I guess step 1 is to analyze your pipeline and make sure you have queues in the right places.</pre><pre><br></pre><pre>If you are still stuck then sometimes you can add more queues into random spots in your pipeline to see if that fixes the problem.</pre><pre><br></pre><pre><br></pre><pre>On Thu, Jul 16, 2020 at 7:16 AM Michael Nazzareno Trimarchi <</pre><a href="mailto:michael@amarulasolutions.com"><pre>michael@amarulasolutions.com</pre></a><pre>> wrote:</pre><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><pre><br></pre><pre>Hi all</pre><pre><br></pre><pre>1 __libc_do_syscall libc-do-syscall.S</pre><pre> 48 0xb4f10054</pre><pre>2 __lll_lock_wait lowlevellock.c</pre><pre> 46 0xb4f0de42</pre><pre>3 __GI___pthread_mutex_lock pthread_mutex_lock.c</pre><pre> 113 0xb4f088ac</pre><pre>4 g_rec_mutex_lock gthread-posix.c</pre><pre> 308 0xb4b87120</pre><pre>5 gst_pad_stop_task gstpad.c</pre><pre> 6301 0xaddf1d68</pre><pre>6 gst_mpp_video_dec_sink_event gstmppvideodec.c</pre><pre> 786 0xac00e816</pre><pre>7 gst_pad_send_event_unchecked gstpad.c</pre><pre> 5761 0xadde8aec</pre><pre>8 gst_pad_push_event_unchecked gstpad.c</pre><pre> 5406 0xadde8fa6</pre><pre>9 gst_pad_push_event gstpad.c</pre><pre> 5543 0xaddf0cbc</pre><pre>10 gst_base_transform_sink_eventfunc gstbasetransform.c</pre><pre> 1910 0xadeaed82</pre><pre>11 gst_capsfilter_sink_event gstevent.h</pre><pre> 436 0xad5547e2</pre><pre>12 gst_pad_send_event_unchecked gstpad.c</pre><pre> 5761 0xadde8aec</pre><pre>13 gst_pad_push_event_unchecked gstpad.c</pre><pre> 5406 0xadde8fa6</pre><pre>14 gst_pad_push_event gstpad.c</pre><pre> 5543 0xaddf0cbc</pre><pre>15 gst_base_parse_sink_event_default gstbaseparse.c</pre><pre> 1466 0xade96b6a</pre><pre>16 gst_h264_parse_event gsth264parse.c</pre><pre> 2905 0xac0752d8</pre><pre>17 gst_pad_send_event_unchecked gstpad.c</pre><pre> 5761 0xadde8aec</pre><pre>18 gst_pad_push_event_unchecked gstpad.c</pre><pre> 5406 0xadde8fa6</pre><pre>19 gst_pad_push_event gstpad.c</pre><pre> 5543 0xaddf0cbc</pre><pre>20 gst_multi_queue_sink_event gstmultiqueue.c</pre><pre> 2274 0xad56cb50</pre><pre>21 gst_pad_send_event_unchecked gstpad.c</pre><pre> 5760 0xadde88d8</pre><pre>22 gst_pad_push_event_unchecked gstpad.c</pre><pre> 5406 0xadde8fa6</pre><pre>23 gst_pad_push_event gstpad.c</pre><pre> 5543 0xaddf0cbc</pre><pre>24 gst_qtdemux_push_event qtdemux.c</pre><pre> 1007 0xac98f082</pre><pre>25 gst_qtdemux_do_seek qtdemux.c</pre><pre> 1659 0xac99efca</pre><pre>26 gst_qtdemux_handle_src_event qtdemux.c</pre><pre> 1791 0xac99efca</pre><pre>27 gst_pad_send_event_unchecked gstpad.c</pre><pre> 5761 0xadde8aec</pre><pre>28 gst_pad_push_event_unchecked gstpad.c</pre><pre> 5406 0xadde8fa6</pre><pre>29 gst_pad_push_event gstpad.c</pre><pre> 5543 0xaddf0cbc</pre><pre>30 gst_pad_send_event_unchecked gstpad.c</pre><pre> 5761 0xadde8aec</pre><pre>31 gst_pad_push_event_unchecked gstpad.c</pre><pre> 5406 0xadde8fa6</pre><pre>32 gst_pad_push_event gstpad.c</pre><pre> 5543 0xaddf0cbc</pre><pre>33 gst_base_parse_handle_seek gstevent.h</pre><pre> 436 0xade92c4e</pre><pre>34 gst_base_parse_src_event_default gstbaseparse.c</pre><pre> 1635 0xade92c4e</pre><pre>35 gst_h264_parse_src_event gsth264parse.c</pre><pre> 2942 0xac079b50</pre><pre>36 gst_pad_send_event_unchecked gstpad.c</pre><pre> 5761 0xadde8aec</pre><pre>37 gst_pad_push_event_unchecked gstpad.c</pre><pre> 5406 0xadde8fa6</pre><pre>38 gst_pad_push_event gstpad.c</pre><pre> 5543 0xaddf0cbc</pre><pre>39 gst_base_transform_src_eventfunc gstbasetransform.c</pre><pre> 1962 0xadeaf226</pre><pre>40 gst_pad_send_event_unchecked gstpad.c</pre><pre> 5761 0xadde8aec</pre><pre>41 gst_pad_push_event_unchecked gstpad.c</pre><pre> 5406 0xadde8fa6</pre><pre>42 gst_pad_push_event gstpad.c</pre><pre> 5543 0xaddf0cbc</pre><pre>43 gst_video_decoder_src_event_default gstvideodecoder.c</pre><pre> 1494 0xad7b9ba6</pre><pre>44 gst_pad_send_event_unchecked gstpad.c</pre><pre> 5761 0xadde8aec</pre><pre>45 gst_pad_push_event_unchecked gstpad.c</pre><pre> 5406 0xadde8fa6</pre><pre>46 gst_pad_push_event gstpad.c</pre><pre> 5543 0xaddf0cbc</pre><pre>47 event_forward_func gstevent.h</pre><pre> 436 0xaddf0f7e</pre><pre><br></pre><pre>Need some help/idea how debug decoder deadlock on seek on video decoding.</pre><pre><br></pre><pre>Michael</pre><pre><br></pre><pre><br></pre><pre>--</pre><pre>Michael Nazzareno Trimarchi</pre><pre>Amarula Solutions BV</pre><pre>COO Co-Founder</pre><pre>Cruquiuskade 47 Amsterdam 1018 AM NL</pre><pre>T. +31(0)851119172</pre><pre>M. +39(0)3479132170</pre><pre>[`as] </pre><a href="https://www.amarulasolutions.com"><pre>https://www.amarulasolutions.com</pre></a><pre><br></pre><pre>_______________________________________________</pre><pre>gstreamer-devel mailing list</pre><a href="mailto:gstreamer-devel@lists.freedesktop.org"><pre>gstreamer-devel@lists.freedesktop.org</pre></a><pre><br></pre><a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel"><pre>https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</pre></a><pre><br></pre></blockquote><pre><br></pre><pre>_______________________________________________</pre><pre>gstreamer-devel mailing list</pre><a href="mailto:gstreamer-devel@lists.freedesktop.org"><pre>gstreamer-devel@lists.freedesktop.org</pre></a><pre><br></pre><a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel"><pre>https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</pre></a><pre><br></pre></blockquote><pre><br></pre><pre><br></pre><pre><br></pre><pre>--</pre><pre>Michael Nazzareno Trimarchi</pre><pre>Amarula Solutions BV</pre><pre>COO Co-Founder</pre><pre>Cruquiuskade 47 Amsterdam 1018 AM NL</pre><pre>T. +31(0)851119172</pre><pre>M. +39(0)3479132170</pre><pre>[`as] </pre><a href="https://www.amarulasolutions.com"><pre>https://www.amarulasolutions.com</pre></a><pre><br></pre></blockquote><pre><br></pre><pre><br></pre><pre><br></pre></blockquote><div><span><pre>-- <br></pre><div>Olivier CrĂȘte</div><div><a href="mailto:olivier.crete@collabora.com">olivier.crete@collabora.com</a></div><div><br></div></span></div></body></html>