mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-02 20:42:30 +00:00
monoscope: Forward the SEGMENT event from the chain function
Otherwise we'll break the event order and forward the SEGMENT event before sending a CAPS event.
This commit is contained in:
parent
d64ae7b01a
commit
a65a7ec05b
2 changed files with 14 additions and 1 deletions
|
@ -163,6 +163,7 @@ gst_monoscope_reset (GstMonoscope * monoscope)
|
|||
|
||||
gst_adapter_clear (monoscope->adapter);
|
||||
gst_segment_init (&monoscope->segment, GST_FORMAT_UNDEFINED);
|
||||
monoscope->segment_pending = FALSE;
|
||||
|
||||
GST_OBJECT_LOCK (monoscope);
|
||||
monoscope->proportion = 1.0;
|
||||
|
@ -345,6 +346,12 @@ gst_monoscope_chain (GstPad * pad, GstObject * parent, GstBuffer * inbuf)
|
|||
goto out;
|
||||
}
|
||||
|
||||
if (monoscope->segment_pending) {
|
||||
gst_pad_push_event (monoscope->srcpad,
|
||||
gst_event_new_segment (&monoscope->segment));
|
||||
monoscope->segment_pending = FALSE;
|
||||
}
|
||||
|
||||
/* don't try to combine samples from discont buffer */
|
||||
if (GST_BUFFER_FLAG_IS_SET (inbuf, GST_BUFFER_FLAG_DISCONT)) {
|
||||
gst_adapter_clear (monoscope->adapter);
|
||||
|
@ -470,7 +477,12 @@ gst_monoscope_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
|
|||
* we can do QoS */
|
||||
gst_event_copy_segment (event, &monoscope->segment);
|
||||
|
||||
res = gst_pad_push_event (monoscope->srcpad, event);
|
||||
/* We forward the event from the chain function after caps are
|
||||
* negotiated. Otherwise we would potentially break the event order and
|
||||
* send the segment event before the caps event */
|
||||
monoscope->segment_pending = TRUE;
|
||||
gst_event_unref (event);
|
||||
res = TRUE;
|
||||
break;
|
||||
}
|
||||
case GST_EVENT_CAPS:
|
||||
|
|
|
@ -54,6 +54,7 @@ struct _GstMonoscope
|
|||
GstBufferPool *pool;
|
||||
|
||||
GstSegment segment;
|
||||
gboolean segment_pending;
|
||||
|
||||
/* QoS stuff *//* with LOCK */
|
||||
gdouble proportion;
|
||||
|
|
Loading…
Reference in a new issue