gecko/content/media/moz.build
Chris Pearce 02a858e731 Bug 938107 - Wait for media state machine thread to shutdown during XPCOM shutdown before returning. r=roc
Add a MediaShutdownManager and have that as the only xpcom-shutdown
observer. This then shutsdown the MediaDecoders, and blocks waiting for
the media state machine's shared thread to complete shutdown before
exiting from the xpcom-shutdown observer. This ensures that the
MediaDecoder infrastructure does not use XPCOM on any thread after XPCOM
has shutdown, which is a logical error.
2013-12-18 16:59:11 +13:00

181 lines
4.1 KiB
Python

# -*- Mode: python; c-basic-offset: 4; 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/.
PARALLEL_DIRS += [
'encoder',
'mediasource',
'webaudio',
'webvtt'
]
if CONFIG['MOZ_RAW']:
PARALLEL_DIRS += ['raw']
if CONFIG['MOZ_OGG']:
PARALLEL_DIRS += ['ogg']
if CONFIG['MOZ_WAVE']:
PARALLEL_DIRS += ['wave']
if CONFIG['MOZ_WEBM']:
PARALLEL_DIRS += ['webm']
if CONFIG['MOZ_GSTREAMER']:
PARALLEL_DIRS += ['gstreamer']
if CONFIG['MOZ_DIRECTSHOW']:
PARALLEL_DIRS += ['directshow']
if CONFIG['MOZ_MEDIA_PLUGINS']:
PARALLEL_DIRS += ['plugins']
if CONFIG['MOZ_WMF']:
PARALLEL_DIRS += ['wmf']
if CONFIG['MOZ_FMP4']:
PARALLEL_DIRS += ['fmp4']
if CONFIG['MOZ_APPLEMEDIA']:
PARALLEL_DIRS += ['apple']
PARALLEL_DIRS += ['webrtc']
if CONFIG['MOZ_OMX_DECODER']:
PARALLEL_DIRS += ['omx']
PARALLEL_DIRS += ['omx/mediaresourcemanager']
PARALLEL_DIRS += ['webspeech']
TEST_DIRS += ['test']
EXPORTS += [
'AbstractMediaDecoder.h',
'AudioAvailableEventManager.h',
'AudioChannelFormat.h',
'AudioEventTimeline.h',
'AudioNodeEngine.h',
'AudioNodeExternalInputStream.h',
'AudioNodeStream.h',
'AudioSampleFormat.h',
'AudioSegment.h',
'AudioStream.h',
'BufferDecoder.h',
'BufferMediaResource.h',
'DecoderTraits.h',
'DOMMediaStream.h',
'EncodedBufferCache.h',
'FileBlockCache.h',
'Latency.h',
'MediaCache.h',
'MediaDecoder.h',
'MediaDecoderOwner.h',
'MediaDecoderReader.h',
'MediaDecoderStateMachine.h',
'MediaMetadataManager.h',
'MediaRecorder.h',
'MediaResource.h',
'MediaSegment.h',
'MediaStreamGraph.h',
'MP3FrameParser.h',
'RtspMediaResource.h',
'SharedBuffer.h',
'StreamBuffer.h',
'TimeVarying.h',
'TrackUnionStream.h',
'VideoFrameContainer.h',
'VideoSegment.h',
'VideoUtils.h',
'VorbisUtils.h',
]
EXPORTS.mozilla.dom += [
'AudioStreamTrack.h',
'MediaStreamTrack.h',
'TextTrack.h',
'TextTrackCue.h',
'TextTrackCueList.h',
'TextTrackList.h',
'TextTrackRegion.h',
'TextTrackRegionList.h',
'VideoPlaybackQuality.h',
'VideoStreamTrack.h',
]
UNIFIED_SOURCES += [
'AudioAvailableEventManager.cpp',
'AudioChannelFormat.cpp',
'AudioNodeEngine.cpp',
'AudioNodeExternalInputStream.cpp',
'AudioNodeStream.cpp',
'AudioSegment.cpp',
'AudioStream.cpp',
'AudioStreamTrack.cpp',
'BufferDecoder.cpp',
'DOMMediaStream.cpp',
'EncodedBufferCache.cpp',
'FileBlockCache.cpp',
'MediaCache.cpp',
'MediaDecoder.cpp',
'MediaDecoderReader.cpp',
'MediaDecoderStateMachine.cpp',
'MediaRecorder.cpp',
'MediaResource.cpp',
'MediaShutdownManager.cpp',
'MediaStreamGraph.cpp',
'MediaStreamTrack.cpp',
'MP3FrameParser.cpp',
'RtspMediaResource.cpp',
'StreamBuffer.cpp',
'TextTrack.cpp',
'TextTrackCue.cpp',
'TextTrackCueList.cpp',
'TextTrackList.cpp',
'TextTrackRegion.cpp',
'TextTrackRegionList.cpp',
'VideoFrameContainer.cpp',
'VideoPlaybackQuality.cpp',
'VideoSegment.cpp',
'VideoStreamTrack.cpp',
'VideoUtils.cpp',
'WebVTTListener.cpp',
]
# DecoderTraits.cpp needs to be built separately because of Mac OS X headers.
# Latency.cpp needs to be built separately because it forces NSPR logging.
SOURCES += [
'DecoderTraits.cpp',
'Latency.cpp',
]
FAIL_ON_WARNINGS = True
if CONFIG['CPU_ARCH'] == 'arm' and CONFIG['BUILD_ARM_NEON']:
SOURCES += [
'AudioNodeEngineNEON.cpp',
]
MSVC_ENABLE_PGO = True
include('/ipc/chromium/chromium-config.mozbuild')
FINAL_LIBRARY = 'gklayout'
LOCAL_INCLUDES += [
'/content/base/src',
'/layout/generic',
'/layout/xul',
]
if CONFIG['MOZ_DIRECTSHOW']:
LOCAL_INCLUDES += [
'/media/webrtc/trunk/webrtc/modules/video_capture/windows',
]
DEFINES['MOZILLA_INTERNAL_API'] = True
if CONFIG['MOZ_OMX_DECODER']:
DEFINES['MOZ_OMX_DECODER'] = True