decklinkaudiosrc: Fix discont tracking
authorJan Schmidt <jan@centricular.com>
Thu, 4 Feb 2016 03:25:12 +0000 (14:25 +1100)
committerJan Schmidt <jan@centricular.com>
Thu, 4 Feb 2016 03:33:09 +0000 (14:33 +1100)
Don't reset the marker that's tracking disconts until
either the discont disappears or we resync.

sys/decklink/gstdecklinkaudiosrc.cpp

index e5ac8ae12e8d98d7c3a486a5da65efcd948c8018..9a701ee065299fcba61836bacf3883d561075ce8 100644 (file)
@@ -556,9 +556,10 @@ gst_decklink_audio_src_create (GstPushSrc * bsrc, GstBuffer ** buffer)
           self->next_offset, start_offset);
     GST_BUFFER_FLAG_SET (*buffer, GST_BUFFER_FLAG_DISCONT);
     self->next_offset = end_offset;
+    // Got a discont and adjusted, reset the discont_time marker.
+    self->discont_time = GST_CLOCK_TIME_NONE;
   } else {
     // No discont, just keep counting
-    self->discont_time = GST_CLOCK_TIME_NONE;
     timestamp =
         gst_util_uint64_scale (self->next_offset, GST_SECOND, self->info.rate);
     self->next_offset += sample_count;