summaryrefslogtreecommitdiffstats
path: root/dom/media/moz.build
diff options
context:
space:
mode:
Diffstat (limited to 'dom/media/moz.build')
-rw-r--r--dom/media/moz.build416
1 files changed, 416 insertions, 0 deletions
diff --git a/dom/media/moz.build b/dom/media/moz.build
new file mode 100644
index 0000000000..6e9f9eb205
--- /dev/null
+++ b/dom/media/moz.build
@@ -0,0 +1,416 @@
+# -*- 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",
+ "eme",
+ "encoder",
+ "fake-cdm",
+ "flac",
+ "gmp",
+ "gmp-plugin-openh264",
+ "imagecapture",
+ "ipc",
+ "mediacapabilities",
+ "mediacontrol",
+ "mediasink",
+ "mediasource",
+ "mediasession",
+ "mp3",
+ "ogg",
+ "platforms",
+ "systemservices",
+ "utils",
+ "wave",
+ "webaudio",
+ "webcodecs",
+ "webm",
+ "webrtc",
+ "webspeech",
+ "webvtt",
+]
+
+if CONFIG["MOZ_ANDROID_HLS_SUPPORT"]:
+ DIRS += ["hls"]
+
+if CONFIG["MOZ_FMP4"]:
+ DIRS += ["mp4"]
+
+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.ini",
+ "test/mochitest_background_video.ini",
+ "test/mochitest_bugs.ini",
+ "test/mochitest_compat.ini",
+ "test/mochitest_eme.ini",
+ "test/mochitest_media_recorder.ini",
+ "test/mochitest_seek.ini",
+ "test/mochitest_stream.ini",
+ "webrtc/tests/mochitests/identity/mochitest.ini",
+]
+
+MOCHITEST_CHROME_MANIFESTS += ["test/chrome/chrome.ini"]
+
+BROWSER_CHROME_MANIFESTS += [
+ "mediacontrol/tests/browser/browser.ini",
+ "mediasession/test/browser.ini",
+ "test/browser/browser.ini",
+ "test/browser/wmfme/browser.ini",
+]
+
+if CONFIG["MOZ_WEBRTC"]:
+ MOCHITEST_MANIFESTS += [
+ "webrtc/tests/mochitests/mochitest.ini",
+ "webrtc/tests/mochitests/mochitest_datachannel.ini",
+ "webrtc/tests/mochitests/mochitest_getusermedia.ini",
+ "webrtc/tests/mochitests/mochitest_peerconnection.ini",
+ ]
+
+ 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",
+ "AudioDriftCorrection.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",
+ "DynamicResampler.h",
+ "ExternalEngineStateMachine.h",
+ "FileBlockCache.h",
+ "ForwardedInputTrack.h",
+ "FrameStatistics.h",
+ "ImageToI420.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",
+ "MPSCQueue.h",
+ "nsIDocumentActivity.h",
+ "PrincipalChangeObserver.h",
+ "PrincipalHandle.h",
+ "QueueObject.h",
+ "ReaderProxy.h",
+ "SeekJob.h",
+ "SeekTarget.h",
+ "SelfRef.h",
+ "SharedBuffer.h",
+ "TimeUnits.h",
+ "Tracing.h",
+ "VideoFrameContainer.h",
+ "VideoLimits.h",
+ "VideoSegment.h",
+ "VideoUtils.h",
+ "VorbisUtils.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",
+ "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",
+ "DynamicResampler.cpp",
+ "ExternalEngineStateMachine.cpp",
+ "FileBlockCache.cpp",
+ "FileMediaResource.cpp",
+ "ForwardedInputTrack.cpp",
+ "GetUserMediaRequest.cpp",
+ "GraphDriver.cpp",
+ "GraphRunner.cpp",
+ "ImageToI420.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",
+ "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 += [
+ "/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/libwebrtc",
+ "/third_party/libwebrtc/third_party/abseil-cpp",
+ ]
+
+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")
+
+# 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"