Open
Conversation
ec4d14c to
b98472b
Compare
a1635c2 to
30262aa
Compare
09076b5 to
edd08f5
Compare
624ab0e to
c85b5df
Compare
c85b5df to
5407553
Compare
df3bb9a to
194e809
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR simplifies the handling of sub-clocks and sources belonging to sub clocks.
Generally, the way to handle sub-clocks become strictly through ticking the subclocks.
All sources associated with that clock will then be animated.
If a source is declared as a child source of interest, it is wrapped into an output and that output populates a buffer.
This allows multiple operators to read data from sub-source belonging to a subclock: if the clock needs to be ticked when the operator needs data, it is ticked and all the data generated during the tick is stored in a buffer.
Then, if another operator also needs data from a source inside that clock, if the clock has been ticked and some data was generated, then it can access that data without the need to tick the clock again.
Example
In this example, two inline encoders consume from different sources of the child clock.
When the main clock ticks,
ffmpeg.encode.audio 1can tick the child clock first, generating a fresh round of data forplaylist,singleandadd.Then,
ffmpeg.encode.audio 2can take the data buffered from the child tick generated byffmpeg.encode.audio 1and proceed without having to also tick the child clock.Changes
Operating this way, the old
Child_supportandProducer_consumerAPIs are merged into a single one. Also,Child_supportnow applies to a single source since all sources are now wrapped into their own output.Lastly, a warning is issued when too much data accumulates in the child buffers.