aacparse: ADIF: do not send bogus timestamps, leave to downstream (decoder)
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Thu, 18 Jun 2009 10:13:28 +0000 (12:13 +0200)
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Fri, 19 Jun 2009 16:13:09 +0000 (18:13 +0200)
gst/aacparse/gstaacparse.c

index 0790634..6db4b61 100644 (file)
@@ -664,8 +664,12 @@ gst_aacparse_parse_frame (GstBaseParse * parse, GstBuffer * buffer)
     }
   }
 
-  GST_BUFFER_DURATION (buffer) = AAC_FRAME_DURATION (aacparse);
-  GST_BUFFER_TIMESTAMP (buffer) = aacparse->ts;
+  /* ADIF: only send an initial 0 timestamp downstream,
+   * then admit we have no idea and let downstream (decoder) handle it */
+  if (aacparse->header_type != DSPAAC_HEADER_ADIF || !aacparse->ts) {
+    GST_BUFFER_DURATION (buffer) = AAC_FRAME_DURATION (aacparse);
+    GST_BUFFER_TIMESTAMP (buffer) = aacparse->ts;
+  }
 
   if (GST_CLOCK_TIME_IS_VALID (aacparse->ts))
     aacparse->ts += GST_BUFFER_DURATION (buffer);