audiodecoder: use segment start as fallback ts if no other available
authorMark Nauwelaerts <mnauw@users.sourceforge.net>
Mon, 2 Dec 2013 19:35:04 +0000 (20:35 +0100)
committerMark Nauwelaerts <mnauw@users.sourceforge.net>
Mon, 2 Dec 2013 19:36:21 +0000 (20:36 +0100)
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=709965

gst-libs/gst/audio/gstaudiodecoder.c

index 12df4850c13094aaecfe1ce9905cc5f362ebc4ca..51b0dcf0d6ab11a311acd8373cabd6c952b0104f 100644 (file)
@@ -1101,6 +1101,11 @@ gst_audio_decoder_finish_frame (GstAudioDecoder * dec, GstBuffer * buf,
     GST_DEBUG_OBJECT (dec, "base_ts now %" GST_TIME_FORMAT, GST_TIME_ARGS (ts));
   }
 
+  /* still no valid ts, track the segment one */
+  if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (priv->base_ts))) {
+    priv->base_ts = dec->output_segment.start;
+  }
+
   /* slightly convoluted approach caters for perfect ts if subclass desires */
   if (GST_CLOCK_TIME_IS_VALID (ts)) {
     if (dec->priv->tolerance > 0) {