diff options
author | Tim-Philipp Müller <tim.muller@collabora.co.uk> | 2012-07-04 18:58:46 +0100 |
---|---|---|
committer | Tim-Philipp Müller <tim.muller@collabora.co.uk> | 2012-07-04 19:03:12 +0100 |
commit | 8098a2f0b26b10c8cb611d634190532d2b2a9aed (patch) | |
tree | 3f9f8993225c98774d4bcb051ad13cd9c035b5c3 /gst/imagefreeze | |
parent | b64849550ddedbec998a8157ae31e30c3fd2d7d1 (diff) |
imagefreeze: clear 0 DTS on buffers output, as sinks will prefer DTS over PTS for syncing
Since the initial decoded still image buffer will have dts=pts=0, and
we only set PTS on buffers we push out, all buffers pushed out would
have a DTS of 0. Sinks, however, will prefer DTS over PTS if both are
set, and will therefore always see a timestamp of 0 no matter what
the PTS is set to.
Fixes unit test too.
Diffstat (limited to 'gst/imagefreeze')
-rw-r--r-- | gst/imagefreeze/gstimagefreeze.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gst/imagefreeze/gstimagefreeze.c b/gst/imagefreeze/gstimagefreeze.c index b219be7d5..34041e0d4 100644 --- a/gst/imagefreeze/gstimagefreeze.c +++ b/gst/imagefreeze/gstimagefreeze.c @@ -714,7 +714,7 @@ gst_image_freeze_src_loop (GstPad * pad) if (self->need_segment) { GstEvent *e; - GST_DEBUG_OBJECT (pad, "Pushing NEWSEGMENT event: %" GST_SEGMENT_FORMAT, + GST_DEBUG_OBJECT (pad, "Pushing SEGMENT event: %" GST_SEGMENT_FORMAT, &self->segment); e = gst_event_new_segment (&self->segment); @@ -777,7 +777,8 @@ gst_image_freeze_src_loop (GstPad * pad) if (in_seg) { GstFlowReturn ret; - GST_BUFFER_TIMESTAMP (buffer) = cstart; + GST_BUFFER_DTS (buffer) = GST_CLOCK_TIME_NONE; + GST_BUFFER_PTS (buffer) = cstart; GST_BUFFER_DURATION (buffer) = cstop - cstart; GST_BUFFER_OFFSET (buffer) = offset; GST_BUFFER_OFFSET_END (buffer) = offset + 1; |