- if you don't know the timestamp, don't try to guess. Send an invalid one.

Original commit message from CVS:
- if you don't know the timestamp, don't try to guess. Send an invalid one.
- use new macro GST_CLOCK_TIME_IS_VALID
- send the first buffer, too (funny that nobody noticed for ages, that we don't send the first audio buffer ever, no?)
This commit is contained in:
Benjamin Otte 2003-04-13 03:11:06 +00:00
parent 94fee6f152
commit c19744b419

View file

@ -1130,7 +1130,7 @@ gst_mad_chain (GstPad *pad, GstBuffer *buffer)
timestamp = GST_BUFFER_TIMESTAMP (buffer); timestamp = GST_BUFFER_TIMESTAMP (buffer);
/* handle timestamps */ /* handle timestamps */
if (timestamp != -1) { if (GST_CLOCK_TIME_IS_VALID (timestamp)) {
/* if there is nothing queued (partial buffer), we prepare to set the /* if there is nothing queued (partial buffer), we prepare to set the
* timestamp on the next buffer */ * timestamp on the next buffer */
if (mad->tempsize == 0) { if (mad->tempsize == 0) {
@ -1274,7 +1274,7 @@ gst_mad_chain (GstPad *pad, GstBuffer *buffer)
if (mad->frame.header.samplerate == 0) { if (mad->frame.header.samplerate == 0) {
g_warning ("mad->frame.header.samplerate is 0; timestamps cannot be calculated"); g_warning ("mad->frame.header.samplerate is 0; timestamps cannot be calculated");
time_offset = mad->base_time + 0; time_offset = GST_CLOCK_TIME_NONE;
} }
else { else {
time_offset = mad->base_time + (mad->total_samples * GST_SECOND time_offset = mad->base_time + (mad->total_samples * GST_SECOND
@ -1291,7 +1291,7 @@ gst_mad_chain (GstPad *pad, GstBuffer *buffer)
} }
if (GST_PAD_IS_USABLE (mad->srcpad) && if (GST_PAD_IS_USABLE (mad->srcpad) &&
mad->segment_start < time_offset) { mad->segment_start <= (time_offset == GST_CLOCK_TIME_NONE ? mad->base_time : time_offset)) {
/* for sample accurate seeking, calculate how many samples /* for sample accurate seeking, calculate how many samples
to skip and send the remaining pcm samples */ to skip and send the remaining pcm samples */