livesync improvements
-
livesync: Rename
activatemode
methods to*_activatemode
This matches the other plugins. -
livesync: Simplify
start_src_task
andsrc_loop
This should effect no change in behavior. -
livesync: Improve audio duration fixups
- An entirely missing duration is now only logged at debug level instead of pretending the duration was zero and warning about it.
- Silently fix up a duration difference up to one sample.
- Error when we fail to calculate the duration; don't try to apply the
fallback_duration
to a non-video stream.
-
livesync: Log a category error when we are missing the segment
-
livesync: Clean up state handling
- Separate resetting state more cleanly, introducing
set_flushing
,sink_reset
andsrc_reset
. - Clear the queue early when we flush, in order to unblock waits on query responses.
- Return an error when we fail to start, pause or stop the task.
- Separate resetting state more cleanly, introducing
-
livesync: Replace an
if
-let
withmatch
No change in behavior, yet. Separate commit to ease reviewing. -
livesync: Move a notify closer to the interesting state change
Move thenotify_all
to where we pop the buffer. We're moving within a single state lock so no change in behavior. -
livesync: Move
num_in
counting to the src task
This is in preparation for moving more accept/discard logic to the src task, so we can only countnum_in
here. -
livesync: Simplify
num_duplicate
counting -
livesync: Handle flags and late buffer patching after queueing
This makes the chain function almost independent of the output state. We still do the early discard check withbuffer_is_backwards
so we don't try to queue buffers we can't use, allowing us to fast-forward upstream without blocking on the src task.Don't accept
LateOverThreshold
buffers when we havepending_caps
or apending_segment
. We need to apply these first before we can sensibly patch buffers from the new stream.Deduplicate most of the output buffer patching code into a new
patch_output_buffer
method.For: #450 (closed)
-
livesync: Separate
out_buffer
duplicate status fromGAP
flag
Otherwise we might get confused by upstream GAP buffers. -
livesync: Use
fallback_duration
for audio repeat buffers as well
Don't depend on upstream giving us sanely-sized buffers if we want to repeat. -
livesync: example: Add
identity
ssingle-segment=1
These let us change the runtime offset of the test buffers via pad offsets without pushing new segments into livesync, which is necessary to demo the late-threshold behavior.
Merge request reports
Activity
mentioned in issue #450 (closed)
- Resolved by Sebastian Dröge
- Resolved by Sebastian Dröge
- Resolved by Jan Alexander Steffens
- Resolved by Jan Alexander Steffens
- Resolved by Sebastian Dröge
- Resolved by Sebastian Dröge
- Resolved by Sebastian Dröge
- Resolved by Guillaume Desmottes
Should this fix #450 (closed) or just make it less bad?
added 14 commits
-
d27a04e0 - 1 commit from branch
gstreamer:main
- d27a04e0...673b5ac0 - 3 earlier commits
- 5f682b73 - livesync: Log a category error when we are missing the segment
- 553363cc - livesync: Clean up state handling
- 4359948d - livesync: Replace an if-let with match
- a1089c55 - livesync: Move a notify closer to the interesting state change
- d78fa033 - livesync: Move num_in counting to the src task
- de6d69f1 - livesync: Simplify num_duplicate counting
- adabb951 - livesync: Handle flags and late buffer patching after queueing
- 8ce6de8a - livesync: Separate out_buffer duplicate status from GAP flag
- 04522825 - livesync: Use fallback_duration for audio repeat buffers as well
- dbb56f7c - livesync: example: Add identities single-segment=1
Toggle commit list-
d27a04e0 - 1 commit from branch
- Resolved by Jan Alexander Steffens
assigned to @gstreamer-merge-bot
mentioned in commit heftig/gst-plugins-rs@62791bfb