mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-21 09:15:35 +00:00
7800d98a51
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
24 lines
596 B
Python
24 lines
596 B
Python
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
|
# vim: set filetype=python:
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
UNIFIED_SOURCES += [
|
|
'AudioSink.cpp',
|
|
'AudioSinkWrapper.cpp',
|
|
'DecodedStream.cpp',
|
|
'VideoSink.cpp',
|
|
]
|
|
|
|
EXPORTS += [
|
|
'MediaSink.h'
|
|
]
|
|
|
|
include('/ipc/chromium/chromium-config.mozbuild')
|
|
|
|
FINAL_LIBRARY = 'xul'
|
|
|
|
if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
|
|
CXXFLAGS += ['-Wno-error=shadow']
|