From: Thiago Santos Date: Wed, 17 Jul 2013 03:30:21 +0000 (-0300) Subject: pad-monitor: track current buffer timestamp and duration X-Git-Tag: 1.19.3~491^2~2626 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c53b10e5c5a72f2f1a9875b12c5b1ef0d1e7b01f;p=platform%2Fupstream%2Fgstreamer.git pad-monitor: track current buffer timestamp and duration This can be used to make sure outgoing buffers match the input timestamps --- diff --git a/validate/gst/qa/gst-qa-pad-monitor.c b/validate/gst/qa/gst-qa-pad-monitor.c index ccf134c..55cb0d9 100644 --- a/validate/gst/qa/gst-qa-pad-monitor.c +++ b/validate/gst/qa/gst-qa-pad-monitor.c @@ -233,6 +233,15 @@ gst_qa_pad_monitor_check_first_buffer (GstQaPadMonitor * pad_monitor, } } +static void +gst_qa_pad_monitor_update_buffer_data (GstQaPadMonitor * pad_monitor, + GstBuffer * buffer) +{ + pad_monitor->current_timestamp = GST_BUFFER_TIMESTAMP (buffer); + pad_monitor->current_duration = GST_BUFFER_DURATION (buffer); +} + + static gboolean gst_qa_pad_monitor_sink_event_check (GstQaPadMonitor * pad_monitor, GstEvent * event, GstPadEventFunction handler) @@ -461,7 +470,10 @@ gst_qa_pad_monitor_chain_func (GstPad * pad, GstBuffer * buffer) gst_qa_pad_monitor_check_first_buffer (pad_monitor, buffer); + gst_qa_pad_monitor_update_buffer_data (pad_monitor, buffer); + ret = pad_monitor->chain_func (pad, buffer); + return ret; } @@ -524,6 +536,7 @@ gst_qa_pad_monitor_buffer_probe (GstPad * pad, GstBuffer * buffer, GstQaPadMonitor *monitor = udata; gst_qa_pad_monitor_check_first_buffer (monitor, buffer); + gst_qa_pad_monitor_update_buffer_data (monitor, buffer); /* TODO should we assume that a pad-monitor should always have an * element-monitor as a parent? */ diff --git a/validate/gst/qa/gst-qa-pad-monitor.h b/validate/gst/qa/gst-qa-pad-monitor.h index 114c9a4..e64ce58 100644 --- a/validate/gst/qa/gst-qa-pad-monitor.h +++ b/validate/gst/qa/gst-qa-pad-monitor.h @@ -73,12 +73,16 @@ struct _GstQaPadMonitor { gboolean first_buffer; gboolean has_segment; - GstSegment segment; gboolean pending_flush_stop; guint32 pending_flush_stop_seqnum; guint32 pending_flush_start_seqnum; guint32 pending_newsegment_seqnum; + + /* tracked data */ + GstSegment segment; + GstClockTime current_timestamp; + GstClockTime current_duration; }; /**