summaryrefslogtreecommitdiff
path: root/gst/imagefreeze
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim.muller@collabora.co.uk>2012-07-04 18:58:46 +0100
committerTim-Philipp Müller <tim.muller@collabora.co.uk>2012-07-04 19:03:12 +0100
commit8098a2f0b26b10c8cb611d634190532d2b2a9aed (patch)
tree3f9f8993225c98774d4bcb051ad13cd9c035b5c3 /gst/imagefreeze
parentb64849550ddedbec998a8157ae31e30c3fd2d7d1 (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.c5
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;