From 259c204f42446144467b1fb551196c98b4222923 Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Tue, 24 Nov 2009 16:16:56 -0300 Subject: [PATCH] qtmux: use timestamps for muxing Try to use timestamps even when the stream has out of order timestamps, only fall back to durations when we detect an out of order buffer. Improves sync between streams. --- gst/quicktime/gstqtmux.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gst/quicktime/gstqtmux.c b/gst/quicktime/gstqtmux.c index c5a818e09..f7aeeb50e 100644 --- a/gst/quicktime/gstqtmux.c +++ b/gst/quicktime/gstqtmux.c @@ -1304,11 +1304,12 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf) /* fall back to duration if: * - last bufer - * - this format has out of order buffers (e.g. MPEG-4), + * - the buffers are out of order, * - lack of valid time forces fall back */ - if (buf == NULL || pad->is_out_of_order || + if (buf == NULL || !GST_BUFFER_TIMESTAMP_IS_VALID (last_buf) || - !GST_BUFFER_TIMESTAMP_IS_VALID (buf)) { + !GST_BUFFER_TIMESTAMP_IS_VALID (buf) || + GST_BUFFER_TIMESTAMP (buf) < GST_BUFFER_TIMESTAMP (last_buf)) { if (!GST_BUFFER_DURATION_IS_VALID (last_buf)) { /* be forgiving for some possibly last upstream flushed buffer */ if (buf) -- 2.34.1