Skip to content
Snippets Groups Projects
  1. May 31, 2021
  2. May 24, 2021
  3. May 05, 2021
  4. Apr 29, 2021
  5. Apr 27, 2021
  6. Apr 23, 2021
  7. Apr 20, 2021
  8. Mar 19, 2021
  9. Feb 15, 2021
  10. Feb 01, 2021
    • Branko Subasic's avatar
      rtsp-stream: avoid deadlock in send_func · 6fc8b963
      Branko Subasic authored
      Currently the send_func() runs in a thread of its own which is started
      the first time we enter handle_new_sample(). It runs in an outer loop
      until priv->continue_sending is FALSE, which happens when a TEARDOWN
      request is received. We use a local variable, cont, which is initialized
      to TRUE, meaning that we will always enter the outer loop, and at the
      end of the outer loop we assign it the value of priv->continue_sending.
      
      Within the outer loop there is an inner loop, where we wait to be
      signaled when there is more data to send. The inner loop is exited when
      priv->send_cookie has changed value, which it does when more data is
      available or when a TEARDOWN has been received.
      
      But if we get a TEARDOWN before send_func() is entered we will get stuck
      in the inner loop because no one will increase priv->session_cookie
      anymore.
      
      By not entering the outer loop in send_func() if priv->continue_sending
      is FALSE we make sure that we do not get stuck in send_func()'s inner
      loop should we receive a TEARDOWN before the send thread has started.
      
      Change-Id: I7338a0ea60ea435bb685f875965f5165839afa20
      Part-of: <gstreamer/gst-rtsp-server!187>
      6fc8b963
  11. Jan 22, 2021
    • Branko Subasic's avatar
      rtsp-client: cleanup transports during TEARDOWN · 2894640c
      Branko Subasic authored
      When tunneling RTP over RTSP the stream transports are stored in a hash
      table in the GstRTSPClientPrivate struct. They are used for, among other
      things, mapping channel id to stream transports when receiving data from
      the client. The stream tranports are created and added to the hash table
      in handle_setup_request(), but unfortuately they are not removed in
      handle_teardown_request(). This means that if the client sends data on
      the RTSP connection after it has sent the TEARDOWN, which is often the
      case when audio backchannel is enabled, handle_data() will still be able
      to map the channel to a session transport and pass the data along to it.
      Which eventually leads to a failing assert in gst_rtsp_stream_recv_rtp()
      because the stream is no longer joined to a bin.
      We avoid this by removing the stream transports from the hash table when
      we handle the TEARDOWN request.
      
      Part-of: <gstreamer/gst-rtsp-server!184>
      2894640c
  12. Jan 08, 2021
  13. Dec 23, 2020
  14. Dec 21, 2020
  15. Dec 17, 2020
  16. Dec 15, 2020
  17. Dec 14, 2020
  18. Nov 18, 2020
  19. Nov 16, 2020
  20. Nov 11, 2020
  21. Oct 23, 2020
  22. Oct 19, 2020
  23. Oct 10, 2020
  24. Oct 08, 2020
  25. Sep 30, 2020
  26. Sep 29, 2020
  27. Sep 18, 2020
    • Guiqin Zou's avatar
      rtsp-media: Get rates only on sender streams · c747711a
      Guiqin Zou authored and GStreamer Marge Bot's avatar GStreamer Marge Bot committed
      When play a media with both sender and receiver stream, like ONVIF
      back channel audio in, gst_rtsp_media_get_rates call
      gst_rtsp_stream_get_rates for each stream to set the rates. But
      gst_rtsp_stream_get_rates return false for the receiver steam, which
      lead a g_assert crash.
      
      Instead to get rates on all streams, now just get rates on sender
      streams.
      
      Part-of: <gstreamer/gst-rtsp-server!150>
      c747711a
  28. Sep 09, 2020
Loading