basesrc: Only set duration/position query values in case of query success
authorCarlos Rafael Giani <dv@pseudoterminal.org>
Mon, 11 Jan 2016 20:17:25 +0000 (21:17 +0100)
committerSebastian Dröge <sebastian@centricular.com>
Mon, 11 Jan 2016 20:42:10 +0000 (21:42 +0100)
Currently, the query values are being set even if the query itself was
determined to have failed. Fix this to ensure the values are only set in
case of a query success.

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

libs/gst/base/gstbasesrc.c

index 6ab4816..ed10d82 100644 (file)
@@ -1038,7 +1038,9 @@ gst_base_src_default_query (GstBaseSrc * src, GstQuery * query)
           } else
             res = TRUE;
 
-          gst_query_set_position (query, format, position);
+          if (res)
+            gst_query_set_position (query, format, position);
+
           break;
         }
       }
@@ -1091,7 +1093,10 @@ gst_base_src_default_query (GstBaseSrc * src, GstQuery * query)
              * means that we cannot report the duration at all. */
             res = TRUE;
           }
-          gst_query_set_duration (query, format, duration);
+
+          if (res)
+            gst_query_set_duration (query, format, duration);
+
           break;
         }
       }