scaletempo: Implement SEGMENT query
authorSebastian Dröge <sebastian@centricular.com>
Tue, 23 Oct 2018 08:45:36 +0000 (09:45 +0100)
committerSebastian Dröge <sebastian@centricular.com>
Sun, 28 Oct 2018 17:52:18 +0000 (17:52 +0000)
https://bugzilla.gnome.org/show_bug.cgi?id=797313

gst/audiofx/gstscaletempo.c

index 0bbbd56..3a71971 100644 (file)
@@ -748,6 +748,27 @@ gst_scaletempo_query (GstBaseTransform * trans, GstPadDirection direction,
 
   if (direction == GST_PAD_SRC) {
     switch (GST_QUERY_TYPE (query)) {
+      case GST_QUERY_SEGMENT:
+      {
+        GstFormat format;
+        gint64 start, stop;
+
+        format = scaletempo->out_segment.format;
+
+        start =
+            gst_segment_to_stream_time (&scaletempo->out_segment, format,
+            scaletempo->out_segment.start);
+        if ((stop = scaletempo->out_segment.stop) == -1)
+          stop = scaletempo->out_segment.duration;
+        else
+          stop =
+              gst_segment_to_stream_time (&scaletempo->out_segment, format,
+              stop);
+
+        gst_query_set_segment (query, scaletempo->out_segment.rate, format,
+            start, stop);
+        return TRUE;
+      }
       case GST_QUERY_LATENCY:{
         GstPad *peer;