qtdemux: don't respond to a position query in BYTE format with a TIME position
authorEric Trousset <etrousset@awox.com>
Fri, 9 May 2014 14:48:58 +0000 (16:48 +0200)
committerTim-Philipp Müller <tim@centricular.com>
Fri, 9 May 2014 15:12:45 +0000 (16:12 +0100)
https://bugzilla.gnome.org/show_bug.cgi?id=729553

gst/isomp4/qtdemux.c

index 613edad..bcf9d52 100644 (file)
@@ -737,12 +737,17 @@ gst_qtdemux_handle_src_query (GstPad * pad, GstObject * parent,
   GST_LOG_OBJECT (pad, "%s query", GST_QUERY_TYPE_NAME (query));
 
   switch (GST_QUERY_TYPE (query)) {
-    case GST_QUERY_POSITION:
-      if (GST_CLOCK_TIME_IS_VALID (qtdemux->segment.position)) {
+    case GST_QUERY_POSITION:{
+      GstFormat fmt;
+
+      gst_query_parse_position (query, &fmt, NULL);
+      if (fmt == GST_FORMAT_TIME
+          && GST_CLOCK_TIME_IS_VALID (qtdemux->segment.position)) {
         gst_query_set_position (query, GST_FORMAT_TIME,
             qtdemux->segment.position);
         res = TRUE;
       }
+    }
       break;
     case GST_QUERY_DURATION:{
       GstFormat fmt;