rtsp-media: return minimum value in query position case
authorPatricia Muscalu <patricia@axis.com>
Mon, 16 Oct 2017 08:10:17 +0000 (10:10 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Wed, 15 Nov 2017 15:46:00 +0000 (17:46 +0200)
The minimum position should be returned as we are interested
in the whole interval.

Change-Id: I30e297fc040c995ae40c25dee8ff56321612fe2b

https://bugzilla.gnome.org/show_bug.cgi?id=788340

gst/rtsp-server/rtsp-media.c

index 058fa90..d3a1f5a 100644 (file)
@@ -593,9 +593,12 @@ do_query_position (GstRTSPStream * stream, DoQueryPositionData * data)
   gint64 tmp;
 
   if (gst_rtsp_stream_query_position (stream, &tmp)) {
-    data->position = MAX (data->position, tmp);
+    data->position = MIN (data->position, tmp);
     data->ret = TRUE;
   }
+
+  GST_INFO_OBJECT (stream, "media position: %" GST_TIME_FORMAT,
+      GST_TIME_ARGS (data->position));
 }
 
 static gboolean
@@ -606,12 +609,15 @@ default_query_position (GstRTSPMedia * media, gint64 * position)
 
   priv = media->priv;
 
-  data.position = -1;
+  data.position = G_MAXINT64;
   data.ret = FALSE;
 
   g_ptr_array_foreach (priv->streams, (GFunc) do_query_position, &data);
 
-  *position = data.position;
+  if (!data.ret)
+    *position = GST_CLOCK_TIME_NONE;
+  else
+    *position = data.position;
 
   return data.ret;
 }