Hi all
1 __libc_do_syscall libc-do-syscall.S 48 0xb4f10054 2 __lll_lock_wait lowlevellock.c 46 0xb4f0de42 3 __GI___pthread_mutex_lock pthread_mutex_lock.c 113 0xb4f088ac 4 g_rec_mutex_lock gthread-posix.c 308 0xb4b87120 5 gst_pad_stop_task gstpad.c 6301 0xaddf1d68 6 gst_mpp_video_dec_sink_event gstmppvideodec.c 786 0xac00e816 7 gst_pad_send_event_unchecked gstpad.c 5761 0xadde8aec 8 gst_pad_push_event_unchecked gstpad.c 5406 0xadde8fa6 9 gst_pad_push_event gstpad.c 5543 0xaddf0cbc 10 gst_base_transform_sink_eventfunc gstbasetransform.c 1910 0xadeaed82 11 gst_capsfilter_sink_event gstevent.h 436 0xad5547e2 12 gst_pad_send_event_unchecked gstpad.c 5761 0xadde8aec 13 gst_pad_push_event_unchecked gstpad.c 5406 0xadde8fa6 14 gst_pad_push_event gstpad.c 5543 0xaddf0cbc 15 gst_base_parse_sink_event_default gstbaseparse.c 1466 0xade96b6a 16 gst_h264_parse_event gsth264parse.c 2905 0xac0752d8 17 gst_pad_send_event_unchecked gstpad.c 5761 0xadde8aec 18 gst_pad_push_event_unchecked gstpad.c 5406 0xadde8fa6 19 gst_pad_push_event gstpad.c 5543 0xaddf0cbc 20 gst_multi_queue_sink_event gstmultiqueue.c 2274 0xad56cb50 21 gst_pad_send_event_unchecked gstpad.c 5760 0xadde88d8 22 gst_pad_push_event_unchecked gstpad.c 5406 0xadde8fa6 23 gst_pad_push_event gstpad.c 5543 0xaddf0cbc 24 gst_qtdemux_push_event qtdemux.c 1007 0xac98f082 25 gst_qtdemux_do_seek qtdemux.c 1659 0xac99efca 26 gst_qtdemux_handle_src_event qtdemux.c 1791 0xac99efca 27 gst_pad_send_event_unchecked gstpad.c 5761 0xadde8aec 28 gst_pad_push_event_unchecked gstpad.c 5406 0xadde8fa6 29 gst_pad_push_event gstpad.c 5543 0xaddf0cbc 30 gst_pad_send_event_unchecked gstpad.c 5761 0xadde8aec 31 gst_pad_push_event_unchecked gstpad.c 5406 0xadde8fa6 32 gst_pad_push_event gstpad.c 5543 0xaddf0cbc 33 gst_base_parse_handle_seek gstevent.h 436 0xade92c4e 34 gst_base_parse_src_event_default gstbaseparse.c 1635 0xade92c4e 35 gst_h264_parse_src_event gsth264parse.c 2942 0xac079b50 36 gst_pad_send_event_unchecked gstpad.c 5761 0xadde8aec 37 gst_pad_push_event_unchecked gstpad.c 5406 0xadde8fa6 38 gst_pad_push_event gstpad.c 5543 0xaddf0cbc 39 gst_base_transform_src_eventfunc gstbasetransform.c 1962 0xadeaf226 40 gst_pad_send_event_unchecked gstpad.c 5761 0xadde8aec 41 gst_pad_push_event_unchecked gstpad.c 5406 0xadde8fa6 42 gst_pad_push_event gstpad.c 5543 0xaddf0cbc 43 gst_video_decoder_src_event_default gstvideodecoder.c 1494 0xad7b9ba6 44 gst_pad_send_event_unchecked gstpad.c 5761 0xadde8aec 45 gst_pad_push_event_unchecked gstpad.c 5406 0xadde8fa6 46 gst_pad_push_event gstpad.c 5543 0xaddf0cbc 47 event_forward_func gstevent.h 436 0xaddf0f7e Need some help/idea how debug decoder deadlock on seek on video decoding. Michael -- Michael Nazzareno Trimarchi Amarula Solutions BV COO Co-Founder Cruquiuskade 47 Amsterdam 1018 AM NL T. +31(0)851119172 M. +39(0)3479132170 [`as] https://www.amarulasolutions.com _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
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. So I guess step 1 is to analyze your pipeline and make sure you have queues in the right places. 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. On Thu, Jul 16, 2020 at 7:16 AM Michael Nazzareno Trimarchi <[hidden email]> wrote: Hi all _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi
This is more straight forward and happen using QTMultimedia and seek on mpp Michael On Thu, Jul 16, 2020 at 7:23 PM David Ing <[hidden email]> wrote: > > 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. > > So I guess step 1 is to analyze your pipeline and make sure you have queues in the right places. > > 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. > > > On Thu, Jul 16, 2020 at 7:16 AM Michael Nazzareno Trimarchi <[hidden email]> wrote: >> >> Hi all >> >> 1 __libc_do_syscall libc-do-syscall.S >> 48 0xb4f10054 >> 2 __lll_lock_wait lowlevellock.c >> 46 0xb4f0de42 >> 3 __GI___pthread_mutex_lock pthread_mutex_lock.c >> 113 0xb4f088ac >> 4 g_rec_mutex_lock gthread-posix.c >> 308 0xb4b87120 >> 5 gst_pad_stop_task gstpad.c >> 6301 0xaddf1d68 >> 6 gst_mpp_video_dec_sink_event gstmppvideodec.c >> 786 0xac00e816 >> 7 gst_pad_send_event_unchecked gstpad.c >> 5761 0xadde8aec >> 8 gst_pad_push_event_unchecked gstpad.c >> 5406 0xadde8fa6 >> 9 gst_pad_push_event gstpad.c >> 5543 0xaddf0cbc >> 10 gst_base_transform_sink_eventfunc gstbasetransform.c >> 1910 0xadeaed82 >> 11 gst_capsfilter_sink_event gstevent.h >> 436 0xad5547e2 >> 12 gst_pad_send_event_unchecked gstpad.c >> 5761 0xadde8aec >> 13 gst_pad_push_event_unchecked gstpad.c >> 5406 0xadde8fa6 >> 14 gst_pad_push_event gstpad.c >> 5543 0xaddf0cbc >> 15 gst_base_parse_sink_event_default gstbaseparse.c >> 1466 0xade96b6a >> 16 gst_h264_parse_event gsth264parse.c >> 2905 0xac0752d8 >> 17 gst_pad_send_event_unchecked gstpad.c >> 5761 0xadde8aec >> 18 gst_pad_push_event_unchecked gstpad.c >> 5406 0xadde8fa6 >> 19 gst_pad_push_event gstpad.c >> 5543 0xaddf0cbc >> 20 gst_multi_queue_sink_event gstmultiqueue.c >> 2274 0xad56cb50 >> 21 gst_pad_send_event_unchecked gstpad.c >> 5760 0xadde88d8 >> 22 gst_pad_push_event_unchecked gstpad.c >> 5406 0xadde8fa6 >> 23 gst_pad_push_event gstpad.c >> 5543 0xaddf0cbc >> 24 gst_qtdemux_push_event qtdemux.c >> 1007 0xac98f082 >> 25 gst_qtdemux_do_seek qtdemux.c >> 1659 0xac99efca >> 26 gst_qtdemux_handle_src_event qtdemux.c >> 1791 0xac99efca >> 27 gst_pad_send_event_unchecked gstpad.c >> 5761 0xadde8aec >> 28 gst_pad_push_event_unchecked gstpad.c >> 5406 0xadde8fa6 >> 29 gst_pad_push_event gstpad.c >> 5543 0xaddf0cbc >> 30 gst_pad_send_event_unchecked gstpad.c >> 5761 0xadde8aec >> 31 gst_pad_push_event_unchecked gstpad.c >> 5406 0xadde8fa6 >> 32 gst_pad_push_event gstpad.c >> 5543 0xaddf0cbc >> 33 gst_base_parse_handle_seek gstevent.h >> 436 0xade92c4e >> 34 gst_base_parse_src_event_default gstbaseparse.c >> 1635 0xade92c4e >> 35 gst_h264_parse_src_event gsth264parse.c >> 2942 0xac079b50 >> 36 gst_pad_send_event_unchecked gstpad.c >> 5761 0xadde8aec >> 37 gst_pad_push_event_unchecked gstpad.c >> 5406 0xadde8fa6 >> 38 gst_pad_push_event gstpad.c >> 5543 0xaddf0cbc >> 39 gst_base_transform_src_eventfunc gstbasetransform.c >> 1962 0xadeaf226 >> 40 gst_pad_send_event_unchecked gstpad.c >> 5761 0xadde8aec >> 41 gst_pad_push_event_unchecked gstpad.c >> 5406 0xadde8fa6 >> 42 gst_pad_push_event gstpad.c >> 5543 0xaddf0cbc >> 43 gst_video_decoder_src_event_default gstvideodecoder.c >> 1494 0xad7b9ba6 >> 44 gst_pad_send_event_unchecked gstpad.c >> 5761 0xadde8aec >> 45 gst_pad_push_event_unchecked gstpad.c >> 5406 0xadde8fa6 >> 46 gst_pad_push_event gstpad.c >> 5543 0xaddf0cbc >> 47 event_forward_func gstevent.h >> 436 0xaddf0f7e >> >> Need some help/idea how debug decoder deadlock on seek on video decoding. >> >> Michael >> >> >> -- >> Michael Nazzareno Trimarchi >> Amarula Solutions BV >> COO Co-Founder >> Cruquiuskade 47 Amsterdam 1018 AM NL >> T. +31(0)851119172 >> M. +39(0)3479132170 >> [`as] https://www.amarulasolutions.com >> _______________________________________________ >> gstreamer-devel mailing list >> [hidden email] >> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel -- Michael Nazzareno Trimarchi Amarula Solutions BV COO Co-Founder Cruquiuskade 47 Amsterdam 1018 AM NL T. +31(0)851119172 M. +39(0)3479132170 [`as] https://www.amarulasolutions.com _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi
From the stacktrace look like that I'm here GST_PAD_STREAM_LOCK (pad); <----- pad is already locked GST_PAD_STREAM_UNLOCK (pad); Can someone explain me this code? On Thu, Jul 16, 2020 at 7:51 PM Michael Nazzareno Trimarchi <[hidden email]> wrote: > > Hi > > This is more straight forward and happen using QTMultimedia and seek on mpp > > Michael > > On Thu, Jul 16, 2020 at 7:23 PM David Ing <[hidden email]> wrote: > > > > 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. > > > > So I guess step 1 is to analyze your pipeline and make sure you have queues in the right places. > > > > 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. > > > > > > On Thu, Jul 16, 2020 at 7:16 AM Michael Nazzareno Trimarchi <[hidden email]> wrote: > >> > >> Hi all > >> > >> 1 __libc_do_syscall libc-do-syscall.S > >> 48 0xb4f10054 > >> 2 __lll_lock_wait lowlevellock.c > >> 46 0xb4f0de42 > >> 3 __GI___pthread_mutex_lock pthread_mutex_lock.c > >> 113 0xb4f088ac > >> 4 g_rec_mutex_lock gthread-posix.c > >> 308 0xb4b87120 > >> 5 gst_pad_stop_task gstpad.c > >> 6301 0xaddf1d68 > >> 6 gst_mpp_video_dec_sink_event gstmppvideodec.c > >> 786 0xac00e816 > >> 7 gst_pad_send_event_unchecked gstpad.c > >> 5761 0xadde8aec > >> 8 gst_pad_push_event_unchecked gstpad.c > >> 5406 0xadde8fa6 > >> 9 gst_pad_push_event gstpad.c > >> 5543 0xaddf0cbc > >> 10 gst_base_transform_sink_eventfunc gstbasetransform.c > >> 1910 0xadeaed82 > >> 11 gst_capsfilter_sink_event gstevent.h > >> 436 0xad5547e2 > >> 12 gst_pad_send_event_unchecked gstpad.c > >> 5761 0xadde8aec > >> 13 gst_pad_push_event_unchecked gstpad.c > >> 5406 0xadde8fa6 > >> 14 gst_pad_push_event gstpad.c > >> 5543 0xaddf0cbc > >> 15 gst_base_parse_sink_event_default gstbaseparse.c > >> 1466 0xade96b6a > >> 16 gst_h264_parse_event gsth264parse.c > >> 2905 0xac0752d8 > >> 17 gst_pad_send_event_unchecked gstpad.c > >> 5761 0xadde8aec > >> 18 gst_pad_push_event_unchecked gstpad.c > >> 5406 0xadde8fa6 > >> 19 gst_pad_push_event gstpad.c > >> 5543 0xaddf0cbc > >> 20 gst_multi_queue_sink_event gstmultiqueue.c > >> 2274 0xad56cb50 > >> 21 gst_pad_send_event_unchecked gstpad.c > >> 5760 0xadde88d8 > >> 22 gst_pad_push_event_unchecked gstpad.c > >> 5406 0xadde8fa6 > >> 23 gst_pad_push_event gstpad.c > >> 5543 0xaddf0cbc > >> 24 gst_qtdemux_push_event qtdemux.c > >> 1007 0xac98f082 > >> 25 gst_qtdemux_do_seek qtdemux.c > >> 1659 0xac99efca > >> 26 gst_qtdemux_handle_src_event qtdemux.c > >> 1791 0xac99efca > >> 27 gst_pad_send_event_unchecked gstpad.c > >> 5761 0xadde8aec > >> 28 gst_pad_push_event_unchecked gstpad.c > >> 5406 0xadde8fa6 > >> 29 gst_pad_push_event gstpad.c > >> 5543 0xaddf0cbc > >> 30 gst_pad_send_event_unchecked gstpad.c > >> 5761 0xadde8aec > >> 31 gst_pad_push_event_unchecked gstpad.c > >> 5406 0xadde8fa6 > >> 32 gst_pad_push_event gstpad.c > >> 5543 0xaddf0cbc > >> 33 gst_base_parse_handle_seek gstevent.h > >> 436 0xade92c4e > >> 34 gst_base_parse_src_event_default gstbaseparse.c > >> 1635 0xade92c4e > >> 35 gst_h264_parse_src_event gsth264parse.c > >> 2942 0xac079b50 > >> 36 gst_pad_send_event_unchecked gstpad.c > >> 5761 0xadde8aec > >> 37 gst_pad_push_event_unchecked gstpad.c > >> 5406 0xadde8fa6 > >> 38 gst_pad_push_event gstpad.c > >> 5543 0xaddf0cbc > >> 39 gst_base_transform_src_eventfunc gstbasetransform.c > >> 1962 0xadeaf226 > >> 40 gst_pad_send_event_unchecked gstpad.c > >> 5761 0xadde8aec > >> 41 gst_pad_push_event_unchecked gstpad.c > >> 5406 0xadde8fa6 > >> 42 gst_pad_push_event gstpad.c > >> 5543 0xaddf0cbc > >> 43 gst_video_decoder_src_event_default gstvideodecoder.c > >> 1494 0xad7b9ba6 > >> 44 gst_pad_send_event_unchecked gstpad.c > >> 5761 0xadde8aec > >> 45 gst_pad_push_event_unchecked gstpad.c > >> 5406 0xadde8fa6 > >> 46 gst_pad_push_event gstpad.c > >> 5543 0xaddf0cbc > >> 47 event_forward_func gstevent.h > >> 436 0xaddf0f7e > >> > >> Need some help/idea how debug decoder deadlock on seek on video decoding. > >> > >> Michael > >> > >> > >> -- > >> Michael Nazzareno Trimarchi > >> Amarula Solutions BV > >> COO Co-Founder > >> Cruquiuskade 47 Amsterdam 1018 AM NL > >> T. +31(0)851119172 > >> M. +39(0)3479132170 > >> [`as] https://www.amarulasolutions.com > >> _______________________________________________ > >> gstreamer-devel mailing list > >> [hidden email] > >> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > > > > _______________________________________________ > > gstreamer-devel mailing list > > [hidden email] > > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > > > > -- > Michael Nazzareno Trimarchi > Amarula Solutions BV > COO Co-Founder > Cruquiuskade 47 Amsterdam 1018 AM NL > T. +31(0)851119172 > M. +39(0)3479132170 > [`as] https://www.amarulasolutions.com -- Michael Nazzareno Trimarchi Amarula Solutions BV COO Co-Founder Cruquiuskade 47 Amsterdam 1018 AM NL T. +31(0)851119172 M. +39(0)3479132170 [`as] https://www.amarulasolutions.com _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi, On Thu, 2020-07-16 at 20:01 +0200, Michael Nazzareno Trimarchi wrote: From the stacktrace look like that I'm hereGST_PAD_STREAM_LOCK (pad); <----- pad is already lockedGST_PAD_STREAM_UNLOCK (pad);Can someone explain me this code? 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. Olivier On Thu, Jul 16, 2020 at 7:51 PM Michael Nazzareno Trimarchi<[hidden email]> wrote:HiThis is more straight forward and happen using QTMultimedia and seek on mppMichaelOn Thu, Jul 16, 2020 at 7:23 PM David Ing <[hidden email]> wrote: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.So I guess step 1 is to analyze your pipeline and make sure you have queues in the right places.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.On Thu, Jul 16, 2020 at 7:16 AM Michael Nazzareno Trimarchi <[hidden email]> wrote:Hi all1 __libc_do_syscall libc-do-syscall.S48 0xb4f100542 __lll_lock_wait lowlevellock.c46 0xb4f0de423 __GI___pthread_mutex_lock pthread_mutex_lock.c113 0xb4f088ac4 g_rec_mutex_lock gthread-posix.c308 0xb4b871205 gst_pad_stop_task gstpad.c6301 0xaddf1d686 gst_mpp_video_dec_sink_event gstmppvideodec.c786 0xac00e8167 gst_pad_send_event_unchecked gstpad.c5761 0xadde8aec8 gst_pad_push_event_unchecked gstpad.c5406 0xadde8fa69 gst_pad_push_event gstpad.c5543 0xaddf0cbc10 gst_base_transform_sink_eventfunc gstbasetransform.c1910 0xadeaed8211 gst_capsfilter_sink_event gstevent.h436 0xad5547e212 gst_pad_send_event_unchecked gstpad.c5761 0xadde8aec13 gst_pad_push_event_unchecked gstpad.c5406 0xadde8fa614 gst_pad_push_event gstpad.c5543 0xaddf0cbc15 gst_base_parse_sink_event_default gstbaseparse.c1466 0xade96b6a16 gst_h264_parse_event gsth264parse.c2905 0xac0752d817 gst_pad_send_event_unchecked gstpad.c5761 0xadde8aec18 gst_pad_push_event_unchecked gstpad.c5406 0xadde8fa619 gst_pad_push_event gstpad.c5543 0xaddf0cbc20 gst_multi_queue_sink_event gstmultiqueue.c2274 0xad56cb5021 gst_pad_send_event_unchecked gstpad.c5760 0xadde88d822 gst_pad_push_event_unchecked gstpad.c5406 0xadde8fa623 gst_pad_push_event gstpad.c5543 0xaddf0cbc24 gst_qtdemux_push_event qtdemux.c1007 0xac98f08225 gst_qtdemux_do_seek qtdemux.c1659 0xac99efca26 gst_qtdemux_handle_src_event qtdemux.c1791 0xac99efca27 gst_pad_send_event_unchecked gstpad.c5761 0xadde8aec28 gst_pad_push_event_unchecked gstpad.c5406 0xadde8fa629 gst_pad_push_event gstpad.c5543 0xaddf0cbc30 gst_pad_send_event_unchecked gstpad.c5761 0xadde8aec31 gst_pad_push_event_unchecked gstpad.c5406 0xadde8fa632 gst_pad_push_event gstpad.c5543 0xaddf0cbc33 gst_base_parse_handle_seek gstevent.h436 0xade92c4e34 gst_base_parse_src_event_default gstbaseparse.c1635 0xade92c4e35 gst_h264_parse_src_event gsth264parse.c2942 0xac079b5036 gst_pad_send_event_unchecked gstpad.c5761 0xadde8aec37 gst_pad_push_event_unchecked gstpad.c5406 0xadde8fa638 gst_pad_push_event gstpad.c5543 0xaddf0cbc39 gst_base_transform_src_eventfunc gstbasetransform.c1962 0xadeaf22640 gst_pad_send_event_unchecked gstpad.c5761 0xadde8aec41 gst_pad_push_event_unchecked gstpad.c5406 0xadde8fa642 gst_pad_push_event gstpad.c5543 0xaddf0cbc43 gst_video_decoder_src_event_default gstvideodecoder.c1494 0xad7b9ba644 gst_pad_send_event_unchecked gstpad.c5761 0xadde8aec45 gst_pad_push_event_unchecked gstpad.c5406 0xadde8fa646 gst_pad_push_event gstpad.c5543 0xaddf0cbc47 event_forward_func gstevent.h436 0xaddf0f7eNeed some help/idea how debug decoder deadlock on seek on video decoding.Michael--Michael Nazzareno TrimarchiAmarula Solutions BVCOO Co-FounderCruquiuskade 47 Amsterdam 1018 AM NLT. +31(0)851119172M. +39(0)3479132170[`as]https://www.amarulasolutions.com_______________________________________________gstreamer-devel mailing list[hidden email]https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel_______________________________________________gstreamer-devel mailing list[hidden email]https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel--Michael Nazzareno TrimarchiAmarula Solutions BVCOO Co-FounderCruquiuskade 47 Amsterdam 1018 AM NLT. +31(0)851119172M. +39(0)3479132170[`as]https://www.amarulasolutions.com -- Olivier Crête _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi Olivier
I think that there are two thread. One is the mainapplication and one is the decoder. sink_event come from the main application but the decoding is on another thread. static gboolean gst_mpp_video_dec_sink_event (GstVideoDecoder * decoder, GstEvent * event) { GstMppVideoDec *self = GST_MPP_VIDEO_DEC (decoder); gboolean ret; switch (GST_EVENT_TYPE (event)) { case GST_EVENT_FLUSH_START: GST_DEBUG_OBJECT (self, "flush start"); gst_mpp_video_dec_unlock (self); break; default: break; } ret = GST_VIDEO_DECODER_CLASS (parent_class)->sink_event (decoder, event); switch (GST_EVENT_TYPE (event)) { case GST_EVENT_FLUSH_START: gst_pad_stop_task (decoder->srcpad); If the decoding thread is working and we are in FLUSH_START I don't need to stop here the the decoder because should be stop later int the flash but in gst_v4l2_video_dec_sink_event, we do similar things but forcing maybe before to unlock the pad. Michael GST_DEBUG_OBJECT (self, "flush done"); break; default: break; } return ret; } On Thu, Jul 16, 2020 at 8:16 PM Olivier Crête <[hidden email]> wrote: > > Hi, > > On Thu, 2020-07-16 at 20:01 +0200, Michael Nazzareno Trimarchi wrote: > > From the stacktrace look like that I'm here > > > GST_PAD_STREAM_LOCK (pad); <----- pad is already locked > > GST_PAD_STREAM_UNLOCK (pad); > > > Can someone explain me this code? > > > 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. > > Olivier > > > On Thu, Jul 16, 2020 at 7:51 PM Michael Nazzareno Trimarchi > > < > > [hidden email] > > > wrote: > > > Hi > > > This is more straight forward and happen using QTMultimedia and seek on mpp > > > Michael > > > On Thu, Jul 16, 2020 at 7:23 PM David Ing < > > [hidden email] > > > wrote: > > > 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. > > > So I guess step 1 is to analyze your pipeline and make sure you have queues in the right places. > > > 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. > > > > On Thu, Jul 16, 2020 at 7:16 AM Michael Nazzareno Trimarchi < > > [hidden email] > > > wrote: > > > Hi all > > > 1 __libc_do_syscall libc-do-syscall.S > > 48 0xb4f10054 > > 2 __lll_lock_wait lowlevellock.c > > 46 0xb4f0de42 > > 3 __GI___pthread_mutex_lock pthread_mutex_lock.c > > 113 0xb4f088ac > > 4 g_rec_mutex_lock gthread-posix.c > > 308 0xb4b87120 > > 5 gst_pad_stop_task gstpad.c > > 6301 0xaddf1d68 > > 6 gst_mpp_video_dec_sink_event gstmppvideodec.c > > 786 0xac00e816 > > 7 gst_pad_send_event_unchecked gstpad.c > > 5761 0xadde8aec > > 8 gst_pad_push_event_unchecked gstpad.c > > 5406 0xadde8fa6 > > 9 gst_pad_push_event gstpad.c > > 5543 0xaddf0cbc > > 10 gst_base_transform_sink_eventfunc gstbasetransform.c > > 1910 0xadeaed82 > > 11 gst_capsfilter_sink_event gstevent.h > > 436 0xad5547e2 > > 12 gst_pad_send_event_unchecked gstpad.c > > 5761 0xadde8aec > > 13 gst_pad_push_event_unchecked gstpad.c > > 5406 0xadde8fa6 > > 14 gst_pad_push_event gstpad.c > > 5543 0xaddf0cbc > > 15 gst_base_parse_sink_event_default gstbaseparse.c > > 1466 0xade96b6a > > 16 gst_h264_parse_event gsth264parse.c > > 2905 0xac0752d8 > > 17 gst_pad_send_event_unchecked gstpad.c > > 5761 0xadde8aec > > 18 gst_pad_push_event_unchecked gstpad.c > > 5406 0xadde8fa6 > > 19 gst_pad_push_event gstpad.c > > 5543 0xaddf0cbc > > 20 gst_multi_queue_sink_event gstmultiqueue.c > > 2274 0xad56cb50 > > 21 gst_pad_send_event_unchecked gstpad.c > > 5760 0xadde88d8 > > 22 gst_pad_push_event_unchecked gstpad.c > > 5406 0xadde8fa6 > > 23 gst_pad_push_event gstpad.c > > 5543 0xaddf0cbc > > 24 gst_qtdemux_push_event qtdemux.c > > 1007 0xac98f082 > > 25 gst_qtdemux_do_seek qtdemux.c > > 1659 0xac99efca > > 26 gst_qtdemux_handle_src_event qtdemux.c > > 1791 0xac99efca > > 27 gst_pad_send_event_unchecked gstpad.c > > 5761 0xadde8aec > > 28 gst_pad_push_event_unchecked gstpad.c > > 5406 0xadde8fa6 > > 29 gst_pad_push_event gstpad.c > > 5543 0xaddf0cbc > > 30 gst_pad_send_event_unchecked gstpad.c > > 5761 0xadde8aec > > 31 gst_pad_push_event_unchecked gstpad.c > > 5406 0xadde8fa6 > > 32 gst_pad_push_event gstpad.c > > 5543 0xaddf0cbc > > 33 gst_base_parse_handle_seek gstevent.h > > 436 0xade92c4e > > 34 gst_base_parse_src_event_default gstbaseparse.c > > 1635 0xade92c4e > > 35 gst_h264_parse_src_event gsth264parse.c > > 2942 0xac079b50 > > 36 gst_pad_send_event_unchecked gstpad.c > > 5761 0xadde8aec > > 37 gst_pad_push_event_unchecked gstpad.c > > 5406 0xadde8fa6 > > 38 gst_pad_push_event gstpad.c > > 5543 0xaddf0cbc > > 39 gst_base_transform_src_eventfunc gstbasetransform.c > > 1962 0xadeaf226 > > 40 gst_pad_send_event_unchecked gstpad.c > > 5761 0xadde8aec > > 41 gst_pad_push_event_unchecked gstpad.c > > 5406 0xadde8fa6 > > 42 gst_pad_push_event gstpad.c > > 5543 0xaddf0cbc > > 43 gst_video_decoder_src_event_default gstvideodecoder.c > > 1494 0xad7b9ba6 > > 44 gst_pad_send_event_unchecked gstpad.c > > 5761 0xadde8aec > > 45 gst_pad_push_event_unchecked gstpad.c > > 5406 0xadde8fa6 > > 46 gst_pad_push_event gstpad.c > > 5543 0xaddf0cbc > > 47 event_forward_func gstevent.h > > 436 0xaddf0f7e > > > Need some help/idea how debug decoder deadlock on seek on video decoding. > > > Michael > > > > -- > > Michael Nazzareno Trimarchi > > Amarula Solutions BV > > COO Co-Founder > > Cruquiuskade 47 Amsterdam 1018 AM NL > > T. +31(0)851119172 > > M. +39(0)3479132170 > > [`as] > > https://www.amarulasolutions.com > > > _______________________________________________ > > gstreamer-devel mailing list > > [hidden email] > > > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > > > > _______________________________________________ > > gstreamer-devel mailing list > > [hidden email] > > > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > > > > > > -- > > Michael Nazzareno Trimarchi > > Amarula Solutions BV > > COO Co-Founder > > Cruquiuskade 47 Amsterdam 1018 AM NL > > T. +31(0)851119172 > > M. +39(0)3479132170 > > [`as] > > https://www.amarulasolutions.com > > > > > > -- > > Olivier Crête > [hidden email] > > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel -- Michael Nazzareno Trimarchi Amarula Solutions BV COO Co-Founder Cruquiuskade 47 Amsterdam 1018 AM NL T. +31(0)851119172 M. +39(0)3479132170 [`as] https://www.amarulasolutions.com _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |