res = gst_rtsp_message_get_header (ctx->request, GST_RTSP_HDR_RANGE, &str, 0);
if (res == GST_RTSP_OK) {
if (gst_rtsp_range_parse (str, &range) == GST_RTSP_OK) {
+ GstRTSPMediaStatus media_status;
+
/* we have a range, seek to the position */
unit = range->unit;
- if (!gst_rtsp_media_seek (media, range)) {
- gst_rtsp_range_free (range);
- goto seek_failed;
- }
+ gst_rtsp_media_seek (media, range);
gst_rtsp_range_free (range);
+
+ media_status = gst_rtsp_media_get_status (media);
+ if (media_status == GST_RTSP_MEDIA_STATUS_ERROR)
+ goto seek_failed;
}
}
{
g_rec_mutex_unlock (&priv->state_lock);
GST_INFO ("seeking failed");
+ gst_rtsp_media_set_status (media, GST_RTSP_MEDIA_STATUS_ERROR);
return FALSE;
}
preroll_failed: