Hello,
Our code is based on test-appsrc.c, when the rtsp server is run, all new client connections are accepted and are still accepted if there is always one client connection alive. When all client connections are closed, it is not possible to connect anymore to the server. The code is available here: https://gist.github.com/Mezzano/43789624d4983d70bcd9610ecaddbb30 Can someone help us? Thanks -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
When the first client connects, it should call media-prepare (which it
looks like it is doing) When everyone disconnects, the media itself will emit the signal "unprepared", you can take advantage of this to do clean-up, etc. I can't really tell how you are doing clean-up at the moment, or what you want to happen when everyone disconnects (should it still be playing / pause / or stop and tear down). When the next client connects, the media factory should call media-prepare again. Is this happening? Are you getting any error log output? On 2/5/2018 10:12 AM, tanguy wrote: > Hello, > > Our code is based on test-appsrc.c, when the rtsp server is run, all new > client connections are accepted and are still accepted if there is always > one client connection alive. > > When all client connections are closed, it is not possible to connect > anymore to the server. > > The code is available here: > https://gist.github.com/Mezzano/43789624d4983d70bcd9610ecaddbb30 > > Can someone help us? > > Thanks > > > > -- > Sent from: http://gstreamer-devel.966125.n4.nabble.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 |
Hi Michael,
Here are some logs: https://gist.github.com/Mezzano/a28d798120355507ae35a3d1e6400749 1st client connects 2d client connects 2d client disconnects 1st client disconnects 1st client try to connect When everyone disconnects, it should still be playing. In the logs gst_rtsp_media_prepare is called when next client wants to connect (00:22.596375) and (00:33.488205). -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hello,
From what I can tell it looks like it is preparing the media when the first client connects, but when the first client disconnects the pipeline state is being set to null, and is calling unprepare. You might need to handle this event such that you can reconnect to the rtsp server. You could also potentially try setting the suspend mode https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-rtsp-server/html/GstRTSPMedia.html#gst-rtsp-media-set-suspend-mode Personally I have it set to GST_RTSP_SUSPEND_MODE_NONE, but I have a feeling you need to handle the unprepare so you can prepare again. I find the line: 0:00:12.859426345 [336m25781[00m 0x67501f50 [36mINFO [00m [00m rtspstream rtsp-stream.c:1349:find_transport:[00m finding 10.1.41.238:43859 in 2 transports To be rather suspicious, it almost looks like it doesn't fully remove the client. I am also assuming this breaks if you have 1 client disconnect and reconnect? I wish I could be more help, but this is a lot to look over. Cheers, Michael. On 2/6/2018 8:06 AM, tanguy wrote: > Hi Michael, > > Here are some logs: > https://gist.github.com/Mezzano/a28d798120355507ae35a3d1e6400749 > > 1st client connects > 2d client connects > 2d client disconnects > 1st client disconnects > 1st client try to connect > > When everyone disconnects, it should still be playing. > In the logs gst_rtsp_media_prepare is called when next client wants to > connect (00:22.596375) and (00:33.488205). > > > > -- > Sent from: http://gstreamer-devel.966125.n4.nabble.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 |
Hi Michael,
Thanks for your reply. When all clients disconnect, I get into the signal "unprepared". Catching the signal and doing gst_rtsp_media_prepare(media,NULL); is not enough, not sure if this is the correct way to prepare again correctly. When adding GST_RTSP_SUSPEND_MODE_NONE, I am able to reconnect (after a first all clients disconnect) but the first client connection stream is missing a lot of frames: Additional debug info: gstbasesink.c(2854): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0: There may be a timestamping problem, or this computer is too slow. WARNING: from element /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0: A lot of buffers are being dropped. What should I do to either never go into "unprepared" mode or to correctly fully remove last client and be able to "prepare" again correctly? Thanks for helping, I've got the feeling its not that much to adapt. -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi again,
I've found "gst_rtsp_media_factory_is_stop_on_disonnect", but it is on the master branch. I'm using branch 1.4 to be compatible with my Gstreamer Framework version. Could I use the master version of gst-rtsp-server on my 1.4 framework? I see also that the online gtk doc is not up to date with the master branch (I don't find any gst_rtsp_media_factory_is_stop_on_disonnect method in https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-rtsp-server/html/GstRTSPMediaFactory.html#gst-rtsp-media-factory-is-eos-shutdown. Thanks -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hello,
I've finally installed Gstreamer 1.13.90 and here are the logs I have when trying to reconnect after all clients are gone: Server side: https://gist.github.com/Mezzano/12d550685d27d3c65647c12fd1cae549 Client side: https://gist.github.com/Mezzano/433eb2b833cbe396329a69aedab0bdf9 Maybe you have a simple video stream example with appsrc appsink that works with rtsp server. The default appsrc example is not enough. Thanks for helping me with this. -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |