+12
−5
+23
−4
File changed.
Preview size limit exceeded, changes collapsed.
Loading
This patch removes the responsibility of js-facing MediaStreamTracks from the MediaDecoder stack, and moves the machinery for setting up DecodedStream to higher order functions like state mirroring and watchables. OutputStreamManager is completely gone, since it was designed to manage MediaStreamTracks across multiple output streams for a single decoder, on main thread. HTMLMediaElement took over its task in the previous patch. The MediaDecoderStateMachine now has three control points for capturing: - mOutputCaptured, which, if true, will capture all decoded data into mOutputTracks. If this is set, but mOutputTracks is empty, we are still waiting for tracks, and DecodedStream will not play any data. When tracks are set, a new DecodedStream is created that will play data through SourceMediaTracks piped into mOutputTracks. - mOutputTracks, which is the set of tracks data is captured into, for forwarding to all the output tracks the media element is managing. This set of tracks is managed by the MediaDecoder owner, and must contain one audio track if the decoder is decoding audio, and one video track if the decoder is decoding video. It may be empty since output can be captured before metadata is loaded, or playback has ended. - mOutputPrincipal, which is the principal of the decoded data. All data sent into SourceMediaTracks is tagged with this principal. Differential Revision: https://phabricator.services.mozilla.com/D52042 --HG-- extra : moz-landing-system : lando
File changed.
Preview size limit exceeded, changes collapsed.