Skip to content

onvifmetadataparse: Refactor clock/condvar waiting

Always first try draining queued data in the loop and only start waiting if there's nothing to drain right now. Otherwise data might have to be drained right now but we still wait and nothing is ever waking up the source pad task again.

Also make sure to not wait multiple times on the same gst::ClockId but instead unset it after waiting on it and no new one was scheduled in the meantime. Future waits on the same ClockId will immediately return and instead we should wait on the condvar if no new ClockId is available.

Merge request reports

Loading