[MOVED FROM GST-P-FARSIGHT] Reset the gst timestamp if the time different is too large

20080704215550-3e2dc-76eb3f600f2b977e916f7e1f654529ddaff06ac9.gz
This commit is contained in:
Olivier Crete 2008-07-04 21:55:50 +00:00 committed by Olivier Crête
parent 9e7cada4a9
commit 7d52a6fc1a

View file

@ -270,15 +270,17 @@ gst_mimdec_chain (GstPad *pad, GstBuffer *in)
goto out; goto out;
} }
GST_BUFFER_TIMESTAMP(out_buf) = mimdec->gst_timestamp;
if (mimdec->last_ts != -1) { if (mimdec->last_ts != -1) {
int diff = mimdec->current_ts - mimdec->last_ts; int diff = mimdec->current_ts - mimdec->last_ts;
if (diff < 0 || diff > 5000) { if (diff < 0 || diff > 5000) {
diff = 1000; diff = 1000;
mimdec->gst_timestamp = GST_CLOCK_TIME_NONE;
} }
if (GST_CLOCK_TIME_IS_VALID (mimdec->gst_timestamp)) if (GST_CLOCK_TIME_IS_VALID (mimdec->gst_timestamp))
mimdec->gst_timestamp += diff * GST_MSECOND; mimdec->gst_timestamp += diff * GST_MSECOND;
} }
GST_BUFFER_TIMESTAMP(out_buf) = mimdec->gst_timestamp;
mimdec->last_ts = mimdec->current_ts; mimdec->last_ts = mimdec->current_ts;