mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-18 07:47:17 +00:00
pad: Only call IDLE probes if we are actually idle
Also only check the data types for non-IDLE probes. When we are idle, we have no data type obviously. Previously we were calling IDLE probes during data flow whenever a non-blocking probe would be called. The pad was usually not idle at that time.
This commit is contained in:
parent
ec090a3af8
commit
fac8b48c27
1 changed files with 6 additions and 2 deletions
|
@ -3050,8 +3050,9 @@ probe_hook_marshal (GHook * hook, ProbeMarshall * data)
|
|||
flags = hook->flags >> G_HOOK_FLAG_USER_SHIFT;
|
||||
type = info->type;
|
||||
|
||||
/* one of the data types */
|
||||
if ((flags & GST_PAD_PROBE_TYPE_ALL_BOTH & type) == 0)
|
||||
/* one of the data types for non-idle probes */
|
||||
if ((type & GST_PAD_PROBE_TYPE_IDLE) == 0
|
||||
&& (flags & GST_PAD_PROBE_TYPE_ALL_BOTH & type) == 0)
|
||||
goto no_match;
|
||||
/* one of the scheduling types */
|
||||
if ((flags & GST_PAD_PROBE_TYPE_SCHEDULING & type) == 0)
|
||||
|
@ -3060,6 +3061,9 @@ probe_hook_marshal (GHook * hook, ProbeMarshall * data)
|
|||
if ((type & GST_PAD_PROBE_TYPE_BLOCKING) &&
|
||||
(flags & GST_PAD_PROBE_TYPE_BLOCKING & type) == 0)
|
||||
goto no_match;
|
||||
if ((type & GST_PAD_PROBE_TYPE_BLOCKING) == 0 &&
|
||||
(flags & GST_PAD_PROBE_TYPE_BLOCKING))
|
||||
goto no_match;
|
||||
/* only probes that have GST_PAD_PROBE_TYPE_EVENT_FLUSH set */
|
||||
if ((type & GST_PAD_PROBE_TYPE_EVENT_FLUSH) &&
|
||||
(flags & GST_PAD_PROBE_TYPE_EVENT_FLUSH & type) == 0)
|
||||
|
|
Loading…
Reference in a new issue