rtsp-media: Fix missing lock in gst_rtsp_media_seekable()

https://bugzilla.gnome.org/show_bug.cgi?id=790674
This commit is contained in:
Patricia Muscalu 2017-11-25 20:45:44 +01:00 committed by Edward Hervey
parent c390202faa
commit 0015791f8f

View file

@ -2581,9 +2581,9 @@ default_handle_message (GstRTSPMedia * media, GstMessage * message)
break; break;
case GST_MESSAGE_ASYNC_DONE: case GST_MESSAGE_ASYNC_DONE:
if (priv->complete) { if (priv->complete) {
/* receive the final ASYNC_DONE, that is posted by the media pipeline /* receive the final ASYNC_DONE, that is posted by the media pipeline
* after all the transport parts have been successfully added to * after all the transport parts have been successfully added to
* the media streams. */ * the media streams. */
GST_DEBUG_OBJECT (media, "got async-done"); GST_DEBUG_OBJECT (media, "got async-done");
if (priv->status == GST_RTSP_MEDIA_STATUS_PREPARING) if (priv->status == GST_RTSP_MEDIA_STATUS_PREPARING)
gst_rtsp_media_set_status (media, GST_RTSP_MEDIA_STATUS_PREPARED); gst_rtsp_media_set_status (media, GST_RTSP_MEDIA_STATUS_PREPARED);
@ -4043,11 +4043,20 @@ gst_rtsp_media_get_transport_mode (GstRTSPMedia * media)
GstClockTimeDiff GstClockTimeDiff
gst_rtsp_media_seekable (GstRTSPMedia * media) gst_rtsp_media_seekable (GstRTSPMedia * media)
{ {
GstRTSPMediaPrivate *priv;
GstClockTimeDiff res;
g_return_val_if_fail (GST_IS_RTSP_MEDIA (media), FALSE); g_return_val_if_fail (GST_IS_RTSP_MEDIA (media), FALSE);
priv = media->priv;
/* Currently we are not able to seek on live streams, /* Currently we are not able to seek on live streams,
* and no stream is seekable only to the beginning */ * and no stream is seekable only to the beginning */
return media->priv->seekable; g_mutex_lock (&priv->lock);
res = priv->seekable;
g_mutex_unlock (&priv->lock);
return res;
} }
/** /**