From 543b56c78f7c913fce516d730f3e1ee2aaf85eff Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Sat, 3 Dec 2011 07:06:11 +0100 Subject: [PATCH] basesink: use dts and pts for sync First use DTS, then fall back to PTS for synchronization. --- libs/gst/base/gstbasesink.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libs/gst/base/gstbasesink.c b/libs/gst/base/gstbasesink.c index 121a539bf9..30a2c54e09 100644 --- a/libs/gst/base/gstbasesink.c +++ b/libs/gst/base/gstbasesink.c @@ -3031,9 +3031,12 @@ gst_base_sink_default_get_times (GstBaseSink * basesink, GstBuffer * buffer, { GstClockTime timestamp, duration; - timestamp = GST_BUFFER_TIMESTAMP (buffer); - if (GST_CLOCK_TIME_IS_VALID (timestamp)) { + /* first sync on DTS, else use PTS */ + timestamp = GST_BUFFER_DTS (buffer); + if (!GST_CLOCK_TIME_IS_VALID (timestamp)) + timestamp = GST_BUFFER_PTS (buffer); + if (GST_CLOCK_TIME_IS_VALID (timestamp)) { /* get duration to calculate end time */ duration = GST_BUFFER_DURATION (buffer); if (GST_CLOCK_TIME_IS_VALID (duration)) {