Merged
Conversation
7c6935e to
0025859
Compare
0025859 to
71287ab
Compare
2b444b9 to
a5132fc
Compare
toots
commented
Sep 12, 2024
toots
added a commit
that referenced
this pull request
Jan 3, 2025
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.
There still are reports of issues with
source.tracksforcing sources to compute theircontent_typebefore we had a chance to assign theirframe_type.For reference:
frame_typeis a type representing the source's content as computed during type unification, e.g.{audio=pcm(stereo)},{video=canvas, audio=pcm(5.1)}etc. This value can be incomplete if no full restrictions are put on the source content.For instance, in:
scan be any content becauseoutput.dummydoes not care about the source's content. So, itsframe_typeis'acontent_typeis a fully realized content value. It is calculated from theframe_type, adding default values.For instance, a source with PCM audio without a specified number of channels,
{audio=pcm('a)}is assigned a content type of{audio=pcm(stereo)}.The problem is that there can be a competition between requesting the source's
content_typeand assigning theframe_type. If content type is requested before all theframe_typehave been assigned then the result can be incompatible, e.g. assigning astereochannel when the source should have had5.1channels.The most typical case is when computing
source.tracks. In the current implementation, the tracks are all extracted immediately at evaluation time which forces the computation of the source's content type right away.In this PR, we introduce a delayed
Source_tracksruntime value. This value can be passed in-lieu of the actual record of source tracks and evaluated only when needed, e.g. in the muxer operator.In order to make things work, we need to also introduce a notion of
dynamic_methodsso that we can do the following:It's a bit hacky but it seems to work fine.