mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-26 22:32:46 +00:00
2bd0b78019
Differential Revision: https://phabricator.services.mozilla.com/D224081
420 lines
10 KiB
Python
420 lines
10 KiB
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/.
|
|
include("/dom/media/webrtc/third_party_build/webrtc.mozbuild")
|
|
|
|
with Files("*"):
|
|
BUG_COMPONENT = ("Core", "Audio/Video")
|
|
|
|
with Files("test/**"):
|
|
BUG_COMPONENT = ("Core", "Audio/Video: Playback")
|
|
|
|
with Files("gtest/TestGMP*"):
|
|
BUG_COMPONENT = ("Core", "Audio/Video: GMP")
|
|
|
|
with Files("tests/**"):
|
|
BUG_COMPONENT = ("Core", "WebRTC")
|
|
|
|
component_signaling = ("Core", "WebRTC: Signaling")
|
|
with Files("IdpSandbox.sys.mjs"):
|
|
BUG_COMPONENT = component_signaling
|
|
with Files("PeerConnection*"):
|
|
BUG_COMPONENT = component_signaling
|
|
|
|
component_av = ("Core", "WebRTC: Audio/Video")
|
|
with Files("GetUserMedia*"):
|
|
BUG_COMPONENT = component_av
|
|
|
|
DIRS += [
|
|
"autoplay",
|
|
"doctor",
|
|
"driftcontrol",
|
|
"eme",
|
|
"encoder",
|
|
"fake-cdm",
|
|
"flac",
|
|
"gmp",
|
|
"gmp-plugin-openh264",
|
|
"imagecapture",
|
|
"ipc",
|
|
"mediacapabilities",
|
|
"mediacontrol",
|
|
"mediasink",
|
|
"mediasource",
|
|
"mediasession",
|
|
"mp3",
|
|
"mp4",
|
|
"ogg",
|
|
"platforms",
|
|
"systemservices",
|
|
"utils",
|
|
"wave",
|
|
"webaudio",
|
|
"webcodecs",
|
|
"webm",
|
|
"webrtc",
|
|
"webspeech",
|
|
"webvtt",
|
|
]
|
|
|
|
if CONFIG["MOZ_ANDROID_HLS_SUPPORT"]:
|
|
DIRS += ["hls"]
|
|
|
|
if CONFIG["MOZ_WEBRTC"]:
|
|
DIRS += ["bridge"]
|
|
|
|
TEST_DIRS += [
|
|
"gtest",
|
|
]
|
|
|
|
# Add libFuzzer configuration directives
|
|
include("/tools/fuzzing/libfuzzer-config.mozbuild")
|
|
|
|
if CONFIG["FUZZING_INTERFACES"]:
|
|
TEST_DIRS += ["fuzz"]
|
|
|
|
if CONFIG["MOZ_WEBRTC_SIGNALING"]:
|
|
if CONFIG["FUZZING_INTERFACES"]:
|
|
TEST_DIRS += ["webrtc/tests/fuzztests"]
|
|
|
|
MOCHITEST_MANIFESTS += [
|
|
"test/mochitest.toml",
|
|
"test/mochitest_background_video.toml",
|
|
"test/mochitest_bugs.toml",
|
|
"test/mochitest_compat.toml",
|
|
"test/mochitest_eme.toml",
|
|
"test/mochitest_eme_compat.toml",
|
|
"test/mochitest_media_engine.toml",
|
|
"test/mochitest_media_recorder.toml",
|
|
"test/mochitest_seek.toml",
|
|
"test/mochitest_stream.toml",
|
|
"webrtc/tests/mochitests/identity/mochitest.toml",
|
|
]
|
|
|
|
MOCHITEST_CHROME_MANIFESTS += ["test/chrome/chrome.toml"]
|
|
|
|
BROWSER_CHROME_MANIFESTS += [
|
|
"mediacontrol/tests/browser/browser.toml",
|
|
"mediasession/test/browser.toml",
|
|
"test/browser/browser.toml",
|
|
"test/browser/wmfme/browser.toml",
|
|
]
|
|
|
|
if CONFIG["MOZ_WEBRTC"]:
|
|
MOCHITEST_MANIFESTS += [
|
|
"webrtc/tests/mochitests/mochitest.toml",
|
|
"webrtc/tests/mochitests/mochitest_datachannel.toml",
|
|
"webrtc/tests/mochitests/mochitest_getusermedia.toml",
|
|
"webrtc/tests/mochitests/mochitest_peerconnection.toml",
|
|
]
|
|
|
|
CRASHTEST_MANIFESTS += ["webrtc/tests/crashtests/crashtests.list"]
|
|
|
|
XPIDL_SOURCES += [
|
|
"nsIAudioDeviceInfo.idl",
|
|
"nsIMediaDevice.idl",
|
|
"nsIMediaManager.idl",
|
|
]
|
|
|
|
XPIDL_MODULE = "dom_media"
|
|
|
|
EXPORTS += [
|
|
"../../third_party/rust/audio_thread_priority/audio_thread_priority.h",
|
|
"ADTSDecoder.h",
|
|
"ADTSDemuxer.h",
|
|
"AsyncLogger.h",
|
|
"AudibilityMonitor.h",
|
|
"AudioBufferUtils.h",
|
|
"AudioChannelFormat.h",
|
|
"AudioCompactor.h",
|
|
"AudioConfig.h",
|
|
"AudioConverter.h",
|
|
"AudioDeviceInfo.h",
|
|
"AudioMixer.h",
|
|
"AudioPacketizer.h",
|
|
"AudioRingBuffer.h",
|
|
"AudioSampleFormat.h",
|
|
"AudioSegment.h",
|
|
"AudioStream.h",
|
|
"BackgroundVideoDecodingPermissionObserver.h",
|
|
"Benchmark.h",
|
|
"BitReader.h",
|
|
"BitWriter.h",
|
|
"BufferMediaResource.h",
|
|
"BufferReader.h",
|
|
"ByteWriter.h",
|
|
"CallbackThreadRegistry.h",
|
|
"ChannelMediaDecoder.h",
|
|
"CrossGraphPort.h",
|
|
"CubebUtils.h",
|
|
"DecoderTraits.h",
|
|
"DOMMediaStream.h",
|
|
"DriftCompensation.h",
|
|
"EncoderTraits.h",
|
|
"ExternalEngineStateMachine.h",
|
|
"FileBlockCache.h",
|
|
"ForwardedInputTrack.h",
|
|
"FrameStatistics.h",
|
|
"ImageConversion.h",
|
|
"Intervals.h",
|
|
"MediaCache.h",
|
|
"MediaContainerType.h",
|
|
"MediaData.h",
|
|
"MediaDataDemuxer.h",
|
|
"MediaDecoder.h",
|
|
"MediaDecoderOwner.h",
|
|
"MediaDecoderStateMachine.h",
|
|
"MediaDecoderStateMachineBase.h",
|
|
"MediaEventSource.h",
|
|
"MediaFormatReader.h",
|
|
"MediaInfo.h",
|
|
"MediaMetadataManager.h",
|
|
"MediaMIMETypes.h",
|
|
"MediaPlaybackDelayPolicy.h",
|
|
"MediaPromiseDefs.h",
|
|
"MediaQueue.h",
|
|
"MediaRecorder.h",
|
|
"MediaResource.h",
|
|
"MediaResourceCallback.h",
|
|
"MediaResult.h",
|
|
"MediaSegment.h",
|
|
"MediaShutdownManager.h",
|
|
"MediaSpan.h",
|
|
"MediaStatistics.h",
|
|
"MediaStreamWindowCapturer.h",
|
|
"MediaTimer.h",
|
|
"MediaTrack.h",
|
|
"MediaTrackGraph.h",
|
|
"MediaTrackList.h",
|
|
"MediaTrackListener.h",
|
|
"MemoryBlockCache.h",
|
|
"nsIDocumentActivity.h",
|
|
"PrincipalChangeObserver.h",
|
|
"PrincipalHandle.h",
|
|
"QueueObject.h",
|
|
"ReaderProxy.h",
|
|
"SeekJob.h",
|
|
"SeekTarget.h",
|
|
"SelfRef.h",
|
|
"SharedBuffer.h",
|
|
"TimedPacketizer.h",
|
|
"TimeUnits.h",
|
|
"Tracing.h",
|
|
"VideoFrameContainer.h",
|
|
"VideoLimits.h",
|
|
"VideoSegment.h",
|
|
"VideoUtils.h",
|
|
"WavDumper.h",
|
|
"XiphExtradata.h",
|
|
]
|
|
|
|
EXPORTS.mozilla += [
|
|
"MediaManager.h",
|
|
"UnderrunHandler.h",
|
|
]
|
|
|
|
EXPORTS.mozilla.media.webrtc += [
|
|
"webrtc/WebrtcGlobal.h",
|
|
"webrtc/WebrtcIPCTraits.h",
|
|
]
|
|
|
|
if not CONFIG["MOZ_WEBRTC"]:
|
|
EXPORTS.transport += [
|
|
"webrtc/transport/runnable_utils.h",
|
|
]
|
|
|
|
EXPORTS.mozilla.dom += [
|
|
"AudioDeviceInfo.h",
|
|
"AudioStreamTrack.h",
|
|
"AudioTrack.h",
|
|
"AudioTrackList.h",
|
|
"CanvasCaptureMediaStream.h",
|
|
"GetUserMediaRequest.h",
|
|
"MediaDeviceInfo.h",
|
|
"MediaDevices.h",
|
|
"MediaStreamError.h",
|
|
"MediaStreamTrack.h",
|
|
"MPSCQueue.h",
|
|
"VideoPlaybackQuality.h",
|
|
"VideoStreamTrack.h",
|
|
"VideoTrack.h",
|
|
"VideoTrackList.h",
|
|
"webrtc/MediaTransportChild.h",
|
|
"webrtc/MediaTransportParent.h",
|
|
]
|
|
|
|
UNIFIED_SOURCES += [
|
|
"ADTSDecoder.cpp",
|
|
"ADTSDemuxer.cpp",
|
|
"AudioCaptureTrack.cpp",
|
|
"AudioChannelFormat.cpp",
|
|
"AudioCompactor.cpp",
|
|
"AudioConfig.cpp",
|
|
"AudioConverter.cpp",
|
|
"AudioDeviceInfo.cpp",
|
|
"AudioInputSource.cpp",
|
|
"AudioRingBuffer.cpp",
|
|
"AudioSegment.cpp",
|
|
"AudioStream.cpp",
|
|
"AudioStreamTrack.cpp",
|
|
"AudioTrack.cpp",
|
|
"AudioTrackList.cpp",
|
|
"BackgroundVideoDecodingPermissionObserver.cpp",
|
|
"BaseMediaResource.cpp",
|
|
"Benchmark.cpp",
|
|
"BitReader.cpp",
|
|
"BitWriter.cpp",
|
|
"CallbackThreadRegistry.cpp",
|
|
"CanvasCaptureMediaStream.cpp",
|
|
"ChannelMediaDecoder.cpp",
|
|
"ChannelMediaResource.cpp",
|
|
"CloneableWithRangeMediaResource.cpp",
|
|
"CrossGraphPort.cpp",
|
|
"CubebInputStream.cpp",
|
|
"DeviceInputTrack.cpp",
|
|
"DOMMediaStream.cpp",
|
|
"ExternalEngineStateMachine.cpp",
|
|
"FileBlockCache.cpp",
|
|
"FileMediaResource.cpp",
|
|
"ForwardedInputTrack.cpp",
|
|
"GetUserMediaRequest.cpp",
|
|
"GraphDriver.cpp",
|
|
"GraphRunner.cpp",
|
|
"ImageConversion.cpp",
|
|
"MediaCache.cpp",
|
|
"MediaContainerType.cpp",
|
|
"MediaDecoder.cpp",
|
|
"MediaDecoderStateMachine.cpp",
|
|
"MediaDecoderStateMachineBase.cpp",
|
|
"MediaDeviceInfo.cpp",
|
|
"MediaDevices.cpp",
|
|
"MediaFormatReader.cpp",
|
|
"MediaInfo.cpp",
|
|
"MediaManager.cpp",
|
|
"MediaMIMETypes.cpp",
|
|
"MediaPlaybackDelayPolicy.cpp",
|
|
"MediaRecorder.cpp",
|
|
"MediaResource.cpp",
|
|
"MediaResult.cpp",
|
|
"MediaShutdownManager.cpp",
|
|
"MediaStreamError.cpp",
|
|
"MediaStreamTrack.cpp",
|
|
"MediaStreamWindowCapturer.cpp",
|
|
"MediaTimer.cpp",
|
|
"MediaTrack.cpp",
|
|
"MediaTrackGraph.cpp",
|
|
"MediaTrackList.cpp",
|
|
"MediaTrackListener.cpp",
|
|
"MemoryBlockCache.cpp",
|
|
"QueueObject.cpp",
|
|
"ReaderProxy.cpp",
|
|
"SeekJob.cpp",
|
|
"TimeUnits.cpp",
|
|
"Tracing.cpp",
|
|
"VideoFrameContainer.cpp",
|
|
"VideoPlaybackQuality.cpp",
|
|
"VideoSegment.cpp",
|
|
"VideoStreamTrack.cpp",
|
|
"VideoTrack.cpp",
|
|
"VideoTrackList.cpp",
|
|
"VideoUtils.cpp",
|
|
"XiphExtradata.cpp",
|
|
]
|
|
|
|
if CONFIG["OS_TARGET"] == "Linux":
|
|
UNIFIED_SOURCES += ["UnderrunHandlerLinux.cpp"]
|
|
else:
|
|
UNIFIED_SOURCES += ["UnderrunHandlerNoop.cpp"]
|
|
|
|
# CubebUtils.cpp needs to be built separately due to what appears to be some kind
|
|
# of compiler bug on Android 4.2 x86 opt. See bug 1408459.
|
|
# DecoderTraits.cpp needs to be built separately because of Mac OS X headers.
|
|
# MediaData.cpp : ambiguous compilation error caused by Mac OS X headers.
|
|
SOURCES += [
|
|
"CubebUtils.cpp",
|
|
"DecoderTraits.cpp",
|
|
"MediaData.cpp",
|
|
]
|
|
|
|
# Some codec-related code uses multi-character constants, which GCC and clang
|
|
# warn about. Suppress turning this warning into an error.
|
|
SOURCES["DecoderTraits.cpp"].flags += ["-Wno-error=multichar"]
|
|
|
|
if CONFIG["MOZ_WEBRTC"]:
|
|
XPCOM_MANIFESTS += [
|
|
"components.conf",
|
|
]
|
|
|
|
EXTRA_JS_MODULES.media += [
|
|
"PeerConnection.sys.mjs",
|
|
]
|
|
|
|
EXTRA_JS_MODULES.media += [
|
|
"IdpSandbox.sys.mjs",
|
|
"PeerConnectionIdp.sys.mjs",
|
|
]
|
|
|
|
LOCAL_INCLUDES += [
|
|
"!/media/libsoundtouch/src",
|
|
"/caps",
|
|
"/docshell/base",
|
|
"/dom/base",
|
|
"/dom/media/webrtc",
|
|
"/layout/generic",
|
|
"/layout/xul",
|
|
"/media/libyuv/libyuv/include",
|
|
"/netwerk/base",
|
|
"/toolkit/content/tests/browser/",
|
|
]
|
|
|
|
if CONFIG["MOZ_WEBRTC"]:
|
|
LOCAL_INCLUDES += [
|
|
"/dom/media/webrtc/common",
|
|
"/third_party/abseil-cpp",
|
|
"/third_party/libwebrtc",
|
|
]
|
|
|
|
DEFINES["MOZILLA_INTERNAL_API"] = True
|
|
|
|
if CONFIG["MOZ_ANDROID_HLS_SUPPORT"]:
|
|
DEFINES["MOZ_ANDROID_HLS_SUPPORT"] = True
|
|
|
|
if CONFIG["COMPILE_ENVIRONMENT"]:
|
|
EXPORTS += [
|
|
"!audioipc2_client_ffi_generated.h",
|
|
"!audioipc2_server_ffi_generated.h",
|
|
]
|
|
|
|
CbindgenHeader(
|
|
"audioipc2_client_ffi_generated.h",
|
|
inputs=["/third_party/rust/audioipc2-client"],
|
|
)
|
|
|
|
CbindgenHeader(
|
|
"audioipc2_server_ffi_generated.h",
|
|
inputs=["/third_party/rust/audioipc2-server"],
|
|
)
|
|
|
|
if CONFIG["ENABLE_TESTS"]:
|
|
DIRS += [
|
|
"test/rdd_process_xpcom",
|
|
]
|
|
|
|
include("/ipc/chromium/chromium-config.mozbuild")
|
|
|
|
LOCAL_INCLUDES += CONFIG["SKIA_INCLUDES"]
|
|
|
|
# Suppress some GCC warnings being treated as errors:
|
|
# - about attributes on forward declarations for types that are already
|
|
# defined, which complains about an important MOZ_EXPORT for android::AString
|
|
if CONFIG["CC_TYPE"] in ("clang", "gcc"):
|
|
CXXFLAGS += [
|
|
"-Wno-error=attributes",
|
|
]
|
|
|
|
CXXFLAGS += ["-Werror=switch"]
|
|
|
|
FINAL_LIBRARY = "xul"
|