rtsp-media: Unprepare suspended medias too
authorSebastian Dröge <sebastian@centricular.com>
Thu, 7 Oct 2021 10:00:10 +0000 (13:00 +0300)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Thu, 7 Oct 2021 11:16:39 +0000 (11:16 +0000)
Previously suspended medias immediately reached the UNPREPARED state
without going through the media's unprepare() vfunc. This didn't allow
the media subclass to do any additional cleanup, and for example the
shutdown-eos property of GstRTSPMedia was ignored.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1090>

subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-media.c

index 0ca0d9f..f78355e 100644 (file)
@@ -4108,7 +4108,8 @@ gst_rtsp_media_unprepare (GstRTSPMedia * media)
   set_target_state (media, GST_STATE_NULL, FALSE);
   success = TRUE;
 
-  if (priv->status == GST_RTSP_MEDIA_STATUS_PREPARED) {
+  if (priv->status == GST_RTSP_MEDIA_STATUS_PREPARED
+      || priv->status == GST_RTSP_MEDIA_STATUS_SUSPENDED) {
     GstRTSPMediaClass *klass;
 
     klass = GST_RTSP_MEDIA_GET_CLASS (media);