Bumping gaia.json for 8 gaia revision(s) a=gaia-bump
[gecko.git] / dom / media / moz.build
blob3bfd00027b2771025f77aaf752f755e13fffed01
1 # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
2 # vim: set filetype=python:
3 # This Source Code Form is subject to the terms of the Mozilla Public
4 # License, v. 2.0. If a copy of the MPL was not distributed with this
5 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 DIRS += [
8     'encoder',
9     'gmp',
10     'gmp-plugin',
11     'imagecapture',
12     'mediasource',
13     'ogg',
14     'systemservices',
15     'webaudio',
16     'webrtc',
17     'webspeech',
18     'webvtt',
21 if CONFIG['MOZ_RAW']:
22     DIRS += ['raw']
24 if CONFIG['MOZ_WAVE']:
25     DIRS += ['wave']
27 if CONFIG['MOZ_WEBM']:
28     DIRS += ['webm']
30 if CONFIG['MOZ_GSTREAMER']:
31     DIRS += ['gstreamer']
33 if CONFIG['MOZ_DIRECTSHOW']:
34     DIRS += ['directshow']
36 if CONFIG['MOZ_ANDROID_OMX']:
37     DIRS += ['android']
39 if CONFIG['MOZ_WMF']:
40     DIRS += ['wmf']
42 if CONFIG['MOZ_FMP4']:
43     DIRS += ['fmp4']
45 if CONFIG['MOZ_APPLEMEDIA']:
46     DIRS += ['apple']
48 if CONFIG['MOZ_WEBRTC']:
49     DIRS += ['bridge']
51 if CONFIG['MOZ_OMX_DECODER']:
52     DIRS += ['omx']
53     DIRS += ['omx/mediaresourcemanager']
55 if CONFIG['MOZ_EME']:
56     DIRS += ['eme']
58 TEST_DIRS += [
59     'compiledtest',
60     'gtest',
63 MOCHITEST_CHROME_MANIFESTS += ['test/chrome.ini']
65 MOCHITEST_MANIFESTS += [
66     'test/mochitest.ini',
67     'tests/mochitest/identity/mochitest.ini',
68     'tests/mochitest/ipc/mochitest.ini',
71 if CONFIG['MOZ_WEBRTC']:
72     MOCHITEST_MANIFESTS += ['tests/mochitest/mochitest.ini']
73     WEBRTC_SIGNALLING_TEST_MANIFESTS += ['tests/mochitest/steeplechase.ini']
75 XPIDL_SOURCES += [
76     'nsIDOMNavigatorUserMedia.idl',
77     'nsIMediaManager.idl',
80 XPIDL_MODULE = 'dom_media'
82 EXPORTS += [
83     'AbstractMediaDecoder.h',
84     'AudioBufferUtils.h',
85     'AudioChannelFormat.h',
86     'AudioCompactor.h',
87     'AudioMixer.h',
88     'AudioSampleFormat.h',
89     'AudioSegment.h',
90     'AudioStream.h',
91     'BufferMediaResource.h',
92     'CubebUtils.h',
93     'DecoderTraits.h',
94     'DOMMediaStream.h',
95     'EncodedBufferCache.h',
96     'FileBlockCache.h',
97     'GraphDriver.h',
98     'Latency.h',
99     'MediaCache.h',
100     'MediaData.h',
101     'MediaDecoder.h',
102     'MediaDecoderOwner.h',
103     'MediaDecoderReader.h',
104     'MediaDecoderStateMachine.h',
105     'MediaDecoderStateMachineScheduler.h',
106     'MediaInfo.h',
107     'MediaMetadataManager.h',
108     'MediaPromise.h',
109     'MediaQueue.h',
110     'MediaRecorder.h',
111     'MediaResource.h',
112     'MediaSegment.h',
113     'MediaStreamGraph.h',
114     'MediaTaskQueue.h',
115     'MediaTrack.h',
116     'MediaTrackList.h',
117     'MP3FrameParser.h',
118     'nsIDocumentActivity.h',
119     'RtspMediaResource.h',
120     'SelfRef.h',
121     'SharedBuffer.h',
122     'SharedThreadPool.h',
123     'StreamBuffer.h',
124     'ThreadPoolCOMListener.h',
125     'TimeVarying.h',
126     'TrackUnionStream.h',
127     'VideoFrameContainer.h',
128     'VideoSegment.h',
129     'VideoUtils.h',
130     'VorbisUtils.h',
133 EXPORTS.mozilla += [
134     'MediaManager.h',
137 if CONFIG['MOZ_B2G']:
138     EXPORTS.mozilla += [
139         'MediaPermissionGonk.h',
140     ]
142 EXPORTS.mozilla.dom += [
143     'AudioStreamTrack.h',
144     'AudioTrack.h',
145     'AudioTrackList.h',
146     'GetUserMediaRequest.h',
147     'MediaDevices.h',
148     'MediaStreamError.h',
149     'MediaStreamTrack.h',
150     'TextTrack.h',
151     'TextTrackCue.h',
152     'TextTrackCueList.h',
153     'TextTrackList.h',
154     'TextTrackRegion.h',
155     'VideoPlaybackQuality.h',
156     'VideoStreamTrack.h',
157     'VideoTrack.h',
158     'VideoTrackList.h',
161 UNIFIED_SOURCES += [
162     'AudioChannelFormat.cpp',
163     'AudioCompactor.cpp',
164     'AudioSegment.cpp',
165     'AudioSink.cpp',
166     'AudioStream.cpp',
167     'AudioStreamTrack.cpp',
168     'AudioTrack.cpp',
169     'AudioTrackList.cpp',
170     'CubebUtils.cpp',
171     'DOMMediaStream.cpp',
172     'EncodedBufferCache.cpp',
173     'FileBlockCache.cpp',
174     'GetUserMediaRequest.cpp',
175     'GraphDriver.cpp',
176     'Latency.cpp',
177     'MediaCache.cpp',
178     'MediaData.cpp',
179     'MediaDecoder.cpp',
180     'MediaDecoderReader.cpp',
181     'MediaDecoderStateMachine.cpp',
182     'MediaDecoderStateMachineScheduler.cpp',
183     'MediaDevices.cpp',
184     'MediaManager.cpp',
185     'MediaPromise.cpp',
186     'MediaRecorder.cpp',
187     'MediaResource.cpp',
188     'MediaShutdownManager.cpp',
189     'MediaStreamError.cpp',
190     'MediaStreamGraph.cpp',
191     'MediaStreamTrack.cpp',
192     'MediaTaskQueue.cpp',
193     'MediaTrack.cpp',
194     'MediaTrackList.cpp',
195     'MP3FrameParser.cpp',
196     'RtspMediaResource.cpp',
197     'SharedThreadPool.cpp',
198     'StreamBuffer.cpp',
199     'TextTrack.cpp',
200     'TextTrackCue.cpp',
201     'TextTrackCueList.cpp',
202     'TextTrackList.cpp',
203     'TextTrackRegion.cpp',
204     'TrackUnionStream.cpp',
205     'VideoFrameContainer.cpp',
206     'VideoPlaybackQuality.cpp',
207     'VideoSegment.cpp',
208     'VideoStreamTrack.cpp',
209     'VideoTrack.cpp',
210     'VideoTrackList.cpp',
211     'VideoUtils.cpp',
212     'WebVTTListener.cpp',
215 if CONFIG['OS_TARGET'] == 'WINNT':
216   SOURCES += [ 'ThreadPoolCOMListener.cpp' ]
218 if CONFIG['MOZ_B2G']:
219     SOURCES += [
220         'MediaPermissionGonk.cpp',
221     ]
223 # DecoderTraits.cpp needs to be built separately because of Mac OS X headers.
224 SOURCES += [
225     'DecoderTraits.cpp',
228 # Some codec-related code uses multi-character constants, which GCC and clang
229 # warn about. Suppress turning this warning into an error.
230 if CONFIG['GNU_CC'] or CONFIG['CLANG_CL']:
231   SOURCES['DecoderTraits.cpp'].flags += ['-Wno-error=multichar']
233 EXTRA_COMPONENTS += [
234     'PeerConnection.js',
235     'PeerConnection.manifest',
238 EXTRA_JS_MODULES.media += [
239     'IdpProxy.jsm',
240     'PeerConnectionIdp.jsm',
241     'RTCStatsReport.jsm',
244 FAIL_ON_WARNINGS = True
246 MSVC_ENABLE_PGO = True
248 LOCAL_INCLUDES += [
249     '/caps',
250     '/dom/base',
251     '/dom/camera',
252     '/layout/generic',
253     '/layout/xul',
254     '/netwerk/base/src',
257 if CONFIG['MOZ_DIRECTSHOW']:
258     LOCAL_INCLUDES += [
259         '/media/webrtc/trunk/webrtc/modules/video_capture/windows',
260     ]
262 if CONFIG['MOZ_WEBRTC']:
263     LOCAL_INCLUDES += [
264         '/media/webrtc/signaling/src/common',
265         '/media/webrtc/trunk',
266     ]
268 DEFINES['MOZILLA_INTERNAL_API'] = True
270 if CONFIG['MOZ_OMX_DECODER']:
271     DEFINES['MOZ_OMX_DECODER'] = True
273 if CONFIG['ANDROID_VERSION'] > '15':
274     DEFINES['MOZ_OMX_WEBM_DECODER'] = True
276 CFLAGS += CONFIG['GSTREAMER_CFLAGS']
277 CXXFLAGS += CONFIG['GSTREAMER_CFLAGS']
279 include('/ipc/chromium/chromium-config.mozbuild')
281 # Suppress some GCC warnings being treated as errors:
282 #  - about attributes on forward declarations for types that are already
283 #    defined, which complains about an important MOZ_EXPORT for android::AString
284 if CONFIG['GNU_CC']:
285   CXXFLAGS += ['-Wno-error=attributes']
287 FINAL_LIBRARY = 'xul'