mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-01 21:18:52 +00:00
pad-monitor: track current buffer timestamp and duration
This can be used to make sure outgoing buffers match the input timestamps
This commit is contained in:
parent
9a82afbc87
commit
c53b10e5c5
2 changed files with 18 additions and 1 deletions
|
@ -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? */
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue