gecko/dom/media/AudioStream.cpp
Birunthan Mohanathas 09e204851c Bug 946065 - Part 10: Move content/media/ to dom/. r=peterv
--HG--
rename : content/media/AbstractMediaDecoder.h => dom/media/AbstractMediaDecoder.h
rename : content/media/AudioBufferUtils.h => dom/media/AudioBufferUtils.h
rename : content/media/AudioChannelFormat.cpp => dom/media/AudioChannelFormat.cpp
rename : content/media/AudioChannelFormat.h => dom/media/AudioChannelFormat.h
rename : content/media/AudioCompactor.cpp => dom/media/AudioCompactor.cpp
rename : content/media/AudioCompactor.h => dom/media/AudioCompactor.h
rename : content/media/AudioMixer.h => dom/media/AudioMixer.h
rename : content/media/AudioSampleFormat.h => dom/media/AudioSampleFormat.h
rename : content/media/AudioSegment.cpp => dom/media/AudioSegment.cpp
rename : content/media/AudioSegment.h => dom/media/AudioSegment.h
rename : content/media/AudioSink.cpp => dom/media/AudioSink.cpp
rename : content/media/AudioSink.h => dom/media/AudioSink.h
rename : content/media/AudioStream.cpp => dom/media/AudioStream.cpp
rename : content/media/AudioStream.h => dom/media/AudioStream.h
rename : content/media/AudioStreamTrack.cpp => dom/media/AudioStreamTrack.cpp
rename : content/media/AudioStreamTrack.h => dom/media/AudioStreamTrack.h
rename : content/media/AudioTrack.cpp => dom/media/AudioTrack.cpp
rename : content/media/AudioTrack.h => dom/media/AudioTrack.h
rename : content/media/AudioTrackList.cpp => dom/media/AudioTrackList.cpp
rename : content/media/AudioTrackList.h => dom/media/AudioTrackList.h
rename : content/media/BufferMediaResource.h => dom/media/BufferMediaResource.h
rename : content/media/CubebUtils.cpp => dom/media/CubebUtils.cpp
rename : content/media/CubebUtils.h => dom/media/CubebUtils.h
rename : content/media/DOMMediaStream.cpp => dom/media/DOMMediaStream.cpp
rename : content/media/DOMMediaStream.h => dom/media/DOMMediaStream.h
rename : content/media/DecoderTraits.cpp => dom/media/DecoderTraits.cpp
rename : content/media/DecoderTraits.h => dom/media/DecoderTraits.h
rename : content/media/EncodedBufferCache.cpp => dom/media/EncodedBufferCache.cpp
rename : content/media/EncodedBufferCache.h => dom/media/EncodedBufferCache.h
rename : content/media/FileBlockCache.cpp => dom/media/FileBlockCache.cpp
rename : content/media/FileBlockCache.h => dom/media/FileBlockCache.h
rename : content/media/GraphDriver.cpp => dom/media/GraphDriver.cpp
rename : content/media/GraphDriver.h => dom/media/GraphDriver.h
rename : content/media/Latency.cpp => dom/media/Latency.cpp
rename : content/media/Latency.h => dom/media/Latency.h
rename : content/media/MP3FrameParser.cpp => dom/media/MP3FrameParser.cpp
rename : content/media/MP3FrameParser.h => dom/media/MP3FrameParser.h
rename : content/media/MediaCache.cpp => dom/media/MediaCache.cpp
rename : content/media/MediaCache.h => dom/media/MediaCache.h
rename : content/media/MediaData.cpp => dom/media/MediaData.cpp
rename : content/media/MediaData.h => dom/media/MediaData.h
rename : content/media/MediaDataDecodedListener.h => dom/media/MediaDataDecodedListener.h
rename : content/media/MediaDecoder.cpp => dom/media/MediaDecoder.cpp
rename : content/media/MediaDecoder.h => dom/media/MediaDecoder.h
rename : content/media/MediaDecoderOwner.h => dom/media/MediaDecoderOwner.h
rename : content/media/MediaDecoderReader.cpp => dom/media/MediaDecoderReader.cpp
rename : content/media/MediaDecoderReader.h => dom/media/MediaDecoderReader.h
rename : content/media/MediaDecoderStateMachine.cpp => dom/media/MediaDecoderStateMachine.cpp
rename : content/media/MediaDecoderStateMachine.h => dom/media/MediaDecoderStateMachine.h
rename : content/media/MediaDecoderStateMachineScheduler.cpp => dom/media/MediaDecoderStateMachineScheduler.cpp
rename : content/media/MediaDecoderStateMachineScheduler.h => dom/media/MediaDecoderStateMachineScheduler.h
rename : content/media/MediaInfo.h => dom/media/MediaInfo.h
rename : content/media/MediaMetadataManager.h => dom/media/MediaMetadataManager.h
rename : content/media/MediaQueue.h => dom/media/MediaQueue.h
rename : content/media/MediaRecorder.cpp => dom/media/MediaRecorder.cpp
rename : content/media/MediaRecorder.h => dom/media/MediaRecorder.h
rename : content/media/MediaResource.cpp => dom/media/MediaResource.cpp
rename : content/media/MediaResource.h => dom/media/MediaResource.h
rename : content/media/MediaSegment.h => dom/media/MediaSegment.h
rename : content/media/MediaShutdownManager.cpp => dom/media/MediaShutdownManager.cpp
rename : content/media/MediaShutdownManager.h => dom/media/MediaShutdownManager.h
rename : content/media/MediaStreamGraph.cpp => dom/media/MediaStreamGraph.cpp
rename : content/media/MediaStreamGraph.h => dom/media/MediaStreamGraph.h
rename : content/media/MediaStreamGraphImpl.h => dom/media/MediaStreamGraphImpl.h
rename : content/media/MediaStreamTrack.cpp => dom/media/MediaStreamTrack.cpp
rename : content/media/MediaStreamTrack.h => dom/media/MediaStreamTrack.h
rename : content/media/MediaTaskQueue.cpp => dom/media/MediaTaskQueue.cpp
rename : content/media/MediaTaskQueue.h => dom/media/MediaTaskQueue.h
rename : content/media/MediaTrack.cpp => dom/media/MediaTrack.cpp
rename : content/media/MediaTrack.h => dom/media/MediaTrack.h
rename : content/media/MediaTrackList.cpp => dom/media/MediaTrackList.cpp
rename : content/media/MediaTrackList.h => dom/media/MediaTrackList.h
rename : content/media/RtspMediaResource.cpp => dom/media/RtspMediaResource.cpp
rename : content/media/RtspMediaResource.h => dom/media/RtspMediaResource.h
rename : content/media/SharedBuffer.h => dom/media/SharedBuffer.h
rename : content/media/SharedThreadPool.cpp => dom/media/SharedThreadPool.cpp
rename : content/media/SharedThreadPool.h => dom/media/SharedThreadPool.h
rename : content/media/StreamBuffer.cpp => dom/media/StreamBuffer.cpp
rename : content/media/StreamBuffer.h => dom/media/StreamBuffer.h
rename : content/media/TextTrack.cpp => dom/media/TextTrack.cpp
rename : content/media/TextTrack.h => dom/media/TextTrack.h
rename : content/media/TextTrackCue.cpp => dom/media/TextTrackCue.cpp
rename : content/media/TextTrackCue.h => dom/media/TextTrackCue.h
rename : content/media/TextTrackCueList.cpp => dom/media/TextTrackCueList.cpp
rename : content/media/TextTrackCueList.h => dom/media/TextTrackCueList.h
rename : content/media/TextTrackList.cpp => dom/media/TextTrackList.cpp
rename : content/media/TextTrackList.h => dom/media/TextTrackList.h
rename : content/media/TextTrackRegion.cpp => dom/media/TextTrackRegion.cpp
rename : content/media/TextTrackRegion.h => dom/media/TextTrackRegion.h
rename : content/media/ThreadPoolCOMListener.cpp => dom/media/ThreadPoolCOMListener.cpp
rename : content/media/ThreadPoolCOMListener.h => dom/media/ThreadPoolCOMListener.h
rename : content/media/TimeVarying.h => dom/media/TimeVarying.h
rename : content/media/TrackUnionStream.cpp => dom/media/TrackUnionStream.cpp
rename : content/media/TrackUnionStream.h => dom/media/TrackUnionStream.h
rename : content/media/VideoFrameContainer.cpp => dom/media/VideoFrameContainer.cpp
rename : content/media/VideoFrameContainer.h => dom/media/VideoFrameContainer.h
rename : content/media/VideoPlaybackQuality.cpp => dom/media/VideoPlaybackQuality.cpp
rename : content/media/VideoPlaybackQuality.h => dom/media/VideoPlaybackQuality.h
rename : content/media/VideoSegment.cpp => dom/media/VideoSegment.cpp
rename : content/media/VideoSegment.h => dom/media/VideoSegment.h
rename : content/media/VideoStreamTrack.cpp => dom/media/VideoStreamTrack.cpp
rename : content/media/VideoStreamTrack.h => dom/media/VideoStreamTrack.h
rename : content/media/VideoTrack.cpp => dom/media/VideoTrack.cpp
rename : content/media/VideoTrack.h => dom/media/VideoTrack.h
rename : content/media/VideoTrackList.cpp => dom/media/VideoTrackList.cpp
rename : content/media/VideoTrackList.h => dom/media/VideoTrackList.h
rename : content/media/VideoUtils.cpp => dom/media/VideoUtils.cpp
rename : content/media/VideoUtils.h => dom/media/VideoUtils.h
rename : content/media/VorbisUtils.h => dom/media/VorbisUtils.h
rename : content/media/WebVTTListener.cpp => dom/media/WebVTTListener.cpp
rename : content/media/WebVTTListener.h => dom/media/WebVTTListener.h
rename : content/media/android/AndroidMediaDecoder.cpp => dom/media/android/AndroidMediaDecoder.cpp
rename : content/media/android/AndroidMediaDecoder.h => dom/media/android/AndroidMediaDecoder.h
rename : content/media/android/AndroidMediaPluginHost.cpp => dom/media/android/AndroidMediaPluginHost.cpp
rename : content/media/android/AndroidMediaPluginHost.h => dom/media/android/AndroidMediaPluginHost.h
rename : content/media/android/AndroidMediaReader.cpp => dom/media/android/AndroidMediaReader.cpp
rename : content/media/android/AndroidMediaReader.h => dom/media/android/AndroidMediaReader.h
rename : content/media/android/AndroidMediaResourceServer.cpp => dom/media/android/AndroidMediaResourceServer.cpp
rename : content/media/android/AndroidMediaResourceServer.h => dom/media/android/AndroidMediaResourceServer.h
rename : content/media/android/MPAPI.h => dom/media/android/MPAPI.h
rename : content/media/android/moz.build => dom/media/android/moz.build
rename : content/media/apple/AppleDecoder.cpp => dom/media/apple/AppleDecoder.cpp
rename : content/media/apple/AppleDecoder.h => dom/media/apple/AppleDecoder.h
rename : content/media/apple/AppleMP3Reader.cpp => dom/media/apple/AppleMP3Reader.cpp
rename : content/media/apple/AppleMP3Reader.h => dom/media/apple/AppleMP3Reader.h
rename : content/media/apple/moz.build => dom/media/apple/moz.build
rename : content/media/compiledtest/TestAudioBuffers.cpp => dom/media/compiledtest/TestAudioBuffers.cpp
rename : content/media/compiledtest/TestAudioMixer.cpp => dom/media/compiledtest/TestAudioMixer.cpp
rename : content/media/compiledtest/moz.build => dom/media/compiledtest/moz.build
rename : content/media/directshow/AudioSinkFilter.cpp => dom/media/directshow/AudioSinkFilter.cpp
rename : content/media/directshow/AudioSinkFilter.h => dom/media/directshow/AudioSinkFilter.h
rename : content/media/directshow/AudioSinkInputPin.cpp => dom/media/directshow/AudioSinkInputPin.cpp
rename : content/media/directshow/AudioSinkInputPin.h => dom/media/directshow/AudioSinkInputPin.h
rename : content/media/directshow/DirectShowDecoder.cpp => dom/media/directshow/DirectShowDecoder.cpp
rename : content/media/directshow/DirectShowDecoder.h => dom/media/directshow/DirectShowDecoder.h
rename : content/media/directshow/DirectShowReader.cpp => dom/media/directshow/DirectShowReader.cpp
rename : content/media/directshow/DirectShowReader.h => dom/media/directshow/DirectShowReader.h
rename : content/media/directshow/DirectShowUtils.cpp => dom/media/directshow/DirectShowUtils.cpp
rename : content/media/directshow/DirectShowUtils.h => dom/media/directshow/DirectShowUtils.h
rename : content/media/directshow/SampleSink.cpp => dom/media/directshow/SampleSink.cpp
rename : content/media/directshow/SampleSink.h => dom/media/directshow/SampleSink.h
rename : content/media/directshow/SourceFilter.cpp => dom/media/directshow/SourceFilter.cpp
rename : content/media/directshow/SourceFilter.h => dom/media/directshow/SourceFilter.h
rename : content/media/directshow/moz.build => dom/media/directshow/moz.build
rename : content/media/eme/CDMCallbackProxy.cpp => dom/media/eme/CDMCallbackProxy.cpp
rename : content/media/eme/CDMCallbackProxy.h => dom/media/eme/CDMCallbackProxy.h
rename : content/media/eme/CDMCaps.cpp => dom/media/eme/CDMCaps.cpp
rename : content/media/eme/CDMCaps.h => dom/media/eme/CDMCaps.h
rename : content/media/eme/CDMProxy.cpp => dom/media/eme/CDMProxy.cpp
rename : content/media/eme/CDMProxy.h => dom/media/eme/CDMProxy.h
rename : content/media/eme/EMELog.cpp => dom/media/eme/EMELog.cpp
rename : content/media/eme/EMELog.h => dom/media/eme/EMELog.h
rename : content/media/eme/MediaEncryptedEvent.cpp => dom/media/eme/MediaEncryptedEvent.cpp
rename : content/media/eme/MediaEncryptedEvent.h => dom/media/eme/MediaEncryptedEvent.h
rename : content/media/eme/MediaKeyError.cpp => dom/media/eme/MediaKeyError.cpp
rename : content/media/eme/MediaKeyError.h => dom/media/eme/MediaKeyError.h
rename : content/media/eme/MediaKeyMessageEvent.cpp => dom/media/eme/MediaKeyMessageEvent.cpp
rename : content/media/eme/MediaKeyMessageEvent.h => dom/media/eme/MediaKeyMessageEvent.h
rename : content/media/eme/MediaKeySession.cpp => dom/media/eme/MediaKeySession.cpp
rename : content/media/eme/MediaKeySession.h => dom/media/eme/MediaKeySession.h
rename : content/media/eme/MediaKeys.cpp => dom/media/eme/MediaKeys.cpp
rename : content/media/eme/MediaKeys.h => dom/media/eme/MediaKeys.h
rename : content/media/eme/moz.build => dom/media/eme/moz.build
rename : content/media/encoder/ContainerWriter.h => dom/media/encoder/ContainerWriter.h
rename : content/media/encoder/EncodedFrameContainer.h => dom/media/encoder/EncodedFrameContainer.h
rename : content/media/encoder/MediaEncoder.cpp => dom/media/encoder/MediaEncoder.cpp
rename : content/media/encoder/MediaEncoder.h => dom/media/encoder/MediaEncoder.h
rename : content/media/encoder/OmxTrackEncoder.cpp => dom/media/encoder/OmxTrackEncoder.cpp
rename : content/media/encoder/OmxTrackEncoder.h => dom/media/encoder/OmxTrackEncoder.h
rename : content/media/encoder/OpusTrackEncoder.cpp => dom/media/encoder/OpusTrackEncoder.cpp
rename : content/media/encoder/OpusTrackEncoder.h => dom/media/encoder/OpusTrackEncoder.h
rename : content/media/encoder/TrackEncoder.cpp => dom/media/encoder/TrackEncoder.cpp
rename : content/media/encoder/TrackEncoder.h => dom/media/encoder/TrackEncoder.h
rename : content/media/encoder/TrackMetadataBase.h => dom/media/encoder/TrackMetadataBase.h
rename : content/media/encoder/VP8TrackEncoder.cpp => dom/media/encoder/VP8TrackEncoder.cpp
rename : content/media/encoder/VP8TrackEncoder.h => dom/media/encoder/VP8TrackEncoder.h
rename : content/media/encoder/VorbisTrackEncoder.cpp => dom/media/encoder/VorbisTrackEncoder.cpp
rename : content/media/encoder/VorbisTrackEncoder.h => dom/media/encoder/VorbisTrackEncoder.h
rename : content/media/encoder/fmp4_muxer/AMRBox.cpp => dom/media/encoder/fmp4_muxer/AMRBox.cpp
rename : content/media/encoder/fmp4_muxer/AMRBox.h => dom/media/encoder/fmp4_muxer/AMRBox.h
rename : content/media/encoder/fmp4_muxer/AVCBox.cpp => dom/media/encoder/fmp4_muxer/AVCBox.cpp
rename : content/media/encoder/fmp4_muxer/AVCBox.h => dom/media/encoder/fmp4_muxer/AVCBox.h
rename : content/media/encoder/fmp4_muxer/ISOControl.cpp => dom/media/encoder/fmp4_muxer/ISOControl.cpp
rename : content/media/encoder/fmp4_muxer/ISOControl.h => dom/media/encoder/fmp4_muxer/ISOControl.h
rename : content/media/encoder/fmp4_muxer/ISOMediaBoxes.cpp => dom/media/encoder/fmp4_muxer/ISOMediaBoxes.cpp
rename : content/media/encoder/fmp4_muxer/ISOMediaBoxes.h => dom/media/encoder/fmp4_muxer/ISOMediaBoxes.h
rename : content/media/encoder/fmp4_muxer/ISOMediaWriter.cpp => dom/media/encoder/fmp4_muxer/ISOMediaWriter.cpp
rename : content/media/encoder/fmp4_muxer/ISOMediaWriter.h => dom/media/encoder/fmp4_muxer/ISOMediaWriter.h
rename : content/media/encoder/fmp4_muxer/ISOTrackMetadata.h => dom/media/encoder/fmp4_muxer/ISOTrackMetadata.h
rename : content/media/encoder/fmp4_muxer/MP4ESDS.cpp => dom/media/encoder/fmp4_muxer/MP4ESDS.cpp
rename : content/media/encoder/fmp4_muxer/MP4ESDS.h => dom/media/encoder/fmp4_muxer/MP4ESDS.h
rename : content/media/encoder/fmp4_muxer/MuxerOperation.h => dom/media/encoder/fmp4_muxer/MuxerOperation.h
rename : content/media/encoder/fmp4_muxer/moz.build => dom/media/encoder/fmp4_muxer/moz.build
rename : content/media/encoder/moz.build => dom/media/encoder/moz.build
rename : content/media/fmp4/BlankDecoderModule.cpp => dom/media/fmp4/BlankDecoderModule.cpp
rename : content/media/fmp4/MP4Decoder.cpp => dom/media/fmp4/MP4Decoder.cpp
rename : content/media/fmp4/MP4Decoder.h => dom/media/fmp4/MP4Decoder.h
rename : content/media/fmp4/MP4Reader.cpp => dom/media/fmp4/MP4Reader.cpp
rename : content/media/fmp4/MP4Reader.h => dom/media/fmp4/MP4Reader.h
rename : content/media/fmp4/PlatformDecoderModule.cpp => dom/media/fmp4/PlatformDecoderModule.cpp
rename : content/media/fmp4/PlatformDecoderModule.h => dom/media/fmp4/PlatformDecoderModule.h
rename : content/media/fmp4/android/AndroidDecoderModule.cpp => dom/media/fmp4/android/AndroidDecoderModule.cpp
rename : content/media/fmp4/android/AndroidDecoderModule.h => dom/media/fmp4/android/AndroidDecoderModule.h
rename : content/media/fmp4/apple/AppleATDecoder.cpp => dom/media/fmp4/apple/AppleATDecoder.cpp
rename : content/media/fmp4/apple/AppleATDecoder.h => dom/media/fmp4/apple/AppleATDecoder.h
rename : content/media/fmp4/apple/AppleCMFunctions.h => dom/media/fmp4/apple/AppleCMFunctions.h
rename : content/media/fmp4/apple/AppleCMLinker.cpp => dom/media/fmp4/apple/AppleCMLinker.cpp
rename : content/media/fmp4/apple/AppleCMLinker.h => dom/media/fmp4/apple/AppleCMLinker.h
rename : content/media/fmp4/apple/AppleDecoderModule.cpp => dom/media/fmp4/apple/AppleDecoderModule.cpp
rename : content/media/fmp4/apple/AppleDecoderModule.h => dom/media/fmp4/apple/AppleDecoderModule.h
rename : content/media/fmp4/apple/AppleUtils.cpp => dom/media/fmp4/apple/AppleUtils.cpp
rename : content/media/fmp4/apple/AppleUtils.h => dom/media/fmp4/apple/AppleUtils.h
rename : content/media/fmp4/apple/AppleVDADecoder.cpp => dom/media/fmp4/apple/AppleVDADecoder.cpp
rename : content/media/fmp4/apple/AppleVDADecoder.h => dom/media/fmp4/apple/AppleVDADecoder.h
rename : content/media/fmp4/apple/AppleVDAFunctions.h => dom/media/fmp4/apple/AppleVDAFunctions.h
rename : content/media/fmp4/apple/AppleVDALinker.cpp => dom/media/fmp4/apple/AppleVDALinker.cpp
rename : content/media/fmp4/apple/AppleVDALinker.h => dom/media/fmp4/apple/AppleVDALinker.h
rename : content/media/fmp4/apple/AppleVTDecoder.cpp => dom/media/fmp4/apple/AppleVTDecoder.cpp
rename : content/media/fmp4/apple/AppleVTDecoder.h => dom/media/fmp4/apple/AppleVTDecoder.h
rename : content/media/fmp4/apple/AppleVTFunctions.h => dom/media/fmp4/apple/AppleVTFunctions.h
rename : content/media/fmp4/apple/AppleVTLinker.cpp => dom/media/fmp4/apple/AppleVTLinker.cpp
rename : content/media/fmp4/apple/AppleVTLinker.h => dom/media/fmp4/apple/AppleVTLinker.h
rename : content/media/fmp4/apple/ReorderQueue.h => dom/media/fmp4/apple/ReorderQueue.h
rename : content/media/fmp4/apple/VideoDecodeAcceleration/VDADecoder.h => dom/media/fmp4/apple/VideoDecodeAcceleration/VDADecoder.h
rename : content/media/fmp4/apple/VideoToolbox/VideoToolbox.h => dom/media/fmp4/apple/VideoToolbox/VideoToolbox.h
rename : content/media/fmp4/eme/EMEAudioDecoder.cpp => dom/media/fmp4/eme/EMEAudioDecoder.cpp
rename : content/media/fmp4/eme/EMEAudioDecoder.h => dom/media/fmp4/eme/EMEAudioDecoder.h
rename : content/media/fmp4/eme/EMEDecoderModule.cpp => dom/media/fmp4/eme/EMEDecoderModule.cpp
rename : content/media/fmp4/eme/EMEDecoderModule.h => dom/media/fmp4/eme/EMEDecoderModule.h
rename : content/media/fmp4/eme/EMEH264Decoder.cpp => dom/media/fmp4/eme/EMEH264Decoder.cpp
rename : content/media/fmp4/eme/EMEH264Decoder.h => dom/media/fmp4/eme/EMEH264Decoder.h
rename : content/media/fmp4/eme/moz.build => dom/media/fmp4/eme/moz.build
rename : content/media/fmp4/ffmpeg/FFmpegAudioDecoder.cpp => dom/media/fmp4/ffmpeg/FFmpegAudioDecoder.cpp
rename : content/media/fmp4/ffmpeg/FFmpegAudioDecoder.h => dom/media/fmp4/ffmpeg/FFmpegAudioDecoder.h
rename : content/media/fmp4/ffmpeg/FFmpegDataDecoder.cpp => dom/media/fmp4/ffmpeg/FFmpegDataDecoder.cpp
rename : content/media/fmp4/ffmpeg/FFmpegDataDecoder.h => dom/media/fmp4/ffmpeg/FFmpegDataDecoder.h
rename : content/media/fmp4/ffmpeg/FFmpegDecoderModule.cpp => dom/media/fmp4/ffmpeg/FFmpegDecoderModule.cpp
rename : content/media/fmp4/ffmpeg/FFmpegDecoderModule.h => dom/media/fmp4/ffmpeg/FFmpegDecoderModule.h
rename : content/media/fmp4/ffmpeg/FFmpegFunctionList.h => dom/media/fmp4/ffmpeg/FFmpegFunctionList.h
rename : content/media/fmp4/ffmpeg/FFmpegH264Decoder.cpp => dom/media/fmp4/ffmpeg/FFmpegH264Decoder.cpp
rename : content/media/fmp4/ffmpeg/FFmpegH264Decoder.h => dom/media/fmp4/ffmpeg/FFmpegH264Decoder.h
rename : content/media/fmp4/ffmpeg/FFmpegLibs.h => dom/media/fmp4/ffmpeg/FFmpegLibs.h
rename : content/media/fmp4/ffmpeg/FFmpegLog.cpp => dom/media/fmp4/ffmpeg/FFmpegLog.cpp
rename : content/media/fmp4/ffmpeg/FFmpegLog.h => dom/media/fmp4/ffmpeg/FFmpegLog.h
rename : content/media/fmp4/ffmpeg/FFmpegRuntimeLinker.cpp => dom/media/fmp4/ffmpeg/FFmpegRuntimeLinker.cpp
rename : content/media/fmp4/ffmpeg/FFmpegRuntimeLinker.h => dom/media/fmp4/ffmpeg/FFmpegRuntimeLinker.h
rename : content/media/fmp4/ffmpeg/README_mozilla => dom/media/fmp4/ffmpeg/README_mozilla
rename : content/media/fmp4/ffmpeg/libav53/include/COPYING.LGPLv2.1 => dom/media/fmp4/ffmpeg/libav53/include/COPYING.LGPLv2.1
rename : content/media/fmp4/ffmpeg/libav53/include/libavcodec/avcodec.h => dom/media/fmp4/ffmpeg/libav53/include/libavcodec/avcodec.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavcodec/avfft.h => dom/media/fmp4/ffmpeg/libav53/include/libavcodec/avfft.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavcodec/dxva2.h => dom/media/fmp4/ffmpeg/libav53/include/libavcodec/dxva2.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavcodec/old_codec_ids.h => dom/media/fmp4/ffmpeg/libav53/include/libavcodec/old_codec_ids.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavcodec/opt.h => dom/media/fmp4/ffmpeg/libav53/include/libavcodec/opt.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavcodec/vaapi.h => dom/media/fmp4/ffmpeg/libav53/include/libavcodec/vaapi.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavcodec/vda.h => dom/media/fmp4/ffmpeg/libav53/include/libavcodec/vda.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavcodec/vdpau.h => dom/media/fmp4/ffmpeg/libav53/include/libavcodec/vdpau.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavcodec/version.h => dom/media/fmp4/ffmpeg/libav53/include/libavcodec/version.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavcodec/xvmc.h => dom/media/fmp4/ffmpeg/libav53/include/libavcodec/xvmc.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavformat/avformat.h => dom/media/fmp4/ffmpeg/libav53/include/libavformat/avformat.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavformat/avio.h => dom/media/fmp4/ffmpeg/libav53/include/libavformat/avio.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavformat/version.h => dom/media/fmp4/ffmpeg/libav53/include/libavformat/version.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/adler32.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/adler32.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/aes.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/aes.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/attributes.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/attributes.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/audio_fifo.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/audio_fifo.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/audioconvert.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/audioconvert.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/avassert.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/avassert.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/avconfig.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/avconfig.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/avstring.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/avstring.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/avutil.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/avutil.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/base64.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/base64.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/blowfish.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/blowfish.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/bprint.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/bprint.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/bswap.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/bswap.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/common.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/common.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/cpu.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/cpu.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/crc.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/crc.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/dict.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/dict.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/error.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/error.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/eval.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/eval.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/fifo.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/fifo.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/file.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/file.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/imgutils.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/imgutils.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/intfloat.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/intfloat.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/intfloat_readwrite.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/intfloat_readwrite.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/intreadwrite.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/intreadwrite.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/lfg.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/lfg.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/log.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/log.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/lzo.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/lzo.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/mathematics.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/mathematics.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/md5.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/md5.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/mem.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/mem.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/old_pix_fmts.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/old_pix_fmts.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/opt.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/opt.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/parseutils.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/parseutils.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/pixdesc.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/pixdesc.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/pixfmt.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/pixfmt.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/random_seed.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/random_seed.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/rational.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/rational.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/samplefmt.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/samplefmt.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/sha.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/sha.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/time.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/time.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/timecode.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/timecode.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/timestamp.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/timestamp.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/version.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/version.h
rename : content/media/fmp4/ffmpeg/libav53/include/libavutil/xtea.h => dom/media/fmp4/ffmpeg/libav53/include/libavutil/xtea.h
rename : content/media/fmp4/ffmpeg/libav53/moz.build => dom/media/fmp4/ffmpeg/libav53/moz.build
rename : content/media/fmp4/ffmpeg/libav54/include/COPYING.LGPLv2.1 => dom/media/fmp4/ffmpeg/libav54/include/COPYING.LGPLv2.1
rename : content/media/fmp4/ffmpeg/libav54/include/libavcodec/avcodec.h => dom/media/fmp4/ffmpeg/libav54/include/libavcodec/avcodec.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavcodec/avfft.h => dom/media/fmp4/ffmpeg/libav54/include/libavcodec/avfft.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavcodec/dxva2.h => dom/media/fmp4/ffmpeg/libav54/include/libavcodec/dxva2.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavcodec/old_codec_ids.h => dom/media/fmp4/ffmpeg/libav54/include/libavcodec/old_codec_ids.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavcodec/vaapi.h => dom/media/fmp4/ffmpeg/libav54/include/libavcodec/vaapi.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavcodec/vda.h => dom/media/fmp4/ffmpeg/libav54/include/libavcodec/vda.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavcodec/vdpau.h => dom/media/fmp4/ffmpeg/libav54/include/libavcodec/vdpau.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavcodec/version.h => dom/media/fmp4/ffmpeg/libav54/include/libavcodec/version.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavcodec/xvmc.h => dom/media/fmp4/ffmpeg/libav54/include/libavcodec/xvmc.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavformat/avformat.h => dom/media/fmp4/ffmpeg/libav54/include/libavformat/avformat.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavformat/avio.h => dom/media/fmp4/ffmpeg/libav54/include/libavformat/avio.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavformat/version.h => dom/media/fmp4/ffmpeg/libav54/include/libavformat/version.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/adler32.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/adler32.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/aes.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/aes.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/attributes.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/attributes.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/audio_fifo.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/audio_fifo.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/audioconvert.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/audioconvert.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/avassert.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/avassert.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/avconfig.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/avconfig.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/avstring.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/avstring.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/avutil.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/avutil.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/base64.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/base64.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/blowfish.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/blowfish.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/bswap.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/bswap.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/channel_layout.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/channel_layout.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/common.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/common.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/cpu.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/cpu.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/crc.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/crc.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/dict.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/dict.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/error.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/error.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/eval.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/eval.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/fifo.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/fifo.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/file.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/file.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/imgutils.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/imgutils.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/intfloat.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/intfloat.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/intfloat_readwrite.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/intfloat_readwrite.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/intreadwrite.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/intreadwrite.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/lfg.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/lfg.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/log.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/log.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/lzo.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/lzo.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/mathematics.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/mathematics.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/md5.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/md5.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/mem.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/mem.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/old_pix_fmts.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/old_pix_fmts.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/opt.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/opt.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/parseutils.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/parseutils.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/pixdesc.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/pixdesc.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/pixfmt.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/pixfmt.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/random_seed.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/random_seed.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/rational.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/rational.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/samplefmt.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/samplefmt.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/sha.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/sha.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/time.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/time.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/version.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/version.h
rename : content/media/fmp4/ffmpeg/libav54/include/libavutil/xtea.h => dom/media/fmp4/ffmpeg/libav54/include/libavutil/xtea.h
rename : content/media/fmp4/ffmpeg/libav54/moz.build => dom/media/fmp4/ffmpeg/libav54/moz.build
rename : content/media/fmp4/ffmpeg/libav55/include/COPYING.LGPLv2.1 => dom/media/fmp4/ffmpeg/libav55/include/COPYING.LGPLv2.1
rename : content/media/fmp4/ffmpeg/libav55/include/libavcodec/avcodec.h => dom/media/fmp4/ffmpeg/libav55/include/libavcodec/avcodec.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavcodec/avfft.h => dom/media/fmp4/ffmpeg/libav55/include/libavcodec/avfft.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavcodec/dxva2.h => dom/media/fmp4/ffmpeg/libav55/include/libavcodec/dxva2.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavcodec/vaapi.h => dom/media/fmp4/ffmpeg/libav55/include/libavcodec/vaapi.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavcodec/vda.h => dom/media/fmp4/ffmpeg/libav55/include/libavcodec/vda.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavcodec/vdpau.h => dom/media/fmp4/ffmpeg/libav55/include/libavcodec/vdpau.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavcodec/version.h => dom/media/fmp4/ffmpeg/libav55/include/libavcodec/version.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavcodec/xvmc.h => dom/media/fmp4/ffmpeg/libav55/include/libavcodec/xvmc.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavformat/avformat.h => dom/media/fmp4/ffmpeg/libav55/include/libavformat/avformat.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavformat/avio.h => dom/media/fmp4/ffmpeg/libav55/include/libavformat/avio.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavformat/version.h => dom/media/fmp4/ffmpeg/libav55/include/libavformat/version.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/adler32.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/adler32.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/aes.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/aes.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/attributes.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/attributes.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/audio_fifo.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/audio_fifo.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/audioconvert.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/audioconvert.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/avassert.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/avassert.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/avconfig.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/avconfig.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/avstring.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/avstring.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/avutil.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/avutil.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/base64.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/base64.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/blowfish.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/blowfish.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/bswap.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/bswap.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/buffer.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/buffer.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/channel_layout.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/channel_layout.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/common.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/common.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/cpu.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/cpu.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/crc.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/crc.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/dict.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/dict.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/downmix_info.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/downmix_info.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/error.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/error.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/eval.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/eval.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/fifo.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/fifo.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/file.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/file.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/frame.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/frame.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/hmac.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/hmac.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/imgutils.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/imgutils.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/intfloat.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/intfloat.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/intreadwrite.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/intreadwrite.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/lfg.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/lfg.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/log.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/log.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/lzo.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/lzo.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/macros.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/macros.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/mathematics.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/mathematics.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/md5.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/md5.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/mem.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/mem.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/old_pix_fmts.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/old_pix_fmts.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/opt.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/opt.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/parseutils.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/parseutils.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/pixdesc.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/pixdesc.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/pixfmt.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/pixfmt.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/random_seed.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/random_seed.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/rational.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/rational.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/samplefmt.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/samplefmt.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/sha.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/sha.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/stereo3d.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/stereo3d.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/time.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/time.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/version.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/version.h
rename : content/media/fmp4/ffmpeg/libav55/include/libavutil/xtea.h => dom/media/fmp4/ffmpeg/libav55/include/libavutil/xtea.h
rename : content/media/fmp4/ffmpeg/libav55/moz.build => dom/media/fmp4/ffmpeg/libav55/moz.build
rename : content/media/fmp4/gonk/GonkAudioDecoderManager.cpp => dom/media/fmp4/gonk/GonkAudioDecoderManager.cpp
rename : content/media/fmp4/gonk/GonkAudioDecoderManager.h => dom/media/fmp4/gonk/GonkAudioDecoderManager.h
rename : content/media/fmp4/gonk/GonkDecoderModule.cpp => dom/media/fmp4/gonk/GonkDecoderModule.cpp
rename : content/media/fmp4/gonk/GonkDecoderModule.h => dom/media/fmp4/gonk/GonkDecoderModule.h
rename : content/media/fmp4/gonk/GonkMediaDataDecoder.cpp => dom/media/fmp4/gonk/GonkMediaDataDecoder.cpp
rename : content/media/fmp4/gonk/GonkMediaDataDecoder.h => dom/media/fmp4/gonk/GonkMediaDataDecoder.h
rename : content/media/fmp4/gonk/GonkVideoDecoderManager.cpp => dom/media/fmp4/gonk/GonkVideoDecoderManager.cpp
rename : content/media/fmp4/gonk/GonkVideoDecoderManager.h => dom/media/fmp4/gonk/GonkVideoDecoderManager.h
rename : content/media/fmp4/gonk/moz.build => dom/media/fmp4/gonk/moz.build
rename : content/media/fmp4/moz.build => dom/media/fmp4/moz.build
rename : content/media/fmp4/wmf/MFTDecoder.cpp => dom/media/fmp4/wmf/MFTDecoder.cpp
rename : content/media/fmp4/wmf/MFTDecoder.h => dom/media/fmp4/wmf/MFTDecoder.h
rename : content/media/fmp4/wmf/WMFAudioMFTManager.cpp => dom/media/fmp4/wmf/WMFAudioMFTManager.cpp
rename : content/media/fmp4/wmf/WMFAudioMFTManager.h => dom/media/fmp4/wmf/WMFAudioMFTManager.h
rename : content/media/fmp4/wmf/WMFDecoderModule.cpp => dom/media/fmp4/wmf/WMFDecoderModule.cpp
rename : content/media/fmp4/wmf/WMFDecoderModule.h => dom/media/fmp4/wmf/WMFDecoderModule.h
rename : content/media/fmp4/wmf/WMFMediaDataDecoder.cpp => dom/media/fmp4/wmf/WMFMediaDataDecoder.cpp
rename : content/media/fmp4/wmf/WMFMediaDataDecoder.h => dom/media/fmp4/wmf/WMFMediaDataDecoder.h
rename : content/media/fmp4/wmf/WMFVideoMFTManager.cpp => dom/media/fmp4/wmf/WMFVideoMFTManager.cpp
rename : content/media/fmp4/wmf/WMFVideoMFTManager.h => dom/media/fmp4/wmf/WMFVideoMFTManager.h
rename : content/media/fmp4/wmf/moz.build => dom/media/fmp4/wmf/moz.build
rename : content/media/gmp/GMPAudioDecoderChild.cpp => dom/media/gmp/GMPAudioDecoderChild.cpp
rename : content/media/gmp/GMPAudioDecoderChild.h => dom/media/gmp/GMPAudioDecoderChild.h
rename : content/media/gmp/GMPAudioDecoderParent.cpp => dom/media/gmp/GMPAudioDecoderParent.cpp
rename : content/media/gmp/GMPAudioDecoderParent.h => dom/media/gmp/GMPAudioDecoderParent.h
rename : content/media/gmp/GMPAudioDecoderProxy.h => dom/media/gmp/GMPAudioDecoderProxy.h
rename : content/media/gmp/GMPAudioHost.cpp => dom/media/gmp/GMPAudioHost.cpp
rename : content/media/gmp/GMPAudioHost.h => dom/media/gmp/GMPAudioHost.h
rename : content/media/gmp/GMPCallbackBase.h => dom/media/gmp/GMPCallbackBase.h
rename : content/media/gmp/GMPChild.cpp => dom/media/gmp/GMPChild.cpp
rename : content/media/gmp/GMPChild.h => dom/media/gmp/GMPChild.h
rename : content/media/gmp/GMPDecryptorChild.cpp => dom/media/gmp/GMPDecryptorChild.cpp
rename : content/media/gmp/GMPDecryptorChild.h => dom/media/gmp/GMPDecryptorChild.h
rename : content/media/gmp/GMPDecryptorParent.cpp => dom/media/gmp/GMPDecryptorParent.cpp
rename : content/media/gmp/GMPDecryptorParent.h => dom/media/gmp/GMPDecryptorParent.h
rename : content/media/gmp/GMPDecryptorProxy.h => dom/media/gmp/GMPDecryptorProxy.h
rename : content/media/gmp/GMPEncryptedBufferDataImpl.cpp => dom/media/gmp/GMPEncryptedBufferDataImpl.cpp
rename : content/media/gmp/GMPEncryptedBufferDataImpl.h => dom/media/gmp/GMPEncryptedBufferDataImpl.h
rename : content/media/gmp/GMPMessageUtils.h => dom/media/gmp/GMPMessageUtils.h
rename : content/media/gmp/GMPParent.cpp => dom/media/gmp/GMPParent.cpp
rename : content/media/gmp/GMPParent.h => dom/media/gmp/GMPParent.h
rename : content/media/gmp/GMPPlatform.cpp => dom/media/gmp/GMPPlatform.cpp
rename : content/media/gmp/GMPPlatform.h => dom/media/gmp/GMPPlatform.h
rename : content/media/gmp/GMPProcessChild.cpp => dom/media/gmp/GMPProcessChild.cpp
rename : content/media/gmp/GMPProcessChild.h => dom/media/gmp/GMPProcessChild.h
rename : content/media/gmp/GMPProcessParent.cpp => dom/media/gmp/GMPProcessParent.cpp
rename : content/media/gmp/GMPProcessParent.h => dom/media/gmp/GMPProcessParent.h
rename : content/media/gmp/GMPService.cpp => dom/media/gmp/GMPService.cpp
rename : content/media/gmp/GMPService.h => dom/media/gmp/GMPService.h
rename : content/media/gmp/GMPSharedMemManager.cpp => dom/media/gmp/GMPSharedMemManager.cpp
rename : content/media/gmp/GMPSharedMemManager.h => dom/media/gmp/GMPSharedMemManager.h
rename : content/media/gmp/GMPStorageChild.cpp => dom/media/gmp/GMPStorageChild.cpp
rename : content/media/gmp/GMPStorageChild.h => dom/media/gmp/GMPStorageChild.h
rename : content/media/gmp/GMPStorageParent.cpp => dom/media/gmp/GMPStorageParent.cpp
rename : content/media/gmp/GMPStorageParent.h => dom/media/gmp/GMPStorageParent.h
rename : content/media/gmp/GMPTimerChild.cpp => dom/media/gmp/GMPTimerChild.cpp
rename : content/media/gmp/GMPTimerChild.h => dom/media/gmp/GMPTimerChild.h
rename : content/media/gmp/GMPTimerParent.cpp => dom/media/gmp/GMPTimerParent.cpp
rename : content/media/gmp/GMPTimerParent.h => dom/media/gmp/GMPTimerParent.h
rename : content/media/gmp/GMPTypes.ipdlh => dom/media/gmp/GMPTypes.ipdlh
rename : content/media/gmp/GMPVideoDecoderChild.cpp => dom/media/gmp/GMPVideoDecoderChild.cpp
rename : content/media/gmp/GMPVideoDecoderChild.h => dom/media/gmp/GMPVideoDecoderChild.h
rename : content/media/gmp/GMPVideoDecoderParent.cpp => dom/media/gmp/GMPVideoDecoderParent.cpp
rename : content/media/gmp/GMPVideoDecoderParent.h => dom/media/gmp/GMPVideoDecoderParent.h
rename : content/media/gmp/GMPVideoDecoderProxy.h => dom/media/gmp/GMPVideoDecoderProxy.h
rename : content/media/gmp/GMPVideoEncodedFrameImpl.cpp => dom/media/gmp/GMPVideoEncodedFrameImpl.cpp
rename : content/media/gmp/GMPVideoEncodedFrameImpl.h => dom/media/gmp/GMPVideoEncodedFrameImpl.h
rename : content/media/gmp/GMPVideoEncoderChild.cpp => dom/media/gmp/GMPVideoEncoderChild.cpp
rename : content/media/gmp/GMPVideoEncoderChild.h => dom/media/gmp/GMPVideoEncoderChild.h
rename : content/media/gmp/GMPVideoEncoderParent.cpp => dom/media/gmp/GMPVideoEncoderParent.cpp
rename : content/media/gmp/GMPVideoEncoderParent.h => dom/media/gmp/GMPVideoEncoderParent.h
rename : content/media/gmp/GMPVideoEncoderProxy.h => dom/media/gmp/GMPVideoEncoderProxy.h
rename : content/media/gmp/GMPVideoHost.cpp => dom/media/gmp/GMPVideoHost.cpp
rename : content/media/gmp/GMPVideoHost.h => dom/media/gmp/GMPVideoHost.h
rename : content/media/gmp/GMPVideoPlaneImpl.cpp => dom/media/gmp/GMPVideoPlaneImpl.cpp
rename : content/media/gmp/GMPVideoPlaneImpl.h => dom/media/gmp/GMPVideoPlaneImpl.h
rename : content/media/gmp/GMPVideoi420FrameImpl.cpp => dom/media/gmp/GMPVideoi420FrameImpl.cpp
rename : content/media/gmp/GMPVideoi420FrameImpl.h => dom/media/gmp/GMPVideoi420FrameImpl.h
rename : content/media/gmp/PGMP.ipdl => dom/media/gmp/PGMP.ipdl
rename : content/media/gmp/PGMPAudioDecoder.ipdl => dom/media/gmp/PGMPAudioDecoder.ipdl
rename : content/media/gmp/PGMPDecryptor.ipdl => dom/media/gmp/PGMPDecryptor.ipdl
rename : content/media/gmp/PGMPStorage.ipdl => dom/media/gmp/PGMPStorage.ipdl
rename : content/media/gmp/PGMPTimer.ipdl => dom/media/gmp/PGMPTimer.ipdl
rename : content/media/gmp/PGMPVideoDecoder.ipdl => dom/media/gmp/PGMPVideoDecoder.ipdl
rename : content/media/gmp/PGMPVideoEncoder.ipdl => dom/media/gmp/PGMPVideoEncoder.ipdl
rename : content/media/gmp/README.txt => dom/media/gmp/README.txt
rename : content/media/gmp/gmp-api/gmp-async-shutdown.h => dom/media/gmp/gmp-api/gmp-async-shutdown.h
rename : content/media/gmp/gmp-api/gmp-audio-codec.h => dom/media/gmp/gmp-api/gmp-audio-codec.h
rename : content/media/gmp/gmp-api/gmp-audio-decode.h => dom/media/gmp/gmp-api/gmp-audio-decode.h
rename : content/media/gmp/gmp-api/gmp-audio-host.h => dom/media/gmp/gmp-api/gmp-audio-host.h
rename : content/media/gmp/gmp-api/gmp-audio-samples.h => dom/media/gmp/gmp-api/gmp-audio-samples.h
rename : content/media/gmp/gmp-api/gmp-decryption.h => dom/media/gmp/gmp-api/gmp-decryption.h
rename : content/media/gmp/gmp-api/gmp-entrypoints.h => dom/media/gmp/gmp-api/gmp-entrypoints.h
rename : content/media/gmp/gmp-api/gmp-errors.h => dom/media/gmp/gmp-api/gmp-errors.h
rename : content/media/gmp/gmp-api/gmp-platform.h => dom/media/gmp/gmp-api/gmp-platform.h
rename : content/media/gmp/gmp-api/gmp-storage.h => dom/media/gmp/gmp-api/gmp-storage.h
rename : content/media/gmp/gmp-api/gmp-video-codec.h => dom/media/gmp/gmp-api/gmp-video-codec.h
rename : content/media/gmp/gmp-api/gmp-video-decode.h => dom/media/gmp/gmp-api/gmp-video-decode.h
rename : content/media/gmp/gmp-api/gmp-video-encode.h => dom/media/gmp/gmp-api/gmp-video-encode.h
rename : content/media/gmp/gmp-api/gmp-video-frame-encoded.h => dom/media/gmp/gmp-api/gmp-video-frame-encoded.h
rename : content/media/gmp/gmp-api/gmp-video-frame-i420.h => dom/media/gmp/gmp-api/gmp-video-frame-i420.h
rename : content/media/gmp/gmp-api/gmp-video-frame.h => dom/media/gmp/gmp-api/gmp-video-frame.h
rename : content/media/gmp/gmp-api/gmp-video-host.h => dom/media/gmp/gmp-api/gmp-video-host.h
rename : content/media/gmp/gmp-api/gmp-video-plane.h => dom/media/gmp/gmp-api/gmp-video-plane.h
rename : content/media/gmp/moz.build => dom/media/gmp/moz.build
rename : content/media/gmp/mozIGeckoMediaPluginService.idl => dom/media/gmp/mozIGeckoMediaPluginService.idl
rename : content/media/gmp/rlz/COPYING => dom/media/gmp/rlz/COPYING
rename : content/media/gmp/rlz/README.mozilla => dom/media/gmp/rlz/README.mozilla
rename : content/media/gmp/rlz/base/memory/scoped_ptr.h => dom/media/gmp/rlz/base/memory/scoped_ptr.h
rename : content/media/gmp/rlz/base/string16.h => dom/media/gmp/rlz/base/string16.h
rename : content/media/gmp/rlz/lib/assert.h => dom/media/gmp/rlz/lib/assert.h
rename : content/media/gmp/rlz/lib/machine_id.h => dom/media/gmp/rlz/lib/machine_id.h
rename : content/media/gmp/rlz/lib/string_utils.cc => dom/media/gmp/rlz/lib/string_utils.cc
rename : content/media/gmp/rlz/lib/string_utils.h => dom/media/gmp/rlz/lib/string_utils.h
rename : content/media/gmp/rlz/moz.build => dom/media/gmp/rlz/moz.build
rename : content/media/gmp/rlz/win/lib/machine_id_win.cc => dom/media/gmp/rlz/win/lib/machine_id_win.cc
rename : content/media/gstreamer/GStreamerAllocator.cpp => dom/media/gstreamer/GStreamerAllocator.cpp
rename : content/media/gstreamer/GStreamerAllocator.h => dom/media/gstreamer/GStreamerAllocator.h
rename : content/media/gstreamer/GStreamerDecoder.cpp => dom/media/gstreamer/GStreamerDecoder.cpp
rename : content/media/gstreamer/GStreamerDecoder.h => dom/media/gstreamer/GStreamerDecoder.h
rename : content/media/gstreamer/GStreamerFormatHelper.cpp => dom/media/gstreamer/GStreamerFormatHelper.cpp
rename : content/media/gstreamer/GStreamerFormatHelper.h => dom/media/gstreamer/GStreamerFormatHelper.h
rename : content/media/gstreamer/GStreamerFunctionList.h => dom/media/gstreamer/GStreamerFunctionList.h
rename : content/media/gstreamer/GStreamerLoader.cpp => dom/media/gstreamer/GStreamerLoader.cpp
rename : content/media/gstreamer/GStreamerLoader.h => dom/media/gstreamer/GStreamerLoader.h
rename : content/media/gstreamer/GStreamerMozVideoBuffer.cpp => dom/media/gstreamer/GStreamerMozVideoBuffer.cpp
rename : content/media/gstreamer/GStreamerMozVideoBuffer.h => dom/media/gstreamer/GStreamerMozVideoBuffer.h
rename : content/media/gstreamer/GStreamerReader-0.10.cpp => dom/media/gstreamer/GStreamerReader-0.10.cpp
rename : content/media/gstreamer/GStreamerReader.cpp => dom/media/gstreamer/GStreamerReader.cpp
rename : content/media/gstreamer/GStreamerReader.h => dom/media/gstreamer/GStreamerReader.h
rename : content/media/gstreamer/moz.build => dom/media/gstreamer/moz.build
rename : content/media/gtest/MockMediaDecoderOwner.h => dom/media/gtest/MockMediaDecoderOwner.h
rename : content/media/gtest/MockMediaResource.cpp => dom/media/gtest/MockMediaResource.cpp
rename : content/media/gtest/MockMediaResource.h => dom/media/gtest/MockMediaResource.h
rename : content/media/gtest/TestAudioCompactor.cpp => dom/media/gtest/TestAudioCompactor.cpp
rename : content/media/gtest/TestGMPCrossOrigin.cpp => dom/media/gtest/TestGMPCrossOrigin.cpp
rename : content/media/gtest/TestMP4Reader.cpp => dom/media/gtest/TestMP4Reader.cpp
rename : content/media/gtest/TestTrackEncoder.cpp => dom/media/gtest/TestTrackEncoder.cpp
rename : content/media/gtest/TestVideoSegment.cpp => dom/media/gtest/TestVideoSegment.cpp
rename : content/media/gtest/TestVideoTrackEncoder.cpp => dom/media/gtest/TestVideoTrackEncoder.cpp
rename : content/media/gtest/TestVorbisTrackEncoder.cpp => dom/media/gtest/TestVorbisTrackEncoder.cpp
rename : content/media/gtest/TestWebMBuffered.cpp => dom/media/gtest/TestWebMBuffered.cpp
rename : content/media/gtest/TestWebMWriter.cpp => dom/media/gtest/TestWebMWriter.cpp
rename : content/media/gtest/mediasource_test.mp4 => dom/media/gtest/mediasource_test.mp4
rename : content/media/gtest/moz.build => dom/media/gtest/moz.build
rename : content/media/gtest/test.webm => dom/media/gtest/test.webm
rename : content/media/imagecapture/CaptureTask.cpp => dom/media/imagecapture/CaptureTask.cpp
rename : content/media/imagecapture/CaptureTask.h => dom/media/imagecapture/CaptureTask.h
rename : content/media/imagecapture/ImageCapture.cpp => dom/media/imagecapture/ImageCapture.cpp
rename : content/media/imagecapture/ImageCapture.h => dom/media/imagecapture/ImageCapture.h
rename : content/media/imagecapture/moz.build => dom/media/imagecapture/moz.build
rename : content/media/mediasource/AsyncEventRunner.h => dom/media/mediasource/AsyncEventRunner.h
rename : content/media/mediasource/ContainerParser.cpp => dom/media/mediasource/ContainerParser.cpp
rename : content/media/mediasource/ContainerParser.h => dom/media/mediasource/ContainerParser.h
rename : content/media/mediasource/MediaSource.cpp => dom/media/mediasource/MediaSource.cpp
rename : content/media/mediasource/MediaSource.h => dom/media/mediasource/MediaSource.h
rename : content/media/mediasource/MediaSourceDecoder.cpp => dom/media/mediasource/MediaSourceDecoder.cpp
rename : content/media/mediasource/MediaSourceDecoder.h => dom/media/mediasource/MediaSourceDecoder.h
rename : content/media/mediasource/MediaSourceReader.cpp => dom/media/mediasource/MediaSourceReader.cpp
rename : content/media/mediasource/MediaSourceReader.h => dom/media/mediasource/MediaSourceReader.h
rename : content/media/mediasource/MediaSourceResource.h => dom/media/mediasource/MediaSourceResource.h
rename : content/media/mediasource/MediaSourceUtils.cpp => dom/media/mediasource/MediaSourceUtils.cpp
rename : content/media/mediasource/MediaSourceUtils.h => dom/media/mediasource/MediaSourceUtils.h
rename : content/media/mediasource/ResourceQueue.h => dom/media/mediasource/ResourceQueue.h
rename : content/media/mediasource/SourceBuffer.cpp => dom/media/mediasource/SourceBuffer.cpp
rename : content/media/mediasource/SourceBuffer.h => dom/media/mediasource/SourceBuffer.h
rename : content/media/mediasource/SourceBufferDecoder.cpp => dom/media/mediasource/SourceBufferDecoder.cpp
rename : content/media/mediasource/SourceBufferDecoder.h => dom/media/mediasource/SourceBufferDecoder.h
rename : content/media/mediasource/SourceBufferList.cpp => dom/media/mediasource/SourceBufferList.cpp
rename : content/media/mediasource/SourceBufferList.h => dom/media/mediasource/SourceBufferList.h
rename : content/media/mediasource/SourceBufferResource.cpp => dom/media/mediasource/SourceBufferResource.cpp
rename : content/media/mediasource/SourceBufferResource.h => dom/media/mediasource/SourceBufferResource.h
rename : content/media/mediasource/TrackBuffer.cpp => dom/media/mediasource/TrackBuffer.cpp
rename : content/media/mediasource/TrackBuffer.h => dom/media/mediasource/TrackBuffer.h
rename : content/media/mediasource/moz.build => dom/media/mediasource/moz.build
rename : content/media/mediasource/test/crashtests/1005366.html => dom/media/mediasource/test/crashtests/1005366.html
rename : content/media/mediasource/test/crashtests/1059035.html => dom/media/mediasource/test/crashtests/1059035.html
rename : content/media/mediasource/test/crashtests/926665.html => dom/media/mediasource/test/crashtests/926665.html
rename : content/media/mediasource/test/crashtests/931388.html => dom/media/mediasource/test/crashtests/931388.html
rename : content/media/mediasource/test/crashtests/crashtests.list => dom/media/mediasource/test/crashtests/crashtests.list
rename : content/media/mediasource/test/mediasource.js => dom/media/mediasource/test/mediasource.js
rename : content/media/mediasource/test/mochitest.ini => dom/media/mediasource/test/mochitest.ini
rename : content/media/mediasource/test/seek.webm => dom/media/mediasource/test/seek.webm
rename : content/media/mediasource/test/seek.webm^headers^ => dom/media/mediasource/test/seek.webm^headers^
rename : content/media/mediasource/test/seek_lowres.webm => dom/media/mediasource/test/seek_lowres.webm
rename : content/media/mediasource/test/seek_lowres.webm^headers^ => dom/media/mediasource/test/seek_lowres.webm^headers^
rename : content/media/mediasource/test/test_BufferedSeek.html => dom/media/mediasource/test/test_BufferedSeek.html
rename : content/media/mediasource/test/test_FrameSelection.html => dom/media/mediasource/test/test_FrameSelection.html
rename : content/media/mediasource/test/test_HaveMetadataUnbufferedSeek.html => dom/media/mediasource/test/test_HaveMetadataUnbufferedSeek.html
rename : content/media/mediasource/test/test_MediaSource.html => dom/media/mediasource/test/test_MediaSource.html
rename : content/media/mediasource/test/test_MediaSource_disabled.html => dom/media/mediasource/test/test_MediaSource_disabled.html
rename : content/media/mediasource/test/test_SeekableAfterEndOfStream.html => dom/media/mediasource/test/test_SeekableAfterEndOfStream.html
rename : content/media/mediasource/test/test_SeekableAfterEndOfStreamSplit.html => dom/media/mediasource/test/test_SeekableAfterEndOfStreamSplit.html
rename : content/media/mediasource/test/test_SeekableBeforeEndOfStream.html => dom/media/mediasource/test/test_SeekableBeforeEndOfStream.html
rename : content/media/mediasource/test/test_SeekableBeforeEndOfStreamSplit.html => dom/media/mediasource/test/test_SeekableBeforeEndOfStreamSplit.html
rename : content/media/mediasource/test/test_SplitAppend.html => dom/media/mediasource/test/test_SplitAppend.html
rename : content/media/mediasource/test/test_SplitAppendDelay.html => dom/media/mediasource/test/test_SplitAppendDelay.html
rename : content/media/nsIDocumentActivity.h => dom/media/nsIDocumentActivity.h
rename : content/media/ogg/OggCodecState.cpp => dom/media/ogg/OggCodecState.cpp
rename : content/media/ogg/OggCodecState.h => dom/media/ogg/OggCodecState.h
rename : content/media/ogg/OggDecoder.cpp => dom/media/ogg/OggDecoder.cpp
rename : content/media/ogg/OggDecoder.h => dom/media/ogg/OggDecoder.h
rename : content/media/ogg/OggReader.cpp => dom/media/ogg/OggReader.cpp
rename : content/media/ogg/OggReader.h => dom/media/ogg/OggReader.h
rename : content/media/ogg/OggWriter.cpp => dom/media/ogg/OggWriter.cpp
rename : content/media/ogg/OggWriter.h => dom/media/ogg/OggWriter.h
rename : content/media/ogg/OpusParser.cpp => dom/media/ogg/OpusParser.cpp
rename : content/media/ogg/OpusParser.h => dom/media/ogg/OpusParser.h
rename : content/media/ogg/moz.build => dom/media/ogg/moz.build
rename : content/media/omx/AudioOffloadPlayer.cpp => dom/media/omx/AudioOffloadPlayer.cpp
rename : content/media/omx/AudioOffloadPlayer.h => dom/media/omx/AudioOffloadPlayer.h
rename : content/media/omx/AudioOffloadPlayerBase.h => dom/media/omx/AudioOffloadPlayerBase.h
rename : content/media/omx/AudioOutput.cpp => dom/media/omx/AudioOutput.cpp
rename : content/media/omx/AudioOutput.h => dom/media/omx/AudioOutput.h
rename : content/media/omx/AudioSink.h => dom/media/omx/AudioSink.h
rename : content/media/omx/I420ColorConverterHelper.cpp => dom/media/omx/I420ColorConverterHelper.cpp
rename : content/media/omx/I420ColorConverterHelper.h => dom/media/omx/I420ColorConverterHelper.h
rename : content/media/omx/MPAPI.h => dom/media/omx/MPAPI.h
rename : content/media/omx/MediaCodecDecoder.cpp => dom/media/omx/MediaCodecDecoder.cpp
rename : content/media/omx/MediaCodecDecoder.h => dom/media/omx/MediaCodecDecoder.h
rename : content/media/omx/MediaCodecProxy.cpp => dom/media/omx/MediaCodecProxy.cpp
rename : content/media/omx/MediaCodecProxy.h => dom/media/omx/MediaCodecProxy.h
rename : content/media/omx/MediaCodecReader.cpp => dom/media/omx/MediaCodecReader.cpp
rename : content/media/omx/MediaCodecReader.h => dom/media/omx/MediaCodecReader.h
rename : content/media/omx/MediaOmxCommonDecoder.cpp => dom/media/omx/MediaOmxCommonDecoder.cpp
rename : content/media/omx/MediaOmxCommonDecoder.h => dom/media/omx/MediaOmxCommonDecoder.h
rename : content/media/omx/MediaOmxCommonReader.cpp => dom/media/omx/MediaOmxCommonReader.cpp
rename : content/media/omx/MediaOmxCommonReader.h => dom/media/omx/MediaOmxCommonReader.h
rename : content/media/omx/MediaOmxDecoder.cpp => dom/media/omx/MediaOmxDecoder.cpp
rename : content/media/omx/MediaOmxDecoder.h => dom/media/omx/MediaOmxDecoder.h
rename : content/media/omx/MediaOmxReader.cpp => dom/media/omx/MediaOmxReader.cpp
rename : content/media/omx/MediaOmxReader.h => dom/media/omx/MediaOmxReader.h
rename : content/media/omx/MediaStreamSource.cpp => dom/media/omx/MediaStreamSource.cpp
rename : content/media/omx/MediaStreamSource.h => dom/media/omx/MediaStreamSource.h
rename : content/media/omx/OMXCodecDescriptorUtil.cpp => dom/media/omx/OMXCodecDescriptorUtil.cpp
rename : content/media/omx/OMXCodecDescriptorUtil.h => dom/media/omx/OMXCodecDescriptorUtil.h
rename : content/media/omx/OMXCodecProxy.cpp => dom/media/omx/OMXCodecProxy.cpp
rename : content/media/omx/OMXCodecProxy.h => dom/media/omx/OMXCodecProxy.h
rename : content/media/omx/OMXCodecWrapper.cpp => dom/media/omx/OMXCodecWrapper.cpp
rename : content/media/omx/OMXCodecWrapper.h => dom/media/omx/OMXCodecWrapper.h
rename : content/media/omx/OmxDecoder.cpp => dom/media/omx/OmxDecoder.cpp
rename : content/media/omx/OmxDecoder.h => dom/media/omx/OmxDecoder.h
rename : content/media/omx/RtspExtractor.cpp => dom/media/omx/RtspExtractor.cpp
rename : content/media/omx/RtspExtractor.h => dom/media/omx/RtspExtractor.h
rename : content/media/omx/RtspMediaCodecDecoder.cpp => dom/media/omx/RtspMediaCodecDecoder.cpp
rename : content/media/omx/RtspMediaCodecDecoder.h => dom/media/omx/RtspMediaCodecDecoder.h
rename : content/media/omx/RtspMediaCodecReader.cpp => dom/media/omx/RtspMediaCodecReader.cpp
rename : content/media/omx/RtspMediaCodecReader.h => dom/media/omx/RtspMediaCodecReader.h
rename : content/media/omx/RtspOmxDecoder.cpp => dom/media/omx/RtspOmxDecoder.cpp
rename : content/media/omx/RtspOmxDecoder.h => dom/media/omx/RtspOmxDecoder.h
rename : content/media/omx/RtspOmxReader.cpp => dom/media/omx/RtspOmxReader.cpp
rename : content/media/omx/RtspOmxReader.h => dom/media/omx/RtspOmxReader.h
rename : content/media/omx/mediaresourcemanager/IMediaResourceManagerClient.cpp => dom/media/omx/mediaresourcemanager/IMediaResourceManagerClient.cpp
rename : content/media/omx/mediaresourcemanager/IMediaResourceManagerClient.h => dom/media/omx/mediaresourcemanager/IMediaResourceManagerClient.h
rename : content/media/omx/mediaresourcemanager/IMediaResourceManagerDeathNotifier.cpp => dom/media/omx/mediaresourcemanager/IMediaResourceManagerDeathNotifier.cpp
rename : content/media/omx/mediaresourcemanager/IMediaResourceManagerDeathNotifier.h => dom/media/omx/mediaresourcemanager/IMediaResourceManagerDeathNotifier.h
rename : content/media/omx/mediaresourcemanager/IMediaResourceManagerService.cpp => dom/media/omx/mediaresourcemanager/IMediaResourceManagerService.cpp
rename : content/media/omx/mediaresourcemanager/IMediaResourceManagerService.h => dom/media/omx/mediaresourcemanager/IMediaResourceManagerService.h
rename : content/media/omx/mediaresourcemanager/MediaResourceHandler.cpp => dom/media/omx/mediaresourcemanager/MediaResourceHandler.cpp
rename : content/media/omx/mediaresourcemanager/MediaResourceHandler.h => dom/media/omx/mediaresourcemanager/MediaResourceHandler.h
rename : content/media/omx/mediaresourcemanager/MediaResourceManagerClient.cpp => dom/media/omx/mediaresourcemanager/MediaResourceManagerClient.cpp
rename : content/media/omx/mediaresourcemanager/MediaResourceManagerClient.h => dom/media/omx/mediaresourcemanager/MediaResourceManagerClient.h
rename : content/media/omx/mediaresourcemanager/MediaResourceManagerService.cpp => dom/media/omx/mediaresourcemanager/MediaResourceManagerService.cpp
rename : content/media/omx/mediaresourcemanager/MediaResourceManagerService.h => dom/media/omx/mediaresourcemanager/MediaResourceManagerService.h
rename : content/media/omx/mediaresourcemanager/moz.build => dom/media/omx/mediaresourcemanager/moz.build
rename : content/media/omx/moz.build => dom/media/omx/moz.build
rename : content/media/raw/RawDecoder.cpp => dom/media/raw/RawDecoder.cpp
rename : content/media/raw/RawDecoder.h => dom/media/raw/RawDecoder.h
rename : content/media/raw/RawReader.cpp => dom/media/raw/RawReader.cpp
rename : content/media/raw/RawReader.h => dom/media/raw/RawReader.h
rename : content/media/raw/RawStructs.h => dom/media/raw/RawStructs.h
rename : content/media/raw/moz.build => dom/media/raw/moz.build
rename : content/media/systemservices/LoadManager.cpp => dom/media/systemservices/LoadManager.cpp
rename : content/media/systemservices/LoadManager.h => dom/media/systemservices/LoadManager.h
rename : content/media/systemservices/LoadManagerFactory.cpp => dom/media/systemservices/LoadManagerFactory.cpp
rename : content/media/systemservices/LoadManagerFactory.h => dom/media/systemservices/LoadManagerFactory.h
rename : content/media/systemservices/LoadMonitor.cpp => dom/media/systemservices/LoadMonitor.cpp
rename : content/media/systemservices/LoadMonitor.h => dom/media/systemservices/LoadMonitor.h
rename : content/media/systemservices/OSXRunLoopSingleton.cpp => dom/media/systemservices/OSXRunLoopSingleton.cpp
rename : content/media/systemservices/OSXRunLoopSingleton.h => dom/media/systemservices/OSXRunLoopSingleton.h
rename : content/media/systemservices/OpenSLESProvider.cpp => dom/media/systemservices/OpenSLESProvider.cpp
rename : content/media/systemservices/OpenSLESProvider.h => dom/media/systemservices/OpenSLESProvider.h
rename : content/media/systemservices/moz.build => dom/media/systemservices/moz.build
rename : content/media/test/320x240.ogv => dom/media/test/320x240.ogv
rename : content/media/test/320x240.ogv^headers^ => dom/media/test/320x240.ogv^headers^
rename : content/media/test/448636.ogv => dom/media/test/448636.ogv
rename : content/media/test/448636.ogv^headers^ => dom/media/test/448636.ogv^headers^
rename : content/media/test/VID_0001.ogg => dom/media/test/VID_0001.ogg
rename : content/media/test/VID_0001.ogg^headers^ => dom/media/test/VID_0001.ogg^headers^
rename : content/media/test/allowed.sjs => dom/media/test/allowed.sjs
rename : content/media/test/audio-gaps.ogg => dom/media/test/audio-gaps.ogg
rename : content/media/test/audio-gaps.ogg^headers^ => dom/media/test/audio-gaps.ogg^headers^
rename : content/media/test/audio-overhang.ogg => dom/media/test/audio-overhang.ogg
rename : content/media/test/audio-overhang.ogg^headers^ => dom/media/test/audio-overhang.ogg^headers^
rename : content/media/test/audio.wav => dom/media/test/audio.wav
rename : content/media/test/audio.wav^headers^ => dom/media/test/audio.wav^headers^
rename : content/media/test/bad-signature.vtt => dom/media/test/bad-signature.vtt
rename : content/media/test/badtags.ogg => dom/media/test/badtags.ogg
rename : content/media/test/badtags.ogg^headers^ => dom/media/test/badtags.ogg^headers^
rename : content/media/test/basic.vtt => dom/media/test/basic.vtt
rename : content/media/test/beta-phrasebook.ogg => dom/media/test/beta-phrasebook.ogg
rename : content/media/test/beta-phrasebook.ogg^headers^ => dom/media/test/beta-phrasebook.ogg^headers^
rename : content/media/test/big.wav => dom/media/test/big.wav
rename : content/media/test/big.wav^headers^ => dom/media/test/big.wav^headers^
rename : content/media/test/bogus.duh => dom/media/test/bogus.duh
rename : content/media/test/bogus.ogv => dom/media/test/bogus.ogv
rename : content/media/test/bogus.ogv^headers^ => dom/media/test/bogus.ogv^headers^
rename : content/media/test/bogus.wav => dom/media/test/bogus.wav
rename : content/media/test/bogus.wav^headers^ => dom/media/test/bogus.wav^headers^
rename : content/media/test/bug1066943.webm => dom/media/test/bug1066943.webm
rename : content/media/test/bug1066943.webm^headers^ => dom/media/test/bug1066943.webm^headers^
rename : content/media/test/bug461281.ogg => dom/media/test/bug461281.ogg
rename : content/media/test/bug461281.ogg^headers^ => dom/media/test/bug461281.ogg^headers^
rename : content/media/test/bug482461-theora.ogv => dom/media/test/bug482461-theora.ogv
rename : content/media/test/bug482461-theora.ogv^headers^ => dom/media/test/bug482461-theora.ogv^headers^
rename : content/media/test/bug482461.ogv => dom/media/test/bug482461.ogv
rename : content/media/test/bug482461.ogv^headers^ => dom/media/test/bug482461.ogv^headers^
rename : content/media/test/bug495129.ogv => dom/media/test/bug495129.ogv
rename : content/media/test/bug495129.ogv^headers^ => dom/media/test/bug495129.ogv^headers^
rename : content/media/test/bug495794.ogg => dom/media/test/bug495794.ogg
rename : content/media/test/bug495794.ogg^headers^ => dom/media/test/bug495794.ogg^headers^
rename : content/media/test/bug498380.ogv => dom/media/test/bug498380.ogv
rename : content/media/test/bug498380.ogv^headers^ => dom/media/test/bug498380.ogv^headers^
rename : content/media/test/bug498855-1.ogv => dom/media/test/bug498855-1.ogv
rename : content/media/test/bug498855-1.ogv^headers^ => dom/media/test/bug498855-1.ogv^headers^
rename : content/media/test/bug498855-2.ogv => dom/media/test/bug498855-2.ogv
rename : content/media/test/bug498855-2.ogv^headers^ => dom/media/test/bug498855-2.ogv^headers^
rename : content/media/test/bug498855-3.ogv => dom/media/test/bug498855-3.ogv
rename : content/media/test/bug498855-3.ogv^headers^ => dom/media/test/bug498855-3.ogv^headers^
rename : content/media/test/bug499519.ogv => dom/media/test/bug499519.ogv
rename : content/media/test/bug499519.ogv^headers^ => dom/media/test/bug499519.ogv^headers^
rename : content/media/test/bug500311.ogv => dom/media/test/bug500311.ogv
rename : content/media/test/bug500311.ogv^headers^ => dom/media/test/bug500311.ogv^headers^
rename : content/media/test/bug501279.ogg => dom/media/test/bug501279.ogg
rename : content/media/test/bug501279.ogg^headers^ => dom/media/test/bug501279.ogg^headers^
rename : content/media/test/bug504613.ogv => dom/media/test/bug504613.ogv
rename : content/media/test/bug504613.ogv^headers^ => dom/media/test/bug504613.ogv^headers^
rename : content/media/test/bug504644.ogv => dom/media/test/bug504644.ogv
rename : content/media/test/bug504644.ogv^headers^ => dom/media/test/bug504644.ogv^headers^
rename : content/media/test/bug504843.ogv => dom/media/test/bug504843.ogv
rename : content/media/test/bug504843.ogv^headers^ => dom/media/test/bug504843.ogv^headers^
rename : content/media/test/bug506094.ogv => dom/media/test/bug506094.ogv
rename : content/media/test/bug506094.ogv^headers^ => dom/media/test/bug506094.ogv^headers^
rename : content/media/test/bug516323.indexed.ogv => dom/media/test/bug516323.indexed.ogv
rename : content/media/test/bug516323.indexed.ogv^headers^ => dom/media/test/bug516323.indexed.ogv^headers^
rename : content/media/test/bug516323.ogv => dom/media/test/bug516323.ogv
rename : content/media/test/bug516323.ogv^headers^ => dom/media/test/bug516323.ogv^headers^
rename : content/media/test/bug520493.ogg => dom/media/test/bug520493.ogg
rename : content/media/test/bug520493.ogg^headers^ => dom/media/test/bug520493.ogg^headers^
rename : content/media/test/bug520500.ogg => dom/media/test/bug520500.ogg
rename : content/media/test/bug520500.ogg^headers^ => dom/media/test/bug520500.ogg^headers^
rename : content/media/test/bug520908.ogv => dom/media/test/bug520908.ogv
rename : content/media/test/bug520908.ogv^headers^ => dom/media/test/bug520908.ogv^headers^
rename : content/media/test/bug523816.ogv => dom/media/test/bug523816.ogv
rename : content/media/test/bug523816.ogv^headers^ => dom/media/test/bug523816.ogv^headers^
rename : content/media/test/bug533822.ogg => dom/media/test/bug533822.ogg
rename : content/media/test/bug533822.ogg^headers^ => dom/media/test/bug533822.ogg^headers^
rename : content/media/test/bug556821.ogv => dom/media/test/bug556821.ogv
rename : content/media/test/bug556821.ogv^headers^ => dom/media/test/bug556821.ogv^headers^
rename : content/media/test/bug557094.ogv => dom/media/test/bug557094.ogv
rename : content/media/test/bug557094.ogv^headers^ => dom/media/test/bug557094.ogv^headers^
rename : content/media/test/bug580982.webm => dom/media/test/bug580982.webm
rename : content/media/test/bug580982.webm^headers^ => dom/media/test/bug580982.webm^headers^
rename : content/media/test/bug603918.webm => dom/media/test/bug603918.webm
rename : content/media/test/bug603918.webm^headers^ => dom/media/test/bug603918.webm^headers^
rename : content/media/test/bug604067.webm => dom/media/test/bug604067.webm
rename : content/media/test/bug604067.webm^headers^ => dom/media/test/bug604067.webm^headers^
rename : content/media/test/bug883173.vtt => dom/media/test/bug883173.vtt
rename : content/media/test/can_play_type_dash.js => dom/media/test/can_play_type_dash.js
rename : content/media/test/can_play_type_ogg.js => dom/media/test/can_play_type_ogg.js
rename : content/media/test/can_play_type_wave.js => dom/media/test/can_play_type_wave.js
rename : content/media/test/can_play_type_webm.js => dom/media/test/can_play_type_webm.js
rename : content/media/test/cancellable_request.sjs => dom/media/test/cancellable_request.sjs
rename : content/media/test/chain.ogg => dom/media/test/chain.ogg
rename : content/media/test/chain.ogg^headers^ => dom/media/test/chain.ogg^headers^
rename : content/media/test/chain.ogv => dom/media/test/chain.ogv
rename : content/media/test/chain.ogv^headers^ => dom/media/test/chain.ogv^headers^
rename : content/media/test/chain.opus => dom/media/test/chain.opus
rename : content/media/test/chain.opus^headers^ => dom/media/test/chain.opus^headers^
rename : content/media/test/chained-audio-video.ogg => dom/media/test/chained-audio-video.ogg
rename : content/media/test/chained-audio-video.ogg^headers^ => dom/media/test/chained-audio-video.ogg^headers^
rename : content/media/test/chained-video.ogv => dom/media/test/chained-video.ogv
rename : content/media/test/chained-video.ogv^headers^ => dom/media/test/chained-video.ogv^headers^
rename : content/media/test/chrome.ini => dom/media/test/chrome.ini
rename : content/media/test/contentDuration1.sjs => dom/media/test/contentDuration1.sjs
rename : content/media/test/contentDuration2.sjs => dom/media/test/contentDuration2.sjs
rename : content/media/test/contentDuration3.sjs => dom/media/test/contentDuration3.sjs
rename : content/media/test/contentDuration4.sjs => dom/media/test/contentDuration4.sjs
rename : content/media/test/contentDuration5.sjs => dom/media/test/contentDuration5.sjs
rename : content/media/test/contentDuration6.sjs => dom/media/test/contentDuration6.sjs
rename : content/media/test/contentDuration7.sjs => dom/media/test/contentDuration7.sjs
rename : content/media/test/contentType.sjs => dom/media/test/contentType.sjs
rename : content/media/test/crashtests/0-timescale.html => dom/media/test/crashtests/0-timescale.html
rename : content/media/test/crashtests/0-timescale.mp4 => dom/media/test/crashtests/0-timescale.mp4
rename : content/media/test/crashtests/1015662.html => dom/media/test/crashtests/1015662.html
rename : content/media/test/crashtests/1028458.html => dom/media/test/crashtests/1028458.html
rename : content/media/test/crashtests/1080986.html => dom/media/test/crashtests/1080986.html
rename : content/media/test/crashtests/1080986.wav => dom/media/test/crashtests/1080986.wav
rename : content/media/test/crashtests/459439-1.html => dom/media/test/crashtests/459439-1.html
rename : content/media/test/crashtests/466607-1.html => dom/media/test/crashtests/466607-1.html
rename : content/media/test/crashtests/466945-1.html => dom/media/test/crashtests/466945-1.html
rename : content/media/test/crashtests/468763-1.html => dom/media/test/crashtests/468763-1.html
rename : content/media/test/crashtests/474744-1.html => dom/media/test/crashtests/474744-1.html
rename : content/media/test/crashtests/481136-1.html => dom/media/test/crashtests/481136-1.html
rename : content/media/test/crashtests/492286-1.xhtml => dom/media/test/crashtests/492286-1.xhtml
rename : content/media/test/crashtests/493915-1.html => dom/media/test/crashtests/493915-1.html
rename : content/media/test/crashtests/495794-1.html => dom/media/test/crashtests/495794-1.html
rename : content/media/test/crashtests/495794-1.ogg => dom/media/test/crashtests/495794-1.ogg
rename : content/media/test/crashtests/576612-1.html => dom/media/test/crashtests/576612-1.html
rename : content/media/test/crashtests/691096-1.html => dom/media/test/crashtests/691096-1.html
rename : content/media/test/crashtests/752784-1.html => dom/media/test/crashtests/752784-1.html
rename : content/media/test/crashtests/789075-1.html => dom/media/test/crashtests/789075-1.html
rename : content/media/test/crashtests/789075.webm => dom/media/test/crashtests/789075.webm
rename : content/media/test/crashtests/795892-1.html => dom/media/test/crashtests/795892-1.html
rename : content/media/test/crashtests/844563.html => dom/media/test/crashtests/844563.html
rename : content/media/test/crashtests/846612.html => dom/media/test/crashtests/846612.html
rename : content/media/test/crashtests/852838.html => dom/media/test/crashtests/852838.html
rename : content/media/test/crashtests/865537-1.html => dom/media/test/crashtests/865537-1.html
rename : content/media/test/crashtests/868504.html => dom/media/test/crashtests/868504.html
rename : content/media/test/crashtests/874869.html => dom/media/test/crashtests/874869.html
rename : content/media/test/crashtests/874915.html => dom/media/test/crashtests/874915.html
rename : content/media/test/crashtests/874934.html => dom/media/test/crashtests/874934.html
rename : content/media/test/crashtests/874952.html => dom/media/test/crashtests/874952.html
rename : content/media/test/crashtests/875144.html => dom/media/test/crashtests/875144.html
rename : content/media/test/crashtests/875596.html => dom/media/test/crashtests/875596.html
rename : content/media/test/crashtests/875911.html => dom/media/test/crashtests/875911.html
rename : content/media/test/crashtests/876024-1.html => dom/media/test/crashtests/876024-1.html
rename : content/media/test/crashtests/876024-2.html => dom/media/test/crashtests/876024-2.html
rename : content/media/test/crashtests/876118.html => dom/media/test/crashtests/876118.html
rename : content/media/test/crashtests/876207.html => dom/media/test/crashtests/876207.html
rename : content/media/test/crashtests/876215.html => dom/media/test/crashtests/876215.html
rename : content/media/test/crashtests/876249.html => dom/media/test/crashtests/876249.html
rename : content/media/test/crashtests/876252.html => dom/media/test/crashtests/876252.html
rename : content/media/test/crashtests/876834.html => dom/media/test/crashtests/876834.html
rename : content/media/test/crashtests/877527.html => dom/media/test/crashtests/877527.html
rename : content/media/test/crashtests/877820.html => dom/media/test/crashtests/877820.html
rename : content/media/test/crashtests/878014.html => dom/media/test/crashtests/878014.html
rename : content/media/test/crashtests/878328.html => dom/media/test/crashtests/878328.html
rename : content/media/test/crashtests/878407.html => dom/media/test/crashtests/878407.html
rename : content/media/test/crashtests/878478.html => dom/media/test/crashtests/878478.html
rename : content/media/test/crashtests/880129.html => dom/media/test/crashtests/880129.html
rename : content/media/test/crashtests/880202.html => dom/media/test/crashtests/880202.html
rename : content/media/test/crashtests/880342-1.html => dom/media/test/crashtests/880342-1.html
rename : content/media/test/crashtests/880342-2.html => dom/media/test/crashtests/880342-2.html
rename : content/media/test/crashtests/880384.html => dom/media/test/crashtests/880384.html
rename : content/media/test/crashtests/880404.html => dom/media/test/crashtests/880404.html
rename : content/media/test/crashtests/880724.html => dom/media/test/crashtests/880724.html
rename : content/media/test/crashtests/881775.html => dom/media/test/crashtests/881775.html
rename : content/media/test/crashtests/882549.html => dom/media/test/crashtests/882549.html
rename : content/media/test/crashtests/882956.html => dom/media/test/crashtests/882956.html
rename : content/media/test/crashtests/884459.html => dom/media/test/crashtests/884459.html
rename : content/media/test/crashtests/889042.html => dom/media/test/crashtests/889042.html
rename : content/media/test/crashtests/894104.html => dom/media/test/crashtests/894104.html
rename : content/media/test/crashtests/907986-1.html => dom/media/test/crashtests/907986-1.html
rename : content/media/test/crashtests/907986-2.html => dom/media/test/crashtests/907986-2.html
rename : content/media/test/crashtests/907986-3.html => dom/media/test/crashtests/907986-3.html
rename : content/media/test/crashtests/907986-4.html => dom/media/test/crashtests/907986-4.html
rename : content/media/test/crashtests/910171-1.html => dom/media/test/crashtests/910171-1.html
rename : content/media/test/crashtests/920987.html => dom/media/test/crashtests/920987.html
rename : content/media/test/crashtests/925619-1.html => dom/media/test/crashtests/925619-1.html
rename : content/media/test/crashtests/925619-2.html => dom/media/test/crashtests/925619-2.html
rename : content/media/test/crashtests/926619.html => dom/media/test/crashtests/926619.html
rename : content/media/test/crashtests/933151.html => dom/media/test/crashtests/933151.html
rename : content/media/test/crashtests/933156.html => dom/media/test/crashtests/933156.html
rename : content/media/test/crashtests/944851.html => dom/media/test/crashtests/944851.html
rename : content/media/test/crashtests/952756.html => dom/media/test/crashtests/952756.html
rename : content/media/test/crashtests/966636.html => dom/media/test/crashtests/966636.html
rename : content/media/test/crashtests/986901.html => dom/media/test/crashtests/986901.html
rename : content/media/test/crashtests/990794.html => dom/media/test/crashtests/990794.html
rename : content/media/test/crashtests/buffer-source-ended-1.html => dom/media/test/crashtests/buffer-source-ended-1.html
rename : content/media/test/crashtests/cors.webm => dom/media/test/crashtests/cors.webm
rename : content/media/test/crashtests/cors.webm^headers^ => dom/media/test/crashtests/cors.webm^headers^
rename : content/media/test/crashtests/crashtests.list => dom/media/test/crashtests/crashtests.list
rename : content/media/test/crashtests/media-element-source-seek-1.html => dom/media/test/crashtests/media-element-source-seek-1.html
rename : content/media/test/crashtests/offline-buffer-source-ended-1.html => dom/media/test/crashtests/offline-buffer-source-ended-1.html
rename : content/media/test/crashtests/oscillator-ended-1.html => dom/media/test/crashtests/oscillator-ended-1.html
rename : content/media/test/crashtests/oscillator-ended-2.html => dom/media/test/crashtests/oscillator-ended-2.html
rename : content/media/test/crashtests/sound.ogg => dom/media/test/crashtests/sound.ogg
rename : content/media/test/dash/dash-manifest-garbled-webm.mpd => dom/media/test/dash/dash-manifest-garbled-webm.mpd
rename : content/media/test/dash/dash-manifest-garbled.mpd => dom/media/test/dash/dash-manifest-garbled.mpd
rename : content/media/test/dash/dash-manifest-sjs.mpd => dom/media/test/dash/dash-manifest-sjs.mpd
rename : content/media/test/dash/dash-manifest.mpd => dom/media/test/dash/dash-manifest.mpd
rename : content/media/test/dash/dash-webm-audio-128k.webm => dom/media/test/dash/dash-webm-audio-128k.webm
rename : content/media/test/dash/dash-webm-video-320x180.webm => dom/media/test/dash/dash-webm-video-320x180.webm
rename : content/media/test/dash/dash-webm-video-428x240.webm => dom/media/test/dash/dash-webm-video-428x240.webm
rename : content/media/test/dash/garbled.webm => dom/media/test/dash/garbled.webm
rename : content/media/test/dash_detect_stream_switch.sjs => dom/media/test/dash_detect_stream_switch.sjs
rename : content/media/test/detodos.opus => dom/media/test/detodos.opus
rename : content/media/test/detodos.opus^headers^ => dom/media/test/detodos.opus^headers^
rename : content/media/test/detodos.webm => dom/media/test/detodos.webm
rename : content/media/test/detodos.webm^headers^ => dom/media/test/detodos.webm^headers^
rename : content/media/test/dirac.ogg => dom/media/test/dirac.ogg
rename : content/media/test/dirac.ogg^headers^ => dom/media/test/dirac.ogg^headers^
rename : content/media/test/dynamic_redirect.sjs => dom/media/test/dynamic_redirect.sjs
rename : content/media/test/dynamic_resource.sjs => dom/media/test/dynamic_resource.sjs
rename : content/media/test/file_access_controls.html => dom/media/test/file_access_controls.html
rename : content/media/test/fragment_noplay.js => dom/media/test/fragment_noplay.js
rename : content/media/test/fragment_play.js => dom/media/test/fragment_play.js
rename : content/media/test/gizmo-frag-cenc.xml => dom/media/test/gizmo-frag-cenc.xml
rename : content/media/test/gizmo-frag-cenc1.m4s => dom/media/test/gizmo-frag-cenc1.m4s
rename : content/media/test/gizmo-frag-cenc2.m4s => dom/media/test/gizmo-frag-cenc2.m4s
rename : content/media/test/gizmo-frag-cencinit.mp4 => dom/media/test/gizmo-frag-cencinit.mp4
rename : content/media/test/gizmo.mp4 => dom/media/test/gizmo.mp4
rename : content/media/test/gizmo.mp4^headers^ => dom/media/test/gizmo.mp4^headers^
rename : content/media/test/graph_latency.py => dom/media/test/graph_latency.py
rename : content/media/test/huge-id3.mp3 => dom/media/test/huge-id3.mp3
rename : content/media/test/huge-id3.mp3^headers^ => dom/media/test/huge-id3.mp3^headers^
rename : content/media/test/id3tags.mp3 => dom/media/test/id3tags.mp3
rename : content/media/test/id3tags.mp3^headers^ => dom/media/test/id3tags.mp3^headers^
rename : content/media/test/invalid-cmap-s0c0.opus => dom/media/test/invalid-cmap-s0c0.opus
rename : content/media/test/invalid-cmap-s0c0.opus^headers^ => dom/media/test/invalid-cmap-s0c0.opus^headers^
rename : content/media/test/invalid-cmap-s0c2.opus => dom/media/test/invalid-cmap-s0c2.opus
rename : content/media/test/invalid-cmap-s0c2.opus^headers^ => dom/media/test/invalid-cmap-s0c2.opus^headers^
rename : content/media/test/invalid-cmap-s1c2.opus => dom/media/test/invalid-cmap-s1c2.opus
rename : content/media/test/invalid-cmap-s1c2.opus^headers^ => dom/media/test/invalid-cmap-s1c2.opus^headers^
rename : content/media/test/invalid-cmap-short.opus => dom/media/test/invalid-cmap-short.opus
rename : content/media/test/invalid-cmap-short.opus^headers^ => dom/media/test/invalid-cmap-short.opus^headers^
rename : content/media/test/invalid-discard_on_multi_blocks.webm => dom/media/test/invalid-discard_on_multi_blocks.webm
rename : content/media/test/invalid-discard_on_multi_blocks.webm^headers^ => dom/media/test/invalid-discard_on_multi_blocks.webm^headers^
rename : content/media/test/invalid-excess_discard.webm => dom/media/test/invalid-excess_discard.webm
rename : content/media/test/invalid-excess_discard.webm^headers^ => dom/media/test/invalid-excess_discard.webm^headers^
rename : content/media/test/invalid-excess_neg_discard.webm => dom/media/test/invalid-excess_neg_discard.webm
rename : content/media/test/invalid-excess_neg_discard.webm^headers^ => dom/media/test/invalid-excess_neg_discard.webm^headers^
rename : content/media/test/invalid-m0c0.opus => dom/media/test/invalid-m0c0.opus
rename : content/media/test/invalid-m0c0.opus^headers^ => dom/media/test/invalid-m0c0.opus^headers^
rename : content/media/test/invalid-m0c3.opus => dom/media/test/invalid-m0c3.opus
rename : content/media/test/invalid-m0c3.opus^headers^ => dom/media/test/invalid-m0c3.opus^headers^
rename : content/media/test/invalid-m1c0.opus => dom/media/test/invalid-m1c0.opus
rename : content/media/test/invalid-m1c0.opus^headers^ => dom/media/test/invalid-m1c0.opus^headers^
rename : content/media/test/invalid-m1c9.opus => dom/media/test/invalid-m1c9.opus
rename : content/media/test/invalid-m1c9.opus^headers^ => dom/media/test/invalid-m1c9.opus^headers^
rename : content/media/test/invalid-m2c0.opus => dom/media/test/invalid-m2c0.opus
rename : content/media/test/invalid-m2c0.opus^headers^ => dom/media/test/invalid-m2c0.opus^headers^
rename : content/media/test/invalid-m2c1.opus => dom/media/test/invalid-m2c1.opus
rename : content/media/test/invalid-m2c1.opus^headers^ => dom/media/test/invalid-m2c1.opus^headers^
rename : content/media/test/invalid-neg_discard.webm => dom/media/test/invalid-neg_discard.webm
rename : content/media/test/invalid-neg_discard.webm^headers^ => dom/media/test/invalid-neg_discard.webm^headers^
rename : content/media/test/invalid-preskip.webm => dom/media/test/invalid-preskip.webm
rename : content/media/test/invalid-preskip.webm^headers^ => dom/media/test/invalid-preskip.webm^headers^
rename : content/media/test/long.vtt => dom/media/test/long.vtt
rename : content/media/test/make-headers.sh => dom/media/test/make-headers.sh
rename : content/media/test/manifest.js => dom/media/test/manifest.js
rename : content/media/test/mochitest.ini => dom/media/test/mochitest.ini
rename : content/media/test/multiple-bos-more-header-fileds.ogg => dom/media/test/multiple-bos-more-header-fileds.ogg
rename : content/media/test/multiple-bos-more-header-fileds.ogg^headers^ => dom/media/test/multiple-bos-more-header-fileds.ogg^headers^
rename : content/media/test/multiple-bos.ogg => dom/media/test/multiple-bos.ogg
rename : content/media/test/multiple-bos.ogg^headers^ => dom/media/test/multiple-bos.ogg^headers^
rename : content/media/test/no-cues.webm => dom/media/test/no-cues.webm
rename : content/media/test/no-cues.webm^headers^ => dom/media/test/no-cues.webm^headers^
rename : content/media/test/noContentLength.sjs => dom/media/test/noContentLength.sjs
rename : content/media/test/notags.mp3 => dom/media/test/notags.mp3
rename : content/media/test/notags.mp3^headers^ => dom/media/test/notags.mp3^headers^
rename : content/media/test/owl-funnier-id3.mp3 => dom/media/test/owl-funnier-id3.mp3
rename : content/media/test/owl-funnier-id3.mp3^headers^ => dom/media/test/owl-funnier-id3.mp3^headers^
rename : content/media/test/owl-funny-id3.mp3 => dom/media/test/owl-funny-id3.mp3
rename : content/media/test/owl-funny-id3.mp3^headers^ => dom/media/test/owl-funny-id3.mp3^headers^
rename : content/media/test/owl.mp3 => dom/media/test/owl.mp3
rename : content/media/test/owl.mp3^headers^ => dom/media/test/owl.mp3^headers^
rename : content/media/test/parser.vtt => dom/media/test/parser.vtt
rename : content/media/test/pixel_aspect_ratio.mp4 => dom/media/test/pixel_aspect_ratio.mp4
rename : content/media/test/r11025_msadpcm_c1.wav => dom/media/test/r11025_msadpcm_c1.wav
rename : content/media/test/r11025_msadpcm_c1.wav^headers^ => dom/media/test/r11025_msadpcm_c1.wav^headers^
rename : content/media/test/r11025_s16_c1.wav => dom/media/test/r11025_s16_c1.wav
rename : content/media/test/r11025_s16_c1.wav^headers^ => dom/media/test/r11025_s16_c1.wav^headers^
rename : content/media/test/r11025_s16_c1_trailing.wav => dom/media/test/r11025_s16_c1_trailing.wav
rename : content/media/test/r11025_s16_c1_trailing.wav^headers^ => dom/media/test/r11025_s16_c1_trailing.wav^headers^
rename : content/media/test/r11025_u8_c1.wav => dom/media/test/r11025_u8_c1.wav
rename : content/media/test/r11025_u8_c1.wav^headers^ => dom/media/test/r11025_u8_c1.wav^headers^
rename : content/media/test/r11025_u8_c1_trunc.wav => dom/media/test/r11025_u8_c1_trunc.wav
rename : content/media/test/r11025_u8_c1_trunc.wav^headers^ => dom/media/test/r11025_u8_c1_trunc.wav^headers^
rename : content/media/test/r16000_u8_c1_list.wav => dom/media/test/r16000_u8_c1_list.wav
rename : content/media/test/r16000_u8_c1_list.wav^headers^ => dom/media/test/r16000_u8_c1_list.wav^headers^
rename : content/media/test/reactivate_helper.html => dom/media/test/reactivate_helper.html
rename : content/media/test/redirect.sjs => dom/media/test/redirect.sjs
rename : content/media/test/referer.sjs => dom/media/test/referer.sjs
rename : content/media/test/region.vtt => dom/media/test/region.vtt
rename : content/media/test/sample-fisbone-skeleton4.ogv => dom/media/test/sample-fisbone-skeleton4.ogv
rename : content/media/test/sample-fisbone-skeleton4.ogv^headers^ => dom/media/test/sample-fisbone-skeleton4.ogv^headers^
rename : content/media/test/sample-fisbone-wrong-header.ogv => dom/media/test/sample-fisbone-wrong-header.ogv
rename : content/media/test/sample-fisbone-wrong-header.ogv^headers^ => dom/media/test/sample-fisbone-wrong-header.ogv^headers^
rename : content/media/test/sample.3g2 => dom/media/test/sample.3g2
rename : content/media/test/sample.3gp => dom/media/test/sample.3gp
rename : content/media/test/seek.ogv => dom/media/test/seek.ogv
rename : content/media/test/seek.ogv^headers^ => dom/media/test/seek.ogv^headers^
rename : content/media/test/seek.webm => dom/media/test/seek.webm
rename : content/media/test/seek.webm^headers^ => dom/media/test/seek.webm^headers^
rename : content/media/test/seek.yuv => dom/media/test/seek.yuv
rename : content/media/test/seekLies.sjs => dom/media/test/seekLies.sjs
rename : content/media/test/seek_support.js => dom/media/test/seek_support.js
rename : content/media/test/seek_with_sound.ogg => dom/media/test/seek_with_sound.ogg
rename : content/media/test/seek_with_sound.ogg^headers^ => dom/media/test/seek_with_sound.ogg^headers^
rename : content/media/test/short-cenc.mp4 => dom/media/test/short-cenc.mp4
rename : content/media/test/short-cenc.xml => dom/media/test/short-cenc.xml
rename : content/media/test/short-video.ogv => dom/media/test/short-video.ogv
rename : content/media/test/short-video.ogv^headers^ => dom/media/test/short-video.ogv^headers^
rename : content/media/test/short.mp4 => dom/media/test/short.mp4
rename : content/media/test/small-shot-mp3.mp4 => dom/media/test/small-shot-mp3.mp4
rename : content/media/test/small-shot-mp3.mp4^headers^ => dom/media/test/small-shot-mp3.mp4^headers^
rename : content/media/test/small-shot.m4a => dom/media/test/small-shot.m4a
rename : content/media/test/small-shot.mp3 => dom/media/test/small-shot.mp3
rename : content/media/test/small-shot.mp3^headers^ => dom/media/test/small-shot.mp3^headers^
rename : content/media/test/small-shot.ogg => dom/media/test/small-shot.ogg
rename : content/media/test/small-shot.ogg^headers^ => dom/media/test/small-shot.ogg^headers^
rename : content/media/test/sound.ogg => dom/media/test/sound.ogg
rename : content/media/test/sound.ogg^headers^ => dom/media/test/sound.ogg^headers^
rename : content/media/test/spacestorm-1000Hz-100ms.ogg => dom/media/test/spacestorm-1000Hz-100ms.ogg
rename : content/media/test/spacestorm-1000Hz-100ms.ogg^headers^ => dom/media/test/spacestorm-1000Hz-100ms.ogg^headers^
rename : content/media/test/split.webm => dom/media/test/split.webm
rename : content/media/test/split.webm^headers^ => dom/media/test/split.webm^headers^
rename : content/media/test/street.mp4 => dom/media/test/street.mp4
rename : content/media/test/street.mp4^headers^ => dom/media/test/street.mp4^headers^
rename : content/media/test/test-1-mono.opus => dom/media/test/test-1-mono.opus
rename : content/media/test/test-1-mono.opus^headers^ => dom/media/test/test-1-mono.opus^headers^
rename : content/media/test/test-2-stereo.opus => dom/media/test/test-2-stereo.opus
rename : content/media/test/test-2-stereo.opus^headers^ => dom/media/test/test-2-stereo.opus^headers^
rename : content/media/test/test-3-LCR.opus => dom/media/test/test-3-LCR.opus
rename : content/media/test/test-3-LCR.opus^headers^ => dom/media/test/test-3-LCR.opus^headers^
rename : content/media/test/test-4-quad.opus => dom/media/test/test-4-quad.opus
rename : content/media/test/test-4-quad.opus^headers^ => dom/media/test/test-4-quad.opus^headers^
rename : content/media/test/test-5-5.0.opus => dom/media/test/test-5-5.0.opus
rename : content/media/test/test-5-5.0.opus^headers^ => dom/media/test/test-5-5.0.opus^headers^
rename : content/media/test/test-6-5.1.opus => dom/media/test/test-6-5.1.opus
rename : content/media/test/test-6-5.1.opus^headers^ => dom/media/test/test-6-5.1.opus^headers^
rename : content/media/test/test-7-6.1.opus => dom/media/test/test-7-6.1.opus
rename : content/media/test/test-7-6.1.opus^headers^ => dom/media/test/test-7-6.1.opus^headers^
rename : content/media/test/test-8-7.1.opus => dom/media/test/test-8-7.1.opus
rename : content/media/test/test-8-7.1.opus^headers^ => dom/media/test/test-8-7.1.opus^headers^
rename : content/media/test/test_VideoPlaybackQuality.html => dom/media/test/test_VideoPlaybackQuality.html
rename : content/media/test/test_VideoPlaybackQuality_disabled.html => dom/media/test/test_VideoPlaybackQuality_disabled.html
rename : content/media/test/test_access_control.html => dom/media/test/test_access_control.html
rename : content/media/test/test_aspectratio_mp4.html => dom/media/test/test_aspectratio_mp4.html
rename : content/media/test/test_audio1.html => dom/media/test/test_audio1.html
rename : content/media/test/test_audio2.html => dom/media/test/test_audio2.html
rename : content/media/test/test_audioDocumentTitle.html => dom/media/test/test_audioDocumentTitle.html
rename : content/media/test/test_autoplay.html => dom/media/test/test_autoplay.html
rename : content/media/test/test_autoplay_contentEditable.html => dom/media/test/test_autoplay_contentEditable.html
rename : content/media/test/test_buffered.html => dom/media/test/test_buffered.html
rename : content/media/test/test_bug1018933.html => dom/media/test/test_bug1018933.html
rename : content/media/test/test_bug448534.html => dom/media/test/test_bug448534.html
rename : content/media/test/test_bug463162.xhtml => dom/media/test/test_bug463162.xhtml
rename : content/media/test/test_bug465498.html => dom/media/test/test_bug465498.html
rename : content/media/test/test_bug493187.html => dom/media/test/test_bug493187.html
rename : content/media/test/test_bug495145.html => dom/media/test/test_bug495145.html
rename : content/media/test/test_bug495300.html => dom/media/test/test_bug495300.html
rename : content/media/test/test_bug654550.html => dom/media/test/test_bug654550.html
rename : content/media/test/test_bug686942.html => dom/media/test/test_bug686942.html
rename : content/media/test/test_bug726904.html => dom/media/test/test_bug726904.html
rename : content/media/test/test_bug874897.html => dom/media/test/test_bug874897.html
rename : content/media/test/test_bug883173.html => dom/media/test/test_bug883173.html
rename : content/media/test/test_bug895091.html => dom/media/test/test_bug895091.html
rename : content/media/test/test_bug895305.html => dom/media/test/test_bug895305.html
rename : content/media/test/test_bug919265.html => dom/media/test/test_bug919265.html
rename : content/media/test/test_bug957847.html => dom/media/test/test_bug957847.html
rename : content/media/test/test_can_play_type.html => dom/media/test/test_can_play_type.html
rename : content/media/test/test_can_play_type_mpeg.html => dom/media/test/test_can_play_type_mpeg.html
rename : content/media/test/test_can_play_type_no_ogg.html => dom/media/test/test_can_play_type_no_ogg.html
rename : content/media/test/test_can_play_type_no_wave.html => dom/media/test/test_can_play_type_no_wave.html
rename : content/media/test/test_can_play_type_no_webm.html => dom/media/test/test_can_play_type_no_webm.html
rename : content/media/test/test_can_play_type_ogg.html => dom/media/test/test_can_play_type_ogg.html
rename : content/media/test/test_can_play_type_wave.html => dom/media/test/test_can_play_type_wave.html
rename : content/media/test/test_can_play_type_webm.html => dom/media/test/test_can_play_type_webm.html
rename : content/media/test/test_chaining.html => dom/media/test/test_chaining.html
rename : content/media/test/test_clone_media_element.html => dom/media/test/test_clone_media_element.html
rename : content/media/test/test_closing_connections.html => dom/media/test/test_closing_connections.html
rename : content/media/test/test_constants.html => dom/media/test/test_constants.html
rename : content/media/test/test_contentDuration1.html => dom/media/test/test_contentDuration1.html
rename : content/media/test/test_contentDuration2.html => dom/media/test/test_contentDuration2.html
rename : content/media/test/test_contentDuration3.html => dom/media/test/test_contentDuration3.html
rename : content/media/test/test_contentDuration4.html => dom/media/test/test_contentDuration4.html
rename : content/media/test/test_contentDuration5.html => dom/media/test/test_contentDuration5.html
rename : content/media/test/test_contentDuration6.html => dom/media/test/test_contentDuration6.html
rename : content/media/test/test_contentDuration7.html => dom/media/test/test_contentDuration7.html
rename : content/media/test/test_controls.html => dom/media/test/test_controls.html
rename : content/media/test/test_currentTime.html => dom/media/test/test_currentTime.html
rename : content/media/test/test_decode_error.html => dom/media/test/test_decode_error.html
rename : content/media/test/test_decoder_disable.html => dom/media/test/test_decoder_disable.html
rename : content/media/test/test_defaultMuted.html => dom/media/test/test_defaultMuted.html
rename : content/media/test/test_delay_load.html => dom/media/test/test_delay_load.html
rename : content/media/test/test_encryptedMediaExtensions.html => dom/media/test/test_encryptedMediaExtensions.html
rename : content/media/test/test_error_in_video_document.html => dom/media/test/test_error_in_video_document.html
rename : content/media/test/test_error_on_404.html => dom/media/test/test_error_on_404.html
rename : content/media/test/test_fastSeek-forwards.html => dom/media/test/test_fastSeek-forwards.html
rename : content/media/test/test_fastSeek.html => dom/media/test/test_fastSeek.html
rename : content/media/test/test_fragment_noplay.html => dom/media/test/test_fragment_noplay.html
rename : content/media/test/test_fragment_play.html => dom/media/test/test_fragment_play.html
rename : content/media/test/test_imagecapture.html => dom/media/test/test_imagecapture.html
rename : content/media/test/test_info_leak.html => dom/media/test/test_info_leak.html
rename : content/media/test/test_invalid_reject.html => dom/media/test/test_invalid_reject.html
rename : content/media/test/test_invalid_reject_play.html => dom/media/test/test_invalid_reject_play.html
rename : content/media/test/test_invalid_seek.html => dom/media/test/test_invalid_seek.html
rename : content/media/test/test_load.html => dom/media/test/test_load.html
rename : content/media/test/test_load_candidates.html => dom/media/test/test_load_candidates.html
rename : content/media/test/test_load_same_resource.html => dom/media/test/test_load_same_resource.html
rename : content/media/test/test_load_source.html => dom/media/test/test_load_source.html
rename : content/media/test/test_loop.html => dom/media/test/test_loop.html
rename : content/media/test/test_media_selection.html => dom/media/test/test_media_selection.html
rename : content/media/test/test_media_sniffer.html => dom/media/test/test_media_sniffer.html
rename : content/media/test/test_mediarecorder_avoid_recursion.html => dom/media/test/test_mediarecorder_avoid_recursion.html
rename : content/media/test/test_mediarecorder_creation.html => dom/media/test/test_mediarecorder_creation.html
rename : content/media/test/test_mediarecorder_creation_fail.html => dom/media/test/test_mediarecorder_creation_fail.html
rename : content/media/test/test_mediarecorder_getencodeddata.html => dom/media/test/test_mediarecorder_getencodeddata.html
rename : content/media/test/test_mediarecorder_record_4ch_audiocontext.html => dom/media/test/test_mediarecorder_record_4ch_audiocontext.html
rename : content/media/test/test_mediarecorder_record_audiocontext.html => dom/media/test/test_mediarecorder_record_audiocontext.html
rename : content/media/test/test_mediarecorder_record_audiocontext_mlk.html => dom/media/test/test_mediarecorder_record_audiocontext_mlk.html
rename : content/media/test/test_mediarecorder_record_audionode.html => dom/media/test/test_mediarecorder_record_audionode.html
rename : content/media/test/test_mediarecorder_record_getdata_afterstart.html => dom/media/test/test_mediarecorder_record_getdata_afterstart.html
rename : content/media/test/test_mediarecorder_record_gum_video_timeslice.html => dom/media/test/test_mediarecorder_record_gum_video_timeslice.html
rename : content/media/test/test_mediarecorder_record_immediate_stop.html => dom/media/test/test_mediarecorder_record_immediate_stop.html
rename : content/media/test/test_mediarecorder_record_no_timeslice.html => dom/media/test/test_mediarecorder_record_no_timeslice.html
rename : content/media/test/test_mediarecorder_record_nosrc.html => dom/media/test/test_mediarecorder_record_nosrc.html
rename : content/media/test/test_mediarecorder_record_session.html => dom/media/test/test_mediarecorder_record_session.html
rename : content/media/test/test_mediarecorder_record_startstopstart.html => dom/media/test/test_mediarecorder_record_startstopstart.html
rename : content/media/test/test_mediarecorder_record_stopms.html => dom/media/test/test_mediarecorder_record_stopms.html
rename : content/media/test/test_mediarecorder_record_timeslice.html => dom/media/test/test_mediarecorder_record_timeslice.html
rename : content/media/test/test_mediarecorder_reload_crash.html => dom/media/test/test_mediarecorder_reload_crash.html
rename : content/media/test/test_mediarecorder_state_transition.html => dom/media/test/test_mediarecorder_state_transition.html
rename : content/media/test/test_mediarecorder_unsupported_src.html => dom/media/test/test_mediarecorder_unsupported_src.html
rename : content/media/test/test_mediatrack_consuming_mediaresource.html => dom/media/test/test_mediatrack_consuming_mediaresource.html
rename : content/media/test/test_mediatrack_consuming_mediastream.html => dom/media/test/test_mediatrack_consuming_mediastream.html
rename : content/media/test/test_mediatrack_events.html => dom/media/test/test_mediatrack_events.html
rename : content/media/test/test_mediatrack_parsing_ogg.html => dom/media/test/test_mediatrack_parsing_ogg.html
rename : content/media/test/test_mediatrack_replay_from_end.html => dom/media/test/test_mediatrack_replay_from_end.html
rename : content/media/test/test_metadata.html => dom/media/test/test_metadata.html
rename : content/media/test/test_mixed_principals.html => dom/media/test/test_mixed_principals.html
rename : content/media/test/test_mozHasAudio.html => dom/media/test/test_mozHasAudio.html
rename : content/media/test/test_networkState.html => dom/media/test/test_networkState.html
rename : content/media/test/test_new_audio.html => dom/media/test/test_new_audio.html
rename : content/media/test/test_no_load_event.html => dom/media/test/test_no_load_event.html
rename : content/media/test/test_paused.html => dom/media/test/test_paused.html
rename : content/media/test/test_paused_after_ended.html => dom/media/test/test_paused_after_ended.html
rename : content/media/test/test_play_events.html => dom/media/test/test_play_events.html
rename : content/media/test/test_play_events_2.html => dom/media/test/test_play_events_2.html
rename : content/media/test/test_play_twice.html => dom/media/test/test_play_twice.html
rename : content/media/test/test_playback.html => dom/media/test/test_playback.html
rename : content/media/test/test_playback_errors.html => dom/media/test/test_playback_errors.html
rename : content/media/test/test_playback_rate.html => dom/media/test/test_playback_rate.html
rename : content/media/test/test_playback_rate_playpause.html => dom/media/test/test_playback_rate_playpause.html
rename : content/media/test/test_played.html => dom/media/test/test_played.html
rename : content/media/test/test_preload_actions.html => dom/media/test/test_preload_actions.html
rename : content/media/test/test_preload_attribute.html => dom/media/test/test_preload_attribute.html
rename : content/media/test/test_preload_suspend.html => dom/media/test/test_preload_suspend.html
rename : content/media/test/test_progress.html => dom/media/test/test_progress.html
rename : content/media/test/test_reactivate.html => dom/media/test/test_reactivate.html
rename : content/media/test/test_readyState.html => dom/media/test/test_readyState.html
rename : content/media/test/test_referer.html => dom/media/test/test_referer.html
rename : content/media/test/test_replay_metadata.html => dom/media/test/test_replay_metadata.html
rename : content/media/test/test_reset_events_async.html => dom/media/test/test_reset_events_async.html
rename : content/media/test/test_reset_src.html => dom/media/test/test_reset_src.html
rename : content/media/test/test_resume.html => dom/media/test/test_resume.html
rename : content/media/test/test_seek-1.html => dom/media/test/test_seek-1.html
rename : content/media/test/test_seek-10.html => dom/media/test/test_seek-10.html
rename : content/media/test/test_seek-11.html => dom/media/test/test_seek-11.html
rename : content/media/test/test_seek-12.html => dom/media/test/test_seek-12.html
rename : content/media/test/test_seek-13.html => dom/media/test/test_seek-13.html
rename : content/media/test/test_seek-2.html => dom/media/test/test_seek-2.html
rename : content/media/test/test_seek-3.html => dom/media/test/test_seek-3.html
rename : content/media/test/test_seek-4.html => dom/media/test/test_seek-4.html
rename : content/media/test/test_seek-5.html => dom/media/test/test_seek-5.html
rename : content/media/test/test_seek-6.html => dom/media/test/test_seek-6.html
rename : content/media/test/test_seek-7.html => dom/media/test/test_seek-7.html
rename : content/media/test/test_seek-8.html => dom/media/test/test_seek-8.html
rename : content/media/test/test_seek-9.html => dom/media/test/test_seek-9.html
rename : content/media/test/test_seekLies.html => dom/media/test/test_seekLies.html
rename : content/media/test/test_seek_out_of_range.html => dom/media/test/test_seek_out_of_range.html
rename : content/media/test/test_seekable1.html => dom/media/test/test_seekable1.html
rename : content/media/test/test_seekable2.html => dom/media/test/test_seekable2.html
rename : content/media/test/test_seekable3.html => dom/media/test/test_seekable3.html
rename : content/media/test/test_source.html => dom/media/test/test_source.html
rename : content/media/test/test_source_media.html => dom/media/test/test_source_media.html
rename : content/media/test/test_source_null.html => dom/media/test/test_source_null.html
rename : content/media/test/test_source_write.html => dom/media/test/test_source_write.html
rename : content/media/test/test_standalone.html => dom/media/test/test_standalone.html
rename : content/media/test/test_streams_autoplay.html => dom/media/test/test_streams_autoplay.html
rename : content/media/test/test_streams_element_capture.html => dom/media/test/test_streams_element_capture.html
rename : content/media/test/test_streams_element_capture_createObjectURL.html => dom/media/test/test_streams_element_capture_createObjectURL.html
rename : content/media/test/test_streams_element_capture_playback.html => dom/media/test/test_streams_element_capture_playback.html
rename : content/media/test/test_streams_element_capture_reset.html => dom/media/test/test_streams_element_capture_reset.html
rename : content/media/test/test_streams_gc.html => dom/media/test/test_streams_gc.html
rename : content/media/test/test_streams_srcObject.html => dom/media/test/test_streams_srcObject.html
rename : content/media/test/test_streams_tracks.html => dom/media/test/test_streams_tracks.html
rename : content/media/test/test_texttrack.html => dom/media/test/test_texttrack.html
rename : content/media/test/test_texttrack_chrome.html => dom/media/test/test_texttrack_chrome.html
rename : content/media/test/test_texttrackcue.html => dom/media/test/test_texttrackcue.html
rename : content/media/test/test_texttrackcue_chrome.html => dom/media/test/test_texttrackcue_chrome.html
rename : content/media/test/test_texttracklist.html => dom/media/test/test_texttracklist.html
rename : content/media/test/test_texttracklist_chrome.html => dom/media/test/test_texttracklist_chrome.html
rename : content/media/test/test_texttrackregion.html => dom/media/test/test_texttrackregion.html
rename : content/media/test/test_timeupdate_small_files.html => dom/media/test/test_timeupdate_small_files.html
rename : content/media/test/test_trackelementevent.html => dom/media/test/test_trackelementevent.html
rename : content/media/test/test_trackevent.html => dom/media/test/test_trackevent.html
rename : content/media/test/test_unseekable.html => dom/media/test/test_unseekable.html
rename : content/media/test/test_videoDocumentTitle.html => dom/media/test/test_videoDocumentTitle.html
rename : content/media/test/test_video_in_audio_element.html => dom/media/test/test_video_in_audio_element.html
rename : content/media/test/test_video_to_canvas.html => dom/media/test/test_video_to_canvas.html
rename : content/media/test/test_volume.html => dom/media/test/test_volume.html
rename : content/media/test/test_vttparser.html => dom/media/test/test_vttparser.html
rename : content/media/test/test_wav_ended1.html => dom/media/test/test_wav_ended1.html
rename : content/media/test/test_wav_ended2.html => dom/media/test/test_wav_ended2.html
rename : content/media/test/test_webvtt_disabled.html => dom/media/test/test_webvtt_disabled.html
rename : content/media/test/variable-channel.ogg => dom/media/test/variable-channel.ogg
rename : content/media/test/variable-channel.ogg^headers^ => dom/media/test/variable-channel.ogg^headers^
rename : content/media/test/variable-channel.opus => dom/media/test/variable-channel.opus
rename : content/media/test/variable-channel.opus^headers^ => dom/media/test/variable-channel.opus^headers^
rename : content/media/test/variable-preskip.opus => dom/media/test/variable-preskip.opus
rename : content/media/test/variable-preskip.opus^headers^ => dom/media/test/variable-preskip.opus^headers^
rename : content/media/test/variable-samplerate.ogg => dom/media/test/variable-samplerate.ogg
rename : content/media/test/variable-samplerate.ogg^headers^ => dom/media/test/variable-samplerate.ogg^headers^
rename : content/media/test/variable-samplerate.opus => dom/media/test/variable-samplerate.opus
rename : content/media/test/variable-samplerate.opus^headers^ => dom/media/test/variable-samplerate.opus^headers^
rename : content/media/test/vbr-head.mp3 => dom/media/test/vbr-head.mp3
rename : content/media/test/vbr-head.mp3^headers^ => dom/media/test/vbr-head.mp3^headers^
rename : content/media/test/vbr.mp3 => dom/media/test/vbr.mp3
rename : content/media/test/vbr.mp3^headers^ => dom/media/test/vbr.mp3^headers^
rename : content/media/test/video-overhang.ogg => dom/media/test/video-overhang.ogg
rename : content/media/test/video-overhang.ogg^headers^ => dom/media/test/video-overhang.ogg^headers^
rename : content/media/test/vp9.webm => dom/media/test/vp9.webm
rename : content/media/test/vp9.webm^headers^ => dom/media/test/vp9.webm^headers^
rename : content/media/test/vp9cake.webm => dom/media/test/vp9cake.webm
rename : content/media/test/vp9cake.webm^headers^ => dom/media/test/vp9cake.webm^headers^
rename : content/media/test/wave_metadata.wav => dom/media/test/wave_metadata.wav
rename : content/media/test/wave_metadata.wav^headers^ => dom/media/test/wave_metadata.wav^headers^
rename : content/media/test/wave_metadata_bad_len.wav => dom/media/test/wave_metadata_bad_len.wav
rename : content/media/test/wave_metadata_bad_len.wav^headers^ => dom/media/test/wave_metadata_bad_len.wav^headers^
rename : content/media/test/wave_metadata_bad_no_null.wav => dom/media/test/wave_metadata_bad_no_null.wav
rename : content/media/test/wave_metadata_bad_no_null.wav^headers^ => dom/media/test/wave_metadata_bad_no_null.wav^headers^
rename : content/media/test/wave_metadata_bad_utf8.wav => dom/media/test/wave_metadata_bad_utf8.wav
rename : content/media/test/wave_metadata_bad_utf8.wav^headers^ => dom/media/test/wave_metadata_bad_utf8.wav^headers^
rename : content/media/test/wave_metadata_unknown_tag.wav => dom/media/test/wave_metadata_unknown_tag.wav
rename : content/media/test/wave_metadata_unknown_tag.wav^headers^ => dom/media/test/wave_metadata_unknown_tag.wav^headers^
rename : content/media/test/wave_metadata_utf8.wav => dom/media/test/wave_metadata_utf8.wav
rename : content/media/test/wave_metadata_utf8.wav^headers^ => dom/media/test/wave_metadata_utf8.wav^headers^
rename : content/media/test/wavedata_s16.wav => dom/media/test/wavedata_s16.wav
rename : content/media/test/wavedata_s16.wav^headers^ => dom/media/test/wavedata_s16.wav^headers^
rename : content/media/test/wavedata_u8.wav => dom/media/test/wavedata_u8.wav
rename : content/media/test/wavedata_u8.wav^headers^ => dom/media/test/wavedata_u8.wav^headers^
rename : content/media/wave/WaveDecoder.cpp => dom/media/wave/WaveDecoder.cpp
rename : content/media/wave/WaveDecoder.h => dom/media/wave/WaveDecoder.h
rename : content/media/wave/WaveReader.cpp => dom/media/wave/WaveReader.cpp
rename : content/media/wave/WaveReader.h => dom/media/wave/WaveReader.h
rename : content/media/wave/moz.build => dom/media/wave/moz.build
rename : content/media/webaudio/AnalyserNode.cpp => dom/media/webaudio/AnalyserNode.cpp
rename : content/media/webaudio/AnalyserNode.h => dom/media/webaudio/AnalyserNode.h
rename : content/media/webaudio/AudioBuffer.cpp => dom/media/webaudio/AudioBuffer.cpp
rename : content/media/webaudio/AudioBuffer.h => dom/media/webaudio/AudioBuffer.h
rename : content/media/webaudio/AudioBufferSourceNode.cpp => dom/media/webaudio/AudioBufferSourceNode.cpp
rename : content/media/webaudio/AudioBufferSourceNode.h => dom/media/webaudio/AudioBufferSourceNode.h
rename : content/media/webaudio/AudioContext.cpp => dom/media/webaudio/AudioContext.cpp
rename : content/media/webaudio/AudioContext.h => dom/media/webaudio/AudioContext.h
rename : content/media/webaudio/AudioDestinationNode.cpp => dom/media/webaudio/AudioDestinationNode.cpp
rename : content/media/webaudio/AudioDestinationNode.h => dom/media/webaudio/AudioDestinationNode.h
rename : content/media/webaudio/AudioEventTimeline.h => dom/media/webaudio/AudioEventTimeline.h
rename : content/media/webaudio/AudioListener.cpp => dom/media/webaudio/AudioListener.cpp
rename : content/media/webaudio/AudioListener.h => dom/media/webaudio/AudioListener.h
rename : content/media/webaudio/AudioNode.cpp => dom/media/webaudio/AudioNode.cpp
rename : content/media/webaudio/AudioNode.h => dom/media/webaudio/AudioNode.h
rename : content/media/webaudio/AudioNodeEngine.cpp => dom/media/webaudio/AudioNodeEngine.cpp
rename : content/media/webaudio/AudioNodeEngine.h => dom/media/webaudio/AudioNodeEngine.h
rename : content/media/webaudio/AudioNodeEngineNEON.cpp => dom/media/webaudio/AudioNodeEngineNEON.cpp
rename : content/media/webaudio/AudioNodeEngineNEON.h => dom/media/webaudio/AudioNodeEngineNEON.h
rename : content/media/webaudio/AudioNodeExternalInputStream.cpp => dom/media/webaudio/AudioNodeExternalInputStream.cpp
rename : content/media/webaudio/AudioNodeExternalInputStream.h => dom/media/webaudio/AudioNodeExternalInputStream.h
rename : content/media/webaudio/AudioNodeStream.cpp => dom/media/webaudio/AudioNodeStream.cpp
rename : content/media/webaudio/AudioNodeStream.h => dom/media/webaudio/AudioNodeStream.h
rename : content/media/webaudio/AudioParam.cpp => dom/media/webaudio/AudioParam.cpp
rename : content/media/webaudio/AudioParam.h => dom/media/webaudio/AudioParam.h
rename : content/media/webaudio/AudioParamTimeline.h => dom/media/webaudio/AudioParamTimeline.h
rename : content/media/webaudio/AudioProcessingEvent.cpp => dom/media/webaudio/AudioProcessingEvent.cpp
rename : content/media/webaudio/AudioProcessingEvent.h => dom/media/webaudio/AudioProcessingEvent.h
rename : content/media/webaudio/BiquadFilterNode.cpp => dom/media/webaudio/BiquadFilterNode.cpp
rename : content/media/webaudio/BiquadFilterNode.h => dom/media/webaudio/BiquadFilterNode.h
rename : content/media/webaudio/BufferDecoder.cpp => dom/media/webaudio/BufferDecoder.cpp
rename : content/media/webaudio/BufferDecoder.h => dom/media/webaudio/BufferDecoder.h
rename : content/media/webaudio/ChannelMergerNode.cpp => dom/media/webaudio/ChannelMergerNode.cpp
rename : content/media/webaudio/ChannelMergerNode.h => dom/media/webaudio/ChannelMergerNode.h
rename : content/media/webaudio/ChannelSplitterNode.cpp => dom/media/webaudio/ChannelSplitterNode.cpp
rename : content/media/webaudio/ChannelSplitterNode.h => dom/media/webaudio/ChannelSplitterNode.h
rename : content/media/webaudio/ConvolverNode.cpp => dom/media/webaudio/ConvolverNode.cpp
rename : content/media/webaudio/ConvolverNode.h => dom/media/webaudio/ConvolverNode.h
rename : content/media/webaudio/DelayBuffer.cpp => dom/media/webaudio/DelayBuffer.cpp
rename : content/media/webaudio/DelayBuffer.h => dom/media/webaudio/DelayBuffer.h
rename : content/media/webaudio/DelayNode.cpp => dom/media/webaudio/DelayNode.cpp
rename : content/media/webaudio/DelayNode.h => dom/media/webaudio/DelayNode.h
rename : content/media/webaudio/DynamicsCompressorNode.cpp => dom/media/webaudio/DynamicsCompressorNode.cpp
rename : content/media/webaudio/DynamicsCompressorNode.h => dom/media/webaudio/DynamicsCompressorNode.h
rename : content/media/webaudio/FFTBlock.cpp => dom/media/webaudio/FFTBlock.cpp
rename : content/media/webaudio/FFTBlock.h => dom/media/webaudio/FFTBlock.h
rename : content/media/webaudio/GainNode.cpp => dom/media/webaudio/GainNode.cpp
rename : content/media/webaudio/GainNode.h => dom/media/webaudio/GainNode.h
rename : content/media/webaudio/MediaBufferDecoder.cpp => dom/media/webaudio/MediaBufferDecoder.cpp
rename : content/media/webaudio/MediaBufferDecoder.h => dom/media/webaudio/MediaBufferDecoder.h
rename : content/media/webaudio/MediaElementAudioSourceNode.cpp => dom/media/webaudio/MediaElementAudioSourceNode.cpp
rename : content/media/webaudio/MediaElementAudioSourceNode.h => dom/media/webaudio/MediaElementAudioSourceNode.h
rename : content/media/webaudio/MediaStreamAudioDestinationNode.cpp => dom/media/webaudio/MediaStreamAudioDestinationNode.cpp
rename : content/media/webaudio/MediaStreamAudioDestinationNode.h => dom/media/webaudio/MediaStreamAudioDestinationNode.h
rename : content/media/webaudio/MediaStreamAudioSourceNode.cpp => dom/media/webaudio/MediaStreamAudioSourceNode.cpp
rename : content/media/webaudio/MediaStreamAudioSourceNode.h => dom/media/webaudio/MediaStreamAudioSourceNode.h
rename : content/media/webaudio/OfflineAudioCompletionEvent.cpp => dom/media/webaudio/OfflineAudioCompletionEvent.cpp
rename : content/media/webaudio/OfflineAudioCompletionEvent.h => dom/media/webaudio/OfflineAudioCompletionEvent.h
rename : content/media/webaudio/OscillatorNode.cpp => dom/media/webaudio/OscillatorNode.cpp
rename : content/media/webaudio/OscillatorNode.h => dom/media/webaudio/OscillatorNode.h
rename : content/media/webaudio/PannerNode.cpp => dom/media/webaudio/PannerNode.cpp
rename : content/media/webaudio/PannerNode.h => dom/media/webaudio/PannerNode.h
rename : content/media/webaudio/PeriodicWave.cpp => dom/media/webaudio/PeriodicWave.cpp
rename : content/media/webaudio/PeriodicWave.h => dom/media/webaudio/PeriodicWave.h
rename : content/media/webaudio/PlayingRefChangeHandler.h => dom/media/webaudio/PlayingRefChangeHandler.h
rename : content/media/webaudio/ReportDecodeResultTask.h => dom/media/webaudio/ReportDecodeResultTask.h
rename : content/media/webaudio/ScriptProcessorNode.cpp => dom/media/webaudio/ScriptProcessorNode.cpp
rename : content/media/webaudio/ScriptProcessorNode.h => dom/media/webaudio/ScriptProcessorNode.h
rename : content/media/webaudio/ThreeDPoint.cpp => dom/media/webaudio/ThreeDPoint.cpp
rename : content/media/webaudio/ThreeDPoint.h => dom/media/webaudio/ThreeDPoint.h
rename : content/media/webaudio/WaveShaperNode.cpp => dom/media/webaudio/WaveShaperNode.cpp
rename : content/media/webaudio/WaveShaperNode.h => dom/media/webaudio/WaveShaperNode.h
rename : content/media/webaudio/WebAudioUtils.cpp => dom/media/webaudio/WebAudioUtils.cpp
rename : content/media/webaudio/WebAudioUtils.h => dom/media/webaudio/WebAudioUtils.h
rename : content/media/webaudio/blink/Biquad.cpp => dom/media/webaudio/blink/Biquad.cpp
rename : content/media/webaudio/blink/Biquad.h => dom/media/webaudio/blink/Biquad.h
rename : content/media/webaudio/blink/DenormalDisabler.h => dom/media/webaudio/blink/DenormalDisabler.h
rename : content/media/webaudio/blink/DirectConvolver.cpp => dom/media/webaudio/blink/DirectConvolver.cpp
rename : content/media/webaudio/blink/DirectConvolver.h => dom/media/webaudio/blink/DirectConvolver.h
rename : content/media/webaudio/blink/DynamicsCompressor.cpp => dom/media/webaudio/blink/DynamicsCompressor.cpp
rename : content/media/webaudio/blink/DynamicsCompressor.h => dom/media/webaudio/blink/DynamicsCompressor.h
rename : content/media/webaudio/blink/DynamicsCompressorKernel.cpp => dom/media/webaudio/blink/DynamicsCompressorKernel.cpp
rename : content/media/webaudio/blink/DynamicsCompressorKernel.h => dom/media/webaudio/blink/DynamicsCompressorKernel.h
rename : content/media/webaudio/blink/FFTConvolver.cpp => dom/media/webaudio/blink/FFTConvolver.cpp
rename : content/media/webaudio/blink/FFTConvolver.h => dom/media/webaudio/blink/FFTConvolver.h
rename : content/media/webaudio/blink/HRTFDatabase.cpp => dom/media/webaudio/blink/HRTFDatabase.cpp
rename : content/media/webaudio/blink/HRTFDatabase.h => dom/media/webaudio/blink/HRTFDatabase.h
rename : content/media/webaudio/blink/HRTFDatabaseLoader.cpp => dom/media/webaudio/blink/HRTFDatabaseLoader.cpp
rename : content/media/webaudio/blink/HRTFDatabaseLoader.h => dom/media/webaudio/blink/HRTFDatabaseLoader.h
rename : content/media/webaudio/blink/HRTFElevation.cpp => dom/media/webaudio/blink/HRTFElevation.cpp
rename : content/media/webaudio/blink/HRTFElevation.h => dom/media/webaudio/blink/HRTFElevation.h
rename : content/media/webaudio/blink/HRTFKernel.cpp => dom/media/webaudio/blink/HRTFKernel.cpp
rename : content/media/webaudio/blink/HRTFKernel.h => dom/media/webaudio/blink/HRTFKernel.h
rename : content/media/webaudio/blink/HRTFPanner.cpp => dom/media/webaudio/blink/HRTFPanner.cpp
rename : content/media/webaudio/blink/HRTFPanner.h => dom/media/webaudio/blink/HRTFPanner.h
rename : content/media/webaudio/blink/IRC_Composite_C_R0195-incl.cpp => dom/media/webaudio/blink/IRC_Composite_C_R0195-incl.cpp
rename : content/media/webaudio/blink/PeriodicWave.cpp => dom/media/webaudio/blink/PeriodicWave.cpp
rename : content/media/webaudio/blink/PeriodicWave.h => dom/media/webaudio/blink/PeriodicWave.h
rename : content/media/webaudio/blink/README => dom/media/webaudio/blink/README
rename : content/media/webaudio/blink/Reverb.cpp => dom/media/webaudio/blink/Reverb.cpp
rename : content/media/webaudio/blink/Reverb.h => dom/media/webaudio/blink/Reverb.h
rename : content/media/webaudio/blink/ReverbAccumulationBuffer.cpp => dom/media/webaudio/blink/ReverbAccumulationBuffer.cpp
rename : content/media/webaudio/blink/ReverbAccumulationBuffer.h => dom/media/webaudio/blink/ReverbAccumulationBuffer.h
rename : content/media/webaudio/blink/ReverbConvolver.cpp => dom/media/webaudio/blink/ReverbConvolver.cpp
rename : content/media/webaudio/blink/ReverbConvolver.h => dom/media/webaudio/blink/ReverbConvolver.h
rename : content/media/webaudio/blink/ReverbConvolverStage.cpp => dom/media/webaudio/blink/ReverbConvolverStage.cpp
rename : content/media/webaudio/blink/ReverbConvolverStage.h => dom/media/webaudio/blink/ReverbConvolverStage.h
rename : content/media/webaudio/blink/ReverbInputBuffer.cpp => dom/media/webaudio/blink/ReverbInputBuffer.cpp
rename : content/media/webaudio/blink/ReverbInputBuffer.h => dom/media/webaudio/blink/ReverbInputBuffer.h
rename : content/media/webaudio/blink/ZeroPole.cpp => dom/media/webaudio/blink/ZeroPole.cpp
rename : content/media/webaudio/blink/ZeroPole.h => dom/media/webaudio/blink/ZeroPole.h
rename : content/media/webaudio/blink/moz.build => dom/media/webaudio/blink/moz.build
rename : content/media/webaudio/compiledtest/TestAudioEventTimeline.cpp => dom/media/webaudio/compiledtest/TestAudioEventTimeline.cpp
rename : content/media/webaudio/compiledtest/moz.build => dom/media/webaudio/compiledtest/moz.build
rename : content/media/webaudio/moz.build => dom/media/webaudio/moz.build
rename : content/media/webaudio/test/audio-expected.wav => dom/media/webaudio/test/audio-expected.wav
rename : content/media/webaudio/test/audio-mono-expected-2.wav => dom/media/webaudio/test/audio-mono-expected-2.wav
rename : content/media/webaudio/test/audio-mono-expected.wav => dom/media/webaudio/test/audio-mono-expected.wav
rename : content/media/webaudio/test/audio-quad.wav => dom/media/webaudio/test/audio-quad.wav
rename : content/media/webaudio/test/audio.ogv => dom/media/webaudio/test/audio.ogv
rename : content/media/webaudio/test/audioBufferSourceNodeNeutered_worker.js => dom/media/webaudio/test/audioBufferSourceNodeNeutered_worker.js
rename : content/media/webaudio/test/blink/README => dom/media/webaudio/test/blink/README
rename : content/media/webaudio/test/blink/audio-testing.js => dom/media/webaudio/test/blink/audio-testing.js
rename : content/media/webaudio/test/blink/convolution-testing.js => dom/media/webaudio/test/blink/convolution-testing.js
rename : content/media/webaudio/test/blink/mochitest.ini => dom/media/webaudio/test/blink/mochitest.ini
rename : content/media/webaudio/test/blink/panner-model-testing.js => dom/media/webaudio/test/blink/panner-model-testing.js
rename : content/media/webaudio/test/browser.ini => dom/media/webaudio/test/browser.ini
rename : content/media/webaudio/test/browser_mozAudioChannel.html => dom/media/webaudio/test/browser_mozAudioChannel.html
rename : content/media/webaudio/test/browser_mozAudioChannel.js => dom/media/webaudio/test/browser_mozAudioChannel.js
rename : content/media/webaudio/test/browser_mozAudioChannel_muted.html => dom/media/webaudio/test/browser_mozAudioChannel_muted.html
rename : content/media/webaudio/test/browser_mozAudioChannel_muted.js => dom/media/webaudio/test/browser_mozAudioChannel_muted.js
rename : content/media/webaudio/test/chrome.ini => dom/media/webaudio/test/chrome.ini
rename : content/media/webaudio/test/invalid.txt => dom/media/webaudio/test/invalid.txt
rename : content/media/webaudio/test/layouttest-glue.js => dom/media/webaudio/test/layouttest-glue.js
rename : content/media/webaudio/test/mochitest.ini => dom/media/webaudio/test/mochitest.ini
rename : content/media/webaudio/test/noaudio.webm => dom/media/webaudio/test/noaudio.webm
rename : content/media/webaudio/test/small-shot-expected.wav => dom/media/webaudio/test/small-shot-expected.wav
rename : content/media/webaudio/test/small-shot-mono-expected.wav => dom/media/webaudio/test/small-shot-mono-expected.wav
rename : content/media/webaudio/test/small-shot.mp3 => dom/media/webaudio/test/small-shot.mp3
rename : content/media/webaudio/test/small-shot.ogg => dom/media/webaudio/test/small-shot.ogg
rename : content/media/webaudio/test/test_AudioBuffer.html => dom/media/webaudio/test/test_AudioBuffer.html
rename : content/media/webaudio/test/test_AudioContext.html => dom/media/webaudio/test/test_AudioContext.html
rename : content/media/webaudio/test/test_AudioListener.html => dom/media/webaudio/test/test_AudioListener.html
rename : content/media/webaudio/test/test_AudioNodeDevtoolsAPI.html => dom/media/webaudio/test/test_AudioNodeDevtoolsAPI.html
rename : content/media/webaudio/test/test_OfflineAudioContext.html => dom/media/webaudio/test/test_OfflineAudioContext.html
rename : content/media/webaudio/test/test_analyserNode.html => dom/media/webaudio/test/test_analyserNode.html
rename : content/media/webaudio/test/test_analyserNodeOutput.html => dom/media/webaudio/test/test_analyserNodeOutput.html
rename : content/media/webaudio/test/test_analyserNodePassThrough.html => dom/media/webaudio/test/test_analyserNodePassThrough.html
rename : content/media/webaudio/test/test_audioBufferSourceNode.html => dom/media/webaudio/test/test_audioBufferSourceNode.html
rename : content/media/webaudio/test/test_audioBufferSourceNodeEnded.html => dom/media/webaudio/test/test_audioBufferSourceNodeEnded.html
rename : content/media/webaudio/test/test_audioBufferSourceNodeLazyLoopParam.html => dom/media/webaudio/test/test_audioBufferSourceNodeLazyLoopParam.html
rename : content/media/webaudio/test/test_audioBufferSourceNodeLoop.html => dom/media/webaudio/test/test_audioBufferSourceNodeLoop.html
rename : content/media/webaudio/test/test_audioBufferSourceNodeLoopStartEnd.html => dom/media/webaudio/test/test_audioBufferSourceNodeLoopStartEnd.html
rename : content/media/webaudio/test/test_audioBufferSourceNodeLoopStartEndSame.html => dom/media/webaudio/test/test_audioBufferSourceNodeLoopStartEndSame.html
rename : content/media/webaudio/test/test_audioBufferSourceNodeNeutered.html => dom/media/webaudio/test/test_audioBufferSourceNodeNeutered.html
rename : content/media/webaudio/test/test_audioBufferSourceNodeNoStart.html => dom/media/webaudio/test/test_audioBufferSourceNodeNoStart.html
rename : content/media/webaudio/test/test_audioBufferSourceNodeNullBuffer.html => dom/media/webaudio/test/test_audioBufferSourceNodeNullBuffer.html
rename : content/media/webaudio/test/test_audioBufferSourceNodeOffset.html => dom/media/webaudio/test/test_audioBufferSourceNodeOffset.html
rename : content/media/webaudio/test/test_audioBufferSourceNodePassThrough.html => dom/media/webaudio/test/test_audioBufferSourceNodePassThrough.html
rename : content/media/webaudio/test/test_audioDestinationNode.html => dom/media/webaudio/test/test_audioDestinationNode.html
rename : content/media/webaudio/test/test_audioParamExponentialRamp.html => dom/media/webaudio/test/test_audioParamExponentialRamp.html
rename : content/media/webaudio/test/test_audioParamGain.html => dom/media/webaudio/test/test_audioParamGain.html
rename : content/media/webaudio/test/test_audioParamLinearRamp.html => dom/media/webaudio/test/test_audioParamLinearRamp.html
rename : content/media/webaudio/test/test_audioParamSetCurveAtTime.html => dom/media/webaudio/test/test_audioParamSetCurveAtTime.html
rename : content/media/webaudio/test/test_audioParamSetCurveAtTimeZeroDuration.html => dom/media/webaudio/test/test_audioParamSetCurveAtTimeZeroDuration.html
rename : content/media/webaudio/test/test_audioParamSetTargetAtTime.html => dom/media/webaudio/test/test_audioParamSetTargetAtTime.html
rename : content/media/webaudio/test/test_audioParamSetValueAtTime.html => dom/media/webaudio/test/test_audioParamSetValueAtTime.html
rename : content/media/webaudio/test/test_audioParamTimelineDestinationOffset.html => dom/media/webaudio/test/test_audioParamTimelineDestinationOffset.html
rename : content/media/webaudio/test/test_badConnect.html => dom/media/webaudio/test/test_badConnect.html
rename : content/media/webaudio/test/test_biquadFilterNode.html => dom/media/webaudio/test/test_biquadFilterNode.html
rename : content/media/webaudio/test/test_biquadFilterNodePassThrough.html => dom/media/webaudio/test/test_biquadFilterNodePassThrough.html
rename : content/media/webaudio/test/test_biquadFilterNodeWithGain.html => dom/media/webaudio/test/test_biquadFilterNodeWithGain.html
rename : content/media/webaudio/test/test_bug1056032.html => dom/media/webaudio/test/test_bug1056032.html
rename : content/media/webaudio/test/test_bug808374.html => dom/media/webaudio/test/test_bug808374.html
rename : content/media/webaudio/test/test_bug827541.html => dom/media/webaudio/test/test_bug827541.html
rename : content/media/webaudio/test/test_bug839753.html => dom/media/webaudio/test/test_bug839753.html
rename : content/media/webaudio/test/test_bug845960.html => dom/media/webaudio/test/test_bug845960.html
rename : content/media/webaudio/test/test_bug856771.html => dom/media/webaudio/test/test_bug856771.html
rename : content/media/webaudio/test/test_bug866570.html => dom/media/webaudio/test/test_bug866570.html
rename : content/media/webaudio/test/test_bug866737.html => dom/media/webaudio/test/test_bug866737.html
rename : content/media/webaudio/test/test_bug867089.html => dom/media/webaudio/test/test_bug867089.html
rename : content/media/webaudio/test/test_bug867104.html => dom/media/webaudio/test/test_bug867104.html
rename : content/media/webaudio/test/test_bug867174.html => dom/media/webaudio/test/test_bug867174.html
rename : content/media/webaudio/test/test_bug867203.html => dom/media/webaudio/test/test_bug867203.html
rename : content/media/webaudio/test/test_bug875221.html => dom/media/webaudio/test/test_bug875221.html
rename : content/media/webaudio/test/test_bug875402.html => dom/media/webaudio/test/test_bug875402.html
rename : content/media/webaudio/test/test_bug894150.html => dom/media/webaudio/test/test_bug894150.html
rename : content/media/webaudio/test/test_bug956489.html => dom/media/webaudio/test/test_bug956489.html
rename : content/media/webaudio/test/test_bug964376.html => dom/media/webaudio/test/test_bug964376.html
rename : content/media/webaudio/test/test_bug972678.html => dom/media/webaudio/test/test_bug972678.html
rename : content/media/webaudio/test/test_channelMergerNode.html => dom/media/webaudio/test/test_channelMergerNode.html
rename : content/media/webaudio/test/test_channelMergerNodeWithVolume.html => dom/media/webaudio/test/test_channelMergerNodeWithVolume.html
rename : content/media/webaudio/test/test_channelSplitterNode.html => dom/media/webaudio/test/test_channelSplitterNode.html
rename : content/media/webaudio/test/test_channelSplitterNodeWithVolume.html => dom/media/webaudio/test/test_channelSplitterNodeWithVolume.html
rename : content/media/webaudio/test/test_convolverNode.html => dom/media/webaudio/test/test_convolverNode.html
rename : content/media/webaudio/test/test_convolverNodeChannelCount.html => dom/media/webaudio/test/test_convolverNodeChannelCount.html
rename : content/media/webaudio/test/test_convolverNodePassThrough.html => dom/media/webaudio/test/test_convolverNodePassThrough.html
rename : content/media/webaudio/test/test_convolverNodeWithGain.html => dom/media/webaudio/test/test_convolverNodeWithGain.html
rename : content/media/webaudio/test/test_convolverNode_mono_mono.html => dom/media/webaudio/test/test_convolverNode_mono_mono.html
rename : content/media/webaudio/test/test_currentTime.html => dom/media/webaudio/test/test_currentTime.html
rename : content/media/webaudio/test/test_decodeMultichannel.html => dom/media/webaudio/test/test_decodeMultichannel.html
rename : content/media/webaudio/test/test_delayNode.html => dom/media/webaudio/test/test_delayNode.html
rename : content/media/webaudio/test/test_delayNodeAtMax.html => dom/media/webaudio/test/test_delayNodeAtMax.html
rename : content/media/webaudio/test/test_delayNodeChannelChanges.html => dom/media/webaudio/test/test_delayNodeChannelChanges.html
rename : content/media/webaudio/test/test_delayNodeCycles.html => dom/media/webaudio/test/test_delayNodeCycles.html
rename : content/media/webaudio/test/test_delayNodePassThrough.html => dom/media/webaudio/test/test_delayNodePassThrough.html
rename : content/media/webaudio/test/test_delayNodeSmallMaxDelay.html => dom/media/webaudio/test/test_delayNodeSmallMaxDelay.html
rename : content/media/webaudio/test/test_delayNodeTailIncrease.html => dom/media/webaudio/test/test_delayNodeTailIncrease.html
rename : content/media/webaudio/test/test_delayNodeTailWithDisconnect.html => dom/media/webaudio/test/test_delayNodeTailWithDisconnect.html
rename : content/media/webaudio/test/test_delayNodeTailWithGain.html => dom/media/webaudio/test/test_delayNodeTailWithGain.html
rename : content/media/webaudio/test/test_delayNodeTailWithReconnect.html => dom/media/webaudio/test/test_delayNodeTailWithReconnect.html
rename : content/media/webaudio/test/test_delayNodeWithGain.html => dom/media/webaudio/test/test_delayNodeWithGain.html
rename : content/media/webaudio/test/test_dynamicsCompressorNode.html => dom/media/webaudio/test/test_dynamicsCompressorNode.html
rename : content/media/webaudio/test/test_dynamicsCompressorNodePassThrough.html => dom/media/webaudio/test/test_dynamicsCompressorNodePassThrough.html
rename : content/media/webaudio/test/test_gainNode.html => dom/media/webaudio/test/test_gainNode.html
rename : content/media/webaudio/test/test_gainNodeInLoop.html => dom/media/webaudio/test/test_gainNodeInLoop.html
rename : content/media/webaudio/test/test_gainNodePassThrough.html => dom/media/webaudio/test/test_gainNodePassThrough.html
rename : content/media/webaudio/test/test_maxChannelCount.html => dom/media/webaudio/test/test_maxChannelCount.html
rename : content/media/webaudio/test/test_mediaDecoding.html => dom/media/webaudio/test/test_mediaDecoding.html
rename : content/media/webaudio/test/test_mediaElementAudioSourceNode.html => dom/media/webaudio/test/test_mediaElementAudioSourceNode.html
rename : content/media/webaudio/test/test_mediaElementAudioSourceNodePassThrough.html => dom/media/webaudio/test/test_mediaElementAudioSourceNodePassThrough.html
rename : content/media/webaudio/test/test_mediaStreamAudioDestinationNode.html => dom/media/webaudio/test/test_mediaStreamAudioDestinationNode.html
rename : content/media/webaudio/test/test_mediaStreamAudioSourceNode.html => dom/media/webaudio/test/test_mediaStreamAudioSourceNode.html
rename : content/media/webaudio/test/test_mediaStreamAudioSourceNodeCrossOrigin.html => dom/media/webaudio/test/test_mediaStreamAudioSourceNodeCrossOrigin.html
rename : content/media/webaudio/test/test_mediaStreamAudioSourceNodePassThrough.html => dom/media/webaudio/test/test_mediaStreamAudioSourceNodePassThrough.html
rename : content/media/webaudio/test/test_mediaStreamAudioSourceNodeResampling.html => dom/media/webaudio/test/test_mediaStreamAudioSourceNodeResampling.html
rename : content/media/webaudio/test/test_mixingRules.html => dom/media/webaudio/test/test_mixingRules.html
rename : content/media/webaudio/test/test_mozaudiochannel.html => dom/media/webaudio/test/test_mozaudiochannel.html
rename : content/media/webaudio/test/test_nodeToParamConnection.html => dom/media/webaudio/test/test_nodeToParamConnection.html
rename : content/media/webaudio/test/test_offlineDestinationChannelCountLess.html => dom/media/webaudio/test/test_offlineDestinationChannelCountLess.html
rename : content/media/webaudio/test/test_offlineDestinationChannelCountMore.html => dom/media/webaudio/test/test_offlineDestinationChannelCountMore.html
rename : content/media/webaudio/test/test_oscillatorNode.html => dom/media/webaudio/test/test_oscillatorNode.html
rename : content/media/webaudio/test/test_oscillatorNode2.html => dom/media/webaudio/test/test_oscillatorNode2.html
rename : content/media/webaudio/test/test_oscillatorNodePassThrough.html => dom/media/webaudio/test/test_oscillatorNodePassThrough.html
rename : content/media/webaudio/test/test_oscillatorNodeStart.html => dom/media/webaudio/test/test_oscillatorNodeStart.html
rename : content/media/webaudio/test/test_oscillatorTypeChange.html => dom/media/webaudio/test/test_oscillatorTypeChange.html
rename : content/media/webaudio/test/test_pannerNode.html => dom/media/webaudio/test/test_pannerNode.html
rename : content/media/webaudio/test/test_pannerNodeAbove.html => dom/media/webaudio/test/test_pannerNodeAbove.html
rename : content/media/webaudio/test/test_pannerNodeChannelCount.html => dom/media/webaudio/test/test_pannerNodeChannelCount.html
rename : content/media/webaudio/test/test_pannerNodeHRTFSymmetry.html => dom/media/webaudio/test/test_pannerNodeHRTFSymmetry.html
rename : content/media/webaudio/test/test_pannerNodePassThrough.html => dom/media/webaudio/test/test_pannerNodePassThrough.html
rename : content/media/webaudio/test/test_pannerNodeTail.html => dom/media/webaudio/test/test_pannerNodeTail.html
rename : content/media/webaudio/test/test_pannerNode_equalPower.html => dom/media/webaudio/test/test_pannerNode_equalPower.html
rename : content/media/webaudio/test/test_periodicWave.html => dom/media/webaudio/test/test_periodicWave.html
rename : content/media/webaudio/test/test_scriptProcessorNode.html => dom/media/webaudio/test/test_scriptProcessorNode.html
rename : content/media/webaudio/test/test_scriptProcessorNodeChannelCount.html => dom/media/webaudio/test/test_scriptProcessorNodeChannelCount.html
rename : content/media/webaudio/test/test_scriptProcessorNodeNotConnected.html => dom/media/webaudio/test/test_scriptProcessorNodeNotConnected.html
rename : content/media/webaudio/test/test_scriptProcessorNodePassThrough.html => dom/media/webaudio/test/test_scriptProcessorNodePassThrough.html
rename : content/media/webaudio/test/test_scriptProcessorNodeZeroInputOutput.html => dom/media/webaudio/test/test_scriptProcessorNodeZeroInputOutput.html
rename : content/media/webaudio/test/test_scriptProcessorNode_playbackTime1.html => dom/media/webaudio/test/test_scriptProcessorNode_playbackTime1.html
rename : content/media/webaudio/test/test_singleSourceDest.html => dom/media/webaudio/test/test_singleSourceDest.html
rename : content/media/webaudio/test/test_stereoPanningWithGain.html => dom/media/webaudio/test/test_stereoPanningWithGain.html
rename : content/media/webaudio/test/test_waveDecoder.html => dom/media/webaudio/test/test_waveDecoder.html
rename : content/media/webaudio/test/test_waveShaper.html => dom/media/webaudio/test/test_waveShaper.html
rename : content/media/webaudio/test/test_waveShaperNoCurve.html => dom/media/webaudio/test/test_waveShaperNoCurve.html
rename : content/media/webaudio/test/test_waveShaperPassThrough.html => dom/media/webaudio/test/test_waveShaperPassThrough.html
rename : content/media/webaudio/test/test_waveShaperZeroLengthCurve.html => dom/media/webaudio/test/test_waveShaperZeroLengthCurve.html
rename : content/media/webaudio/test/ting-44.1k-1ch.ogg => dom/media/webaudio/test/ting-44.1k-1ch.ogg
rename : content/media/webaudio/test/ting-44.1k-1ch.wav => dom/media/webaudio/test/ting-44.1k-1ch.wav
rename : content/media/webaudio/test/ting-44.1k-2ch.ogg => dom/media/webaudio/test/ting-44.1k-2ch.ogg
rename : content/media/webaudio/test/ting-44.1k-2ch.wav => dom/media/webaudio/test/ting-44.1k-2ch.wav
rename : content/media/webaudio/test/ting-48k-1ch.ogg => dom/media/webaudio/test/ting-48k-1ch.ogg
rename : content/media/webaudio/test/ting-48k-1ch.wav => dom/media/webaudio/test/ting-48k-1ch.wav
rename : content/media/webaudio/test/ting-48k-2ch.ogg => dom/media/webaudio/test/ting-48k-2ch.ogg
rename : content/media/webaudio/test/ting-48k-2ch.wav => dom/media/webaudio/test/ting-48k-2ch.wav
rename : content/media/webaudio/test/ting-dualchannel44.1.wav => dom/media/webaudio/test/ting-dualchannel44.1.wav
rename : content/media/webaudio/test/ting-dualchannel48.wav => dom/media/webaudio/test/ting-dualchannel48.wav
rename : content/media/webaudio/test/webaudio.js => dom/media/webaudio/test/webaudio.js
rename : content/media/webm/EbmlComposer.cpp => dom/media/webm/EbmlComposer.cpp
rename : content/media/webm/EbmlComposer.h => dom/media/webm/EbmlComposer.h
rename : content/media/webm/WebMBufferedParser.cpp => dom/media/webm/WebMBufferedParser.cpp
rename : content/media/webm/WebMBufferedParser.h => dom/media/webm/WebMBufferedParser.h
rename : content/media/webm/WebMDecoder.cpp => dom/media/webm/WebMDecoder.cpp
rename : content/media/webm/WebMDecoder.h => dom/media/webm/WebMDecoder.h
rename : content/media/webm/WebMReader.cpp => dom/media/webm/WebMReader.cpp
rename : content/media/webm/WebMReader.h => dom/media/webm/WebMReader.h
rename : content/media/webm/WebMWriter.cpp => dom/media/webm/WebMWriter.cpp
rename : content/media/webm/WebMWriter.h => dom/media/webm/WebMWriter.h
rename : content/media/webm/moz.build => dom/media/webm/moz.build
rename : content/media/webrtc/AudioOutputObserver.h => dom/media/webrtc/AudioOutputObserver.h
rename : content/media/webrtc/MediaEngine.h => dom/media/webrtc/MediaEngine.h
rename : content/media/webrtc/MediaEngineCameraVideoSource.cpp => dom/media/webrtc/MediaEngineCameraVideoSource.cpp
rename : content/media/webrtc/MediaEngineCameraVideoSource.h => dom/media/webrtc/MediaEngineCameraVideoSource.h
rename : content/media/webrtc/MediaEngineDefault.cpp => dom/media/webrtc/MediaEngineDefault.cpp
rename : content/media/webrtc/MediaEngineDefault.h => dom/media/webrtc/MediaEngineDefault.h
rename : content/media/webrtc/MediaEngineGonkVideoSource.cpp => dom/media/webrtc/MediaEngineGonkVideoSource.cpp
rename : content/media/webrtc/MediaEngineGonkVideoSource.h => dom/media/webrtc/MediaEngineGonkVideoSource.h
rename : content/media/webrtc/MediaEngineTabVideoSource.cpp => dom/media/webrtc/MediaEngineTabVideoSource.cpp
rename : content/media/webrtc/MediaEngineTabVideoSource.h => dom/media/webrtc/MediaEngineTabVideoSource.h
rename : content/media/webrtc/MediaEngineWebRTC.cpp => dom/media/webrtc/MediaEngineWebRTC.cpp
rename : content/media/webrtc/MediaEngineWebRTC.h => dom/media/webrtc/MediaEngineWebRTC.h
rename : content/media/webrtc/MediaEngineWebRTCAudio.cpp => dom/media/webrtc/MediaEngineWebRTCAudio.cpp
rename : content/media/webrtc/MediaEngineWebRTCVideo.cpp => dom/media/webrtc/MediaEngineWebRTCVideo.cpp
rename : content/media/webrtc/MediaTrackConstraints.h => dom/media/webrtc/MediaTrackConstraints.h
rename : content/media/webrtc/PeerIdentity.cpp => dom/media/webrtc/PeerIdentity.cpp
rename : content/media/webrtc/PeerIdentity.h => dom/media/webrtc/PeerIdentity.h
rename : content/media/webrtc/moz.build => dom/media/webrtc/moz.build
rename : content/media/webrtc/nsITabSource.idl => dom/media/webrtc/nsITabSource.idl
rename : content/media/webspeech/moz.build => dom/media/webspeech/moz.build
rename : content/media/webspeech/recognition/SpeechGrammar.cpp => dom/media/webspeech/recognition/SpeechGrammar.cpp
rename : content/media/webspeech/recognition/SpeechGrammar.h => dom/media/webspeech/recognition/SpeechGrammar.h
rename : content/media/webspeech/recognition/SpeechGrammarList.cpp => dom/media/webspeech/recognition/SpeechGrammarList.cpp
rename : content/media/webspeech/recognition/SpeechGrammarList.h => dom/media/webspeech/recognition/SpeechGrammarList.h
rename : content/media/webspeech/recognition/SpeechRecognition.cpp => dom/media/webspeech/recognition/SpeechRecognition.cpp
rename : content/media/webspeech/recognition/SpeechRecognition.h => dom/media/webspeech/recognition/SpeechRecognition.h
rename : content/media/webspeech/recognition/SpeechRecognitionAlternative.cpp => dom/media/webspeech/recognition/SpeechRecognitionAlternative.cpp
rename : content/media/webspeech/recognition/SpeechRecognitionAlternative.h => dom/media/webspeech/recognition/SpeechRecognitionAlternative.h
rename : content/media/webspeech/recognition/SpeechRecognitionResult.cpp => dom/media/webspeech/recognition/SpeechRecognitionResult.cpp
rename : content/media/webspeech/recognition/SpeechRecognitionResult.h => dom/media/webspeech/recognition/SpeechRecognitionResult.h
rename : content/media/webspeech/recognition/SpeechRecognitionResultList.cpp => dom/media/webspeech/recognition/SpeechRecognitionResultList.cpp
rename : content/media/webspeech/recognition/SpeechRecognitionResultList.h => dom/media/webspeech/recognition/SpeechRecognitionResultList.h
rename : content/media/webspeech/recognition/SpeechStreamListener.cpp => dom/media/webspeech/recognition/SpeechStreamListener.cpp
rename : content/media/webspeech/recognition/SpeechStreamListener.h => dom/media/webspeech/recognition/SpeechStreamListener.h
rename : content/media/webspeech/recognition/endpointer.cc => dom/media/webspeech/recognition/endpointer.cc
rename : content/media/webspeech/recognition/endpointer.h => dom/media/webspeech/recognition/endpointer.h
rename : content/media/webspeech/recognition/energy_endpointer.cc => dom/media/webspeech/recognition/energy_endpointer.cc
rename : content/media/webspeech/recognition/energy_endpointer.h => dom/media/webspeech/recognition/energy_endpointer.h
rename : content/media/webspeech/recognition/energy_endpointer_params.cc => dom/media/webspeech/recognition/energy_endpointer_params.cc
rename : content/media/webspeech/recognition/energy_endpointer_params.h => dom/media/webspeech/recognition/energy_endpointer_params.h
rename : content/media/webspeech/recognition/moz.build => dom/media/webspeech/recognition/moz.build
rename : content/media/webspeech/recognition/nsISpeechRecognitionService.idl => dom/media/webspeech/recognition/nsISpeechRecognitionService.idl
rename : content/media/webspeech/recognition/test/FakeSpeechRecognitionService.cpp => dom/media/webspeech/recognition/test/FakeSpeechRecognitionService.cpp
rename : content/media/webspeech/recognition/test/FakeSpeechRecognitionService.h => dom/media/webspeech/recognition/test/FakeSpeechRecognitionService.h
rename : content/media/webspeech/recognition/test/head.js => dom/media/webspeech/recognition/test/head.js
rename : content/media/webspeech/recognition/test/hello.ogg => dom/media/webspeech/recognition/test/hello.ogg
rename : content/media/webspeech/recognition/test/hello.ogg^headers^ => dom/media/webspeech/recognition/test/hello.ogg^headers^
rename : content/media/webspeech/recognition/test/mochitest.ini => dom/media/webspeech/recognition/test/mochitest.ini
rename : content/media/webspeech/recognition/test/silence.ogg => dom/media/webspeech/recognition/test/silence.ogg
rename : content/media/webspeech/recognition/test/silence.ogg^headers^ => dom/media/webspeech/recognition/test/silence.ogg^headers^
rename : content/media/webspeech/recognition/test/test_abort.html => dom/media/webspeech/recognition/test/test_abort.html
rename : content/media/webspeech/recognition/test/test_audio_capture_error.html => dom/media/webspeech/recognition/test/test_audio_capture_error.html
rename : content/media/webspeech/recognition/test/test_call_start_from_end_handler.html => dom/media/webspeech/recognition/test/test_call_start_from_end_handler.html
rename : content/media/webspeech/recognition/test/test_nested_eventloop.html => dom/media/webspeech/recognition/test/test_nested_eventloop.html
rename : content/media/webspeech/recognition/test/test_preference_enable.html => dom/media/webspeech/recognition/test/test_preference_enable.html
rename : content/media/webspeech/recognition/test/test_recognition_service_error.html => dom/media/webspeech/recognition/test/test_recognition_service_error.html
rename : content/media/webspeech/recognition/test/test_success_without_recognition_service.html => dom/media/webspeech/recognition/test/test_success_without_recognition_service.html
rename : content/media/webspeech/recognition/test/test_timeout.html => dom/media/webspeech/recognition/test/test_timeout.html
rename : content/media/webspeech/synth/SpeechSynthesis.cpp => dom/media/webspeech/synth/SpeechSynthesis.cpp
rename : content/media/webspeech/synth/SpeechSynthesis.h => dom/media/webspeech/synth/SpeechSynthesis.h
rename : content/media/webspeech/synth/SpeechSynthesisUtterance.cpp => dom/media/webspeech/synth/SpeechSynthesisUtterance.cpp
rename : content/media/webspeech/synth/SpeechSynthesisUtterance.h => dom/media/webspeech/synth/SpeechSynthesisUtterance.h
rename : content/media/webspeech/synth/SpeechSynthesisVoice.cpp => dom/media/webspeech/synth/SpeechSynthesisVoice.cpp
rename : content/media/webspeech/synth/SpeechSynthesisVoice.h => dom/media/webspeech/synth/SpeechSynthesisVoice.h
rename : content/media/webspeech/synth/ipc/PSpeechSynthesis.ipdl => dom/media/webspeech/synth/ipc/PSpeechSynthesis.ipdl
rename : content/media/webspeech/synth/ipc/PSpeechSynthesisRequest.ipdl => dom/media/webspeech/synth/ipc/PSpeechSynthesisRequest.ipdl
rename : content/media/webspeech/synth/ipc/SpeechSynthesisChild.cpp => dom/media/webspeech/synth/ipc/SpeechSynthesisChild.cpp
rename : content/media/webspeech/synth/ipc/SpeechSynthesisChild.h => dom/media/webspeech/synth/ipc/SpeechSynthesisChild.h
rename : content/media/webspeech/synth/ipc/SpeechSynthesisParent.cpp => dom/media/webspeech/synth/ipc/SpeechSynthesisParent.cpp
rename : content/media/webspeech/synth/ipc/SpeechSynthesisParent.h => dom/media/webspeech/synth/ipc/SpeechSynthesisParent.h
rename : content/media/webspeech/synth/ipc/test/file_ipc.html => dom/media/webspeech/synth/ipc/test/file_ipc.html
rename : content/media/webspeech/synth/ipc/test/mochitest.ini => dom/media/webspeech/synth/ipc/test/mochitest.ini
rename : content/media/webspeech/synth/ipc/test/test_ipc.html => dom/media/webspeech/synth/ipc/test/test_ipc.html
rename : content/media/webspeech/synth/moz.build => dom/media/webspeech/synth/moz.build
rename : content/media/webspeech/synth/nsISpeechService.idl => dom/media/webspeech/synth/nsISpeechService.idl
rename : content/media/webspeech/synth/nsISynthVoiceRegistry.idl => dom/media/webspeech/synth/nsISynthVoiceRegistry.idl
rename : content/media/webspeech/synth/nsSpeechTask.cpp => dom/media/webspeech/synth/nsSpeechTask.cpp
rename : content/media/webspeech/synth/nsSpeechTask.h => dom/media/webspeech/synth/nsSpeechTask.h
rename : content/media/webspeech/synth/nsSynthVoiceRegistry.cpp => dom/media/webspeech/synth/nsSynthVoiceRegistry.cpp
rename : content/media/webspeech/synth/nsSynthVoiceRegistry.h => dom/media/webspeech/synth/nsSynthVoiceRegistry.h
rename : content/media/webspeech/synth/pico/PicoModule.cpp => dom/media/webspeech/synth/pico/PicoModule.cpp
rename : content/media/webspeech/synth/pico/moz.build => dom/media/webspeech/synth/pico/moz.build
rename : content/media/webspeech/synth/pico/nsPicoService.cpp => dom/media/webspeech/synth/pico/nsPicoService.cpp
rename : content/media/webspeech/synth/pico/nsPicoService.h => dom/media/webspeech/synth/pico/nsPicoService.h
rename : content/media/webspeech/synth/test/common.js => dom/media/webspeech/synth/test/common.js
rename : content/media/webspeech/synth/test/file_setup.html => dom/media/webspeech/synth/test/file_setup.html
rename : content/media/webspeech/synth/test/file_speech_queue.html => dom/media/webspeech/synth/test/file_speech_queue.html
rename : content/media/webspeech/synth/test/file_speech_simple.html => dom/media/webspeech/synth/test/file_speech_simple.html
rename : content/media/webspeech/synth/test/mochitest.ini => dom/media/webspeech/synth/test/mochitest.ini
rename : content/media/webspeech/synth/test/test_setup.html => dom/media/webspeech/synth/test/test_setup.html
rename : content/media/webspeech/synth/test/test_speech_queue.html => dom/media/webspeech/synth/test/test_speech_queue.html
rename : content/media/webspeech/synth/test/test_speech_simple.html => dom/media/webspeech/synth/test/test_speech_simple.html
rename : content/media/webvtt/WebVTT.manifest => dom/media/webvtt/WebVTT.manifest
rename : content/media/webvtt/WebVTTParserWrapper.js => dom/media/webvtt/WebVTTParserWrapper.js
rename : content/media/webvtt/moz.build => dom/media/webvtt/moz.build
rename : content/media/webvtt/nsIWebVTTListener.idl => dom/media/webvtt/nsIWebVTTListener.idl
rename : content/media/webvtt/nsIWebVTTParserWrapper.idl => dom/media/webvtt/nsIWebVTTParserWrapper.idl
rename : content/media/webvtt/package.json => dom/media/webvtt/package.json
rename : content/media/webvtt/update-webvtt.js => dom/media/webvtt/update-webvtt.js
rename : content/media/webvtt/vtt.jsm => dom/media/webvtt/vtt.jsm
rename : content/media/wmf/DXVA2Manager.cpp => dom/media/wmf/DXVA2Manager.cpp
rename : content/media/wmf/DXVA2Manager.h => dom/media/wmf/DXVA2Manager.h
rename : content/media/wmf/WMF.h => dom/media/wmf/WMF.h
rename : content/media/wmf/WMFByteStream.cpp => dom/media/wmf/WMFByteStream.cpp
rename : content/media/wmf/WMFByteStream.h => dom/media/wmf/WMFByteStream.h
rename : content/media/wmf/WMFDecoder.cpp => dom/media/wmf/WMFDecoder.cpp
rename : content/media/wmf/WMFDecoder.h => dom/media/wmf/WMFDecoder.h
rename : content/media/wmf/WMFReader.cpp => dom/media/wmf/WMFReader.cpp
rename : content/media/wmf/WMFReader.h => dom/media/wmf/WMFReader.h
rename : content/media/wmf/WMFSourceReaderCallback.cpp => dom/media/wmf/WMFSourceReaderCallback.cpp
rename : content/media/wmf/WMFSourceReaderCallback.h => dom/media/wmf/WMFSourceReaderCallback.h
rename : content/media/wmf/WMFUtils.cpp => dom/media/wmf/WMFUtils.cpp
rename : content/media/wmf/WMFUtils.h => dom/media/wmf/WMFUtils.h
rename : content/media/wmf/moz.build => dom/media/wmf/moz.build
2014-10-25 20:24:36 +03:00

1228 lines
37 KiB
C++

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim:set ts=2 sw=2 sts=2 et cindent: */
/* 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 <stdio.h>
#include <math.h>
#include <string.h>
#include "prlog.h"
#include "prdtoa.h"
#include "AudioStream.h"
#include "VideoUtils.h"
#include "mozilla/Monitor.h"
#include "mozilla/Mutex.h"
#include <algorithm>
#include "mozilla/Telemetry.h"
#include "soundtouch/SoundTouch.h"
#include "Latency.h"
#include "CubebUtils.h"
#include "nsPrintfCString.h"
#ifdef XP_MACOSX
#include <sys/sysctl.h>
#endif
namespace mozilla {
#ifdef LOG
#undef LOG
#endif
#ifdef PR_LOGGING
PRLogModuleInfo* gAudioStreamLog = nullptr;
// For simple logs
#define LOG(x) PR_LOG(gAudioStreamLog, PR_LOG_DEBUG, x)
#else
#define LOG(x)
#endif
/**
* When MOZ_DUMP_AUDIO is set in the environment (to anything),
* we'll drop a series of files in the current working directory named
* dumped-audio-<nnn>.wav, one per AudioStream created, containing
* the audio for the stream including any skips due to underruns.
*/
static int gDumpedAudioCount = 0;
/**
* Keep a list of frames sent to the audio engine in each DataCallback along
* with the playback rate at the moment. Since the playback rate and number of
* underrun frames can vary in each callback. We need to keep the whole history
* in order to calculate the playback position of the audio engine correctly.
*/
class FrameHistory {
struct Chunk {
uint32_t servicedFrames;
uint32_t totalFrames;
int rate;
};
template <typename T>
static T FramesToUs(uint32_t frames, int rate) {
return static_cast<T>(frames) * USECS_PER_S / rate;
}
public:
FrameHistory()
: mBaseOffset(0), mBasePosition(0) {}
void Append(uint32_t aServiced, uint32_t aUnderrun, int aRate) {
/* In most case where playback rate stays the same and we don't underrun
* frames, we are able to merge chunks to avoid lose of precision to add up
* in compressing chunks into |mBaseOffset| and |mBasePosition|.
*/
if (!mChunks.IsEmpty()) {
Chunk& c = mChunks.LastElement();
// 2 chunks (c1 and c2) can be merged when rate is the same and
// adjacent frames are zero. That is, underrun frames in c1 are zero
// or serviced frames in c2 are zero.
if (c.rate == aRate &&
(c.servicedFrames == c.totalFrames ||
aServiced == 0)) {
c.servicedFrames += aServiced;
c.totalFrames += aServiced + aUnderrun;
return;
}
}
Chunk* p = mChunks.AppendElement();
p->servicedFrames = aServiced;
p->totalFrames = aServiced + aUnderrun;
p->rate = aRate;
}
/**
* @param frames The playback position in frames of the audio engine.
* @return The playback position in microseconds of the audio engine,
* adjusted by playback rate changes and underrun frames.
*/
int64_t GetPosition(int64_t frames) {
// playback position should not go backward.
MOZ_ASSERT(frames >= mBaseOffset);
while (true) {
if (mChunks.IsEmpty()) {
return mBasePosition;
}
const Chunk& c = mChunks[0];
if (frames <= mBaseOffset + c.totalFrames) {
uint32_t delta = frames - mBaseOffset;
delta = std::min(delta, c.servicedFrames);
return static_cast<int64_t>(mBasePosition) +
FramesToUs<int64_t>(delta, c.rate);
}
// Since the playback position of the audio engine will not go backward,
// we are able to compress chunks so that |mChunks| won't grow unlimitedly.
// Note that we lose precision in converting integers into floats and
// inaccuracy will accumulate over time. However, for a 24hr long,
// sample rate = 44.1k file, the error will be less than 1 microsecond
// after playing 24 hours. So we are fine with that.
mBaseOffset += c.totalFrames;
mBasePosition += FramesToUs<double>(c.servicedFrames, c.rate);
mChunks.RemoveElementAt(0);
}
}
private:
nsAutoTArray<Chunk, 7> mChunks;
int64_t mBaseOffset;
double mBasePosition;
};
AudioStream::AudioStream()
: mMonitor("AudioStream")
, mInRate(0)
, mOutRate(0)
, mChannels(0)
, mOutChannels(0)
, mWritten(0)
, mAudioClock(MOZ_THIS_IN_INITIALIZER_LIST())
, mLatencyRequest(HighLatency)
, mReadPoint(0)
, mDumpFile(nullptr)
, mBytesPerFrame(0)
, mState(INITIALIZED)
, mNeedsStart(false)
, mShouldDropFrames(false)
, mPendingAudioInitTask(false)
, mLastGoodPosition(0)
{
// keep a ref in case we shut down later than nsLayoutStatics
mLatencyLog = AsyncLatencyLogger::Get(true);
}
AudioStream::~AudioStream()
{
LOG(("AudioStream: delete %p, state %d", this, mState));
MOZ_ASSERT(mState == SHUTDOWN && !mCubebStream,
"Should've called Shutdown() before deleting an AudioStream");
if (mDumpFile) {
fclose(mDumpFile);
}
}
size_t
AudioStream::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const
{
size_t amount = aMallocSizeOf(this);
// Possibly add in the future:
// - mTimeStretcher
// - mLatencyLog
// - mCubebStream
amount += mInserts.SizeOfExcludingThis(aMallocSizeOf);
amount += mBuffer.SizeOfExcludingThis(aMallocSizeOf);
return amount;
}
nsresult AudioStream::EnsureTimeStretcherInitializedUnlocked()
{
mMonitor.AssertCurrentThreadOwns();
if (!mTimeStretcher) {
mTimeStretcher = new soundtouch::SoundTouch();
mTimeStretcher->setSampleRate(mInRate);
mTimeStretcher->setChannels(mOutChannels);
mTimeStretcher->setPitch(1.0);
}
return NS_OK;
}
nsresult AudioStream::SetPlaybackRate(double aPlaybackRate)
{
// MUST lock since the rate transposer is used from the cubeb callback,
// and rate changes can cause the buffer to be reallocated
MonitorAutoLock mon(mMonitor);
NS_ASSERTION(aPlaybackRate > 0.0,
"Can't handle negative or null playbackrate in the AudioStream.");
// Avoid instantiating the resampler if we are not changing the playback rate.
// GetPreservesPitch/SetPreservesPitch don't need locking before calling
if (aPlaybackRate == mAudioClock.GetPlaybackRate()) {
return NS_OK;
}
if (EnsureTimeStretcherInitializedUnlocked() != NS_OK) {
return NS_ERROR_FAILURE;
}
mAudioClock.SetPlaybackRateUnlocked(aPlaybackRate);
mOutRate = mInRate / aPlaybackRate;
if (mAudioClock.GetPreservesPitch()) {
mTimeStretcher->setTempo(aPlaybackRate);
mTimeStretcher->setRate(1.0f);
} else {
mTimeStretcher->setTempo(1.0f);
mTimeStretcher->setRate(aPlaybackRate);
}
return NS_OK;
}
nsresult AudioStream::SetPreservesPitch(bool aPreservesPitch)
{
// MUST lock since the rate transposer is used from the cubeb callback,
// and rate changes can cause the buffer to be reallocated
MonitorAutoLock mon(mMonitor);
// Avoid instantiating the timestretcher instance if not needed.
if (aPreservesPitch == mAudioClock.GetPreservesPitch()) {
return NS_OK;
}
if (EnsureTimeStretcherInitializedUnlocked() != NS_OK) {
return NS_ERROR_FAILURE;
}
if (aPreservesPitch == true) {
mTimeStretcher->setTempo(mAudioClock.GetPlaybackRate());
mTimeStretcher->setRate(1.0f);
} else {
mTimeStretcher->setTempo(1.0f);
mTimeStretcher->setRate(mAudioClock.GetPlaybackRate());
}
mAudioClock.SetPreservesPitch(aPreservesPitch);
return NS_OK;
}
int64_t AudioStream::GetWritten()
{
MonitorAutoLock mon(mMonitor);
return mWritten;
}
static void SetUint16LE(uint8_t* aDest, uint16_t aValue)
{
aDest[0] = aValue & 0xFF;
aDest[1] = aValue >> 8;
}
static void SetUint32LE(uint8_t* aDest, uint32_t aValue)
{
SetUint16LE(aDest, aValue & 0xFFFF);
SetUint16LE(aDest + 2, aValue >> 16);
}
static FILE*
OpenDumpFile(AudioStream* aStream)
{
if (!getenv("MOZ_DUMP_AUDIO"))
return nullptr;
char buf[100];
sprintf(buf, "dumped-audio-%d.wav", gDumpedAudioCount);
FILE* f = fopen(buf, "wb");
if (!f)
return nullptr;
++gDumpedAudioCount;
uint8_t header[] = {
// RIFF header
0x52, 0x49, 0x46, 0x46, 0x00, 0x00, 0x00, 0x00, 0x57, 0x41, 0x56, 0x45,
// fmt chunk. We always write 16-bit samples.
0x66, 0x6d, 0x74, 0x20, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x10, 0x00,
// data chunk
0x64, 0x61, 0x74, 0x61, 0xFE, 0xFF, 0xFF, 0x7F
};
static const int CHANNEL_OFFSET = 22;
static const int SAMPLE_RATE_OFFSET = 24;
static const int BLOCK_ALIGN_OFFSET = 32;
SetUint16LE(header + CHANNEL_OFFSET, aStream->GetChannels());
SetUint32LE(header + SAMPLE_RATE_OFFSET, aStream->GetRate());
SetUint16LE(header + BLOCK_ALIGN_OFFSET, aStream->GetChannels()*2);
fwrite(header, sizeof(header), 1, f);
return f;
}
static void
WriteDumpFile(FILE* aDumpFile, AudioStream* aStream, uint32_t aFrames,
void* aBuffer)
{
if (!aDumpFile)
return;
uint32_t samples = aStream->GetOutChannels()*aFrames;
if (AUDIO_OUTPUT_FORMAT == AUDIO_FORMAT_S16) {
fwrite(aBuffer, 2, samples, aDumpFile);
return;
}
NS_ASSERTION(AUDIO_OUTPUT_FORMAT == AUDIO_FORMAT_FLOAT32, "bad format");
nsAutoTArray<uint8_t, 1024*2> buf;
buf.SetLength(samples*2);
float* input = static_cast<float*>(aBuffer);
uint8_t* output = buf.Elements();
for (uint32_t i = 0; i < samples; ++i) {
SetUint16LE(output + i*2, int16_t(input[i]*32767.0f));
}
fwrite(output, 2, samples, aDumpFile);
fflush(aDumpFile);
}
// NOTE: this must not block a LowLatency stream for any significant amount
// of time, or it will block the entirety of MSG
nsresult
AudioStream::Init(int32_t aNumChannels, int32_t aRate,
const dom::AudioChannel aAudioChannel,
LatencyRequest aLatencyRequest)
{
mStartTime = TimeStamp::Now();
mIsFirst = CubebUtils::GetFirstStream();
if (!CubebUtils::GetCubebContext() || aNumChannels < 0 || aRate < 0) {
return NS_ERROR_FAILURE;
}
PR_LOG(gAudioStreamLog, PR_LOG_DEBUG,
("%s channels: %d, rate: %d for %p", __FUNCTION__, aNumChannels, aRate, this));
mInRate = mOutRate = aRate;
mChannels = aNumChannels;
mOutChannels = (aNumChannels > 2) ? 2 : aNumChannels;
mLatencyRequest = aLatencyRequest;
mDumpFile = OpenDumpFile(this);
cubeb_stream_params params;
params.rate = aRate;
params.channels = mOutChannels;
#if defined(__ANDROID__)
#if defined(MOZ_B2G)
mAudioChannel = aAudioChannel;
params.stream_type = CubebUtils::ConvertChannelToCubebType(aAudioChannel);
#else
mAudioChannel = dom::AudioChannel::Content;
params.stream_type = CUBEB_STREAM_TYPE_MUSIC;
#endif
if (params.stream_type == CUBEB_STREAM_TYPE_MAX) {
return NS_ERROR_INVALID_ARG;
}
#endif
if (AUDIO_OUTPUT_FORMAT == AUDIO_FORMAT_S16) {
params.format = CUBEB_SAMPLE_S16NE;
} else {
params.format = CUBEB_SAMPLE_FLOAT32NE;
}
mBytesPerFrame = sizeof(AudioDataValue) * mOutChannels;
mAudioClock.Init();
// Size mBuffer for one second of audio. This value is arbitrary, and was
// selected based on the observed behaviour of the existing AudioStream
// implementations.
uint32_t bufferLimit = FramesToBytes(aRate);
NS_ABORT_IF_FALSE(bufferLimit % mBytesPerFrame == 0, "Must buffer complete frames");
mBuffer.SetCapacity(bufferLimit);
if (aLatencyRequest == LowLatency) {
// Don't block this thread to initialize a cubeb stream.
// When this is done, it will start callbacks from Cubeb. Those will
// cause us to move from INITIALIZED to RUNNING. Until then, we
// can't access any cubeb functions.
// Use a RefPtr to avoid leaks if Dispatch fails
mPendingAudioInitTask = true;
RefPtr<AudioInitTask> init = new AudioInitTask(this, aLatencyRequest, params);
nsresult rv = init->Dispatch();
if (NS_FAILED(rv)) {
mPendingAudioInitTask = false;
}
return rv;
}
// High latency - open synchronously
nsresult rv = OpenCubeb(params, aLatencyRequest);
NS_ENSURE_SUCCESS(rv, rv);
// See if we need to start() the stream, since we must do that from this
// thread for now (cubeb API issue)
{
MonitorAutoLock mon(mMonitor);
CheckForStart();
}
return NS_OK;
}
// On certain MacBookPro, the microphone is located near the left speaker.
// We need to pan the sound output to the right speaker if we are using the mic
// and the built-in speaker, or we will have terrible echo.
void AudioStream::PanOutputIfNeeded(bool aMicrophoneActive)
{
#ifdef XP_MACOSX
cubeb_device* device;
int rv;
char name[128];
size_t length = sizeof(name);
bool panCenter = false;
rv = sysctlbyname("hw.model", name, &length, NULL, 0);
if (rv) {
return;
}
if (!strncmp(name, "MacBookPro", 10)) {
if (cubeb_stream_get_current_device(mCubebStream.get(), &device) == CUBEB_OK) {
// Check if we are currently outputing sound on external speakers.
if (!strcmp(device->output_name, "ispk")) {
// Pan everything to the right speaker.
if (aMicrophoneActive) {
LOG(("%p Panning audio output to the right.", this));
if (cubeb_stream_set_panning(mCubebStream.get(), 1.0) != CUBEB_OK) {
NS_WARNING("Could not pan audio output to the right.");
}
} else {
panCenter = true;
}
} else {
panCenter = true;
}
if (panCenter) {
LOG(("%p Panning audio output to the center.", this));
if (cubeb_stream_set_panning(mCubebStream.get(), 0.0) != CUBEB_OK) {
NS_WARNING("Could not pan audio output to the center.");
}
}
cubeb_stream_device_destroy(mCubebStream.get(), device);
}
}
#endif
}
void AudioStream::ResetStreamIfNeeded()
{
cubeb_device * device;
// Only reset a device if a mic is active, and this is a low latency stream.
if (!mMicrophoneActive || mLatencyRequest != LowLatency) {
return;
}
if (cubeb_stream_get_current_device(mCubebStream.get(), &device) == CUBEB_OK) {
// This a microphone that goes through the headphone plug, reset the
// output to prevent echo building up.
if (strcmp(device->input_name, "emic") == 0) {
LOG(("Resetting audio output"));
Reset();
}
cubeb_stream_device_destroy(mCubebStream.get(), device);
}
}
void AudioStream::DeviceChangedCallback()
{
MonitorAutoLock mon(mMonitor);
PanOutputIfNeeded(mMicrophoneActive);
mShouldDropFrames = true;
ResetStreamIfNeeded();
}
// This code used to live inside AudioStream::Init(), but on Mac (others?)
// it has been known to take 300-800 (or even 8500) ms to execute(!)
nsresult
AudioStream::OpenCubeb(cubeb_stream_params &aParams,
LatencyRequest aLatencyRequest)
{
cubeb* cubebContext = CubebUtils::GetCubebContext();
if (!cubebContext) {
NS_WARNING("Can't get cubeb context!");
MonitorAutoLock mon(mMonitor);
mState = AudioStream::ERRORED;
return NS_ERROR_FAILURE;
}
// If the latency pref is set, use it. Otherwise, if this stream is intended
// for low latency playback, try to get the lowest latency possible.
// Otherwise, for normal streams, use 100ms.
uint32_t latency;
if (aLatencyRequest == LowLatency && !CubebUtils::CubebLatencyPrefSet()) {
if (cubeb_get_min_latency(cubebContext, aParams, &latency) != CUBEB_OK) {
latency = CubebUtils::GetCubebLatency();
}
} else {
latency = CubebUtils::GetCubebLatency();
}
{
cubeb_stream* stream;
if (cubeb_stream_init(cubebContext, &stream, "AudioStream", aParams,
latency, DataCallback_S, StateCallback_S, this) == CUBEB_OK) {
MonitorAutoLock mon(mMonitor);
MOZ_ASSERT(mState != SHUTDOWN);
mCubebStream.reset(stream);
// We can't cubeb_stream_start() the thread from a transient thread due to
// cubeb API requirements (init can be called from another thread, but
// not start/stop/destroy/etc)
} else {
MonitorAutoLock mon(mMonitor);
mState = ERRORED;
NS_WARNING(nsPrintfCString("AudioStream::OpenCubeb() %p failed to init cubeb", this).get());
return NS_ERROR_FAILURE;
}
}
cubeb_stream_register_device_changed_callback(mCubebStream.get(),
AudioStream::DeviceChangedCallback_s);
mState = INITIALIZED;
if (!mStartTime.IsNull()) {
TimeDuration timeDelta = TimeStamp::Now() - mStartTime;
LOG(("AudioStream creation time %sfirst: %u ms", mIsFirst ? "" : "not ",
(uint32_t) timeDelta.ToMilliseconds()));
Telemetry::Accumulate(mIsFirst ? Telemetry::AUDIOSTREAM_FIRST_OPEN_MS :
Telemetry::AUDIOSTREAM_LATER_OPEN_MS, timeDelta.ToMilliseconds());
}
return NS_OK;
}
void
AudioStream::AudioInitTaskFinished()
{
MonitorAutoLock mon(mMonitor);
mPendingAudioInitTask = false;
mon.NotifyAll();
}
void
AudioStream::CheckForStart()
{
mMonitor.AssertCurrentThreadOwns();
if (mState == INITIALIZED) {
// Start the stream right away when low latency has been requested. This means
// that the DataCallback will feed silence to cubeb, until the first frames
// are written to this AudioStream. Also start if a start has been queued.
if (mLatencyRequest == LowLatency || mNeedsStart) {
StartUnlocked(); // mState = STARTED or ERRORED
mNeedsStart = false;
PR_LOG(gAudioStreamLog, PR_LOG_WARNING,
("Started waiting %s-latency stream",
mLatencyRequest == LowLatency ? "low" : "high"));
} else {
// high latency, not full - OR Pause() was called before we got here
PR_LOG(gAudioStreamLog, PR_LOG_DEBUG,
("Not starting waiting %s-latency stream",
mLatencyRequest == LowLatency ? "low" : "high"));
}
}
}
NS_IMETHODIMP
AudioInitTask::Run()
{
MOZ_ASSERT(mThread);
if (NS_IsMainThread()) {
mThread->Shutdown(); // can't Shutdown from the thread itself, darn
// Don't null out mThread!
// See bug 999104. We must hold a ref to the thread across Dispatch()
// since the internal mThread ref could be released while processing
// the Dispatch(), and Dispatch/PutEvent itself doesn't hold a ref; it
// assumes the caller does.
return NS_OK;
}
nsresult rv = mAudioStream->OpenCubeb(mParams, mLatencyRequest);
mAudioStream->AudioInitTaskFinished();
// and now kill this thread
NS_DispatchToMainThread(this);
return rv;
}
// aTime is the time in ms the samples were inserted into MediaStreamGraph
nsresult
AudioStream::Write(const AudioDataValue* aBuf, uint32_t aFrames, TimeStamp *aTime)
{
MonitorAutoLock mon(mMonitor);
// See if we need to start() the stream, since we must do that from this thread
CheckForStart();
if (mShouldDropFrames) {
mBuffer.ContractTo(0);
return NS_OK;
}
if (mState == ERRORED) {
return NS_ERROR_FAILURE;
}
NS_ASSERTION(mState == INITIALIZED || mState == STARTED || mState == RUNNING,
"Stream write in unexpected state.");
// Downmix to Stereo.
if (mChannels > 2 && mChannels <= 8) {
DownmixAudioToStereo(const_cast<AudioDataValue*> (aBuf), mChannels, aFrames);
}
else if (mChannels > 8) {
return NS_ERROR_FAILURE;
}
const uint8_t* src = reinterpret_cast<const uint8_t*>(aBuf);
uint32_t bytesToCopy = FramesToBytes(aFrames);
// XXX this will need to change if we want to enable this on-the-fly!
if (PR_LOG_TEST(GetLatencyLog(), PR_LOG_DEBUG)) {
// Record the position and time this data was inserted
int64_t timeMs;
if (aTime && !aTime->IsNull()) {
if (mStartTime.IsNull()) {
AsyncLatencyLogger::Get(true)->GetStartTime(mStartTime);
}
timeMs = (*aTime - mStartTime).ToMilliseconds();
} else {
timeMs = 0;
}
struct Inserts insert = { timeMs, aFrames};
mInserts.AppendElement(insert);
}
while (bytesToCopy > 0) {
uint32_t available = std::min(bytesToCopy, mBuffer.Available());
NS_ABORT_IF_FALSE(available % mBytesPerFrame == 0,
"Must copy complete frames.");
mBuffer.AppendElements(src, available);
src += available;
bytesToCopy -= available;
if (bytesToCopy > 0) {
// Careful - the CubebInit thread may not have gotten to STARTED yet
if ((mState == INITIALIZED || mState == STARTED) && mLatencyRequest == LowLatency) {
// don't ever block MediaStreamGraph low-latency streams
uint32_t remains = 0; // we presume the buffer is full
if (mBuffer.Length() > bytesToCopy) {
remains = mBuffer.Length() - bytesToCopy; // Free up just enough space
}
// account for dropping samples
PR_LOG(gAudioStreamLog, PR_LOG_WARNING, ("Stream %p dropping %u bytes (%u frames)in Write()",
this, mBuffer.Length() - remains, BytesToFrames(mBuffer.Length() - remains)));
mReadPoint += BytesToFrames(mBuffer.Length() - remains);
mBuffer.ContractTo(remains);
} else { // RUNNING or high latency
// If we are not playing, but our buffer is full, start playing to make
// room for soon-to-be-decoded data.
if (mState != STARTED && mState != RUNNING) {
PR_LOG(gAudioStreamLog, PR_LOG_WARNING, ("Starting stream %p in Write (%u waiting)",
this, bytesToCopy));
StartUnlocked();
if (mState == ERRORED) {
return NS_ERROR_FAILURE;
}
}
PR_LOG(gAudioStreamLog, PR_LOG_WARNING, ("Stream %p waiting in Write() (%u waiting)",
this, bytesToCopy));
mon.Wait();
}
}
}
mWritten += aFrames;
return NS_OK;
}
uint32_t
AudioStream::Available()
{
MonitorAutoLock mon(mMonitor);
NS_ABORT_IF_FALSE(mBuffer.Length() % mBytesPerFrame == 0, "Buffer invariant violated.");
return BytesToFrames(mBuffer.Available());
}
void
AudioStream::SetVolume(double aVolume)
{
NS_ABORT_IF_FALSE(aVolume >= 0.0 && aVolume <= 1.0, "Invalid volume");
if (cubeb_stream_set_volume(mCubebStream.get(), aVolume * CubebUtils::GetVolumeScale()) != CUBEB_OK) {
NS_WARNING("Could not change volume on cubeb stream.");
}
}
void
AudioStream::SetMicrophoneActive(bool aActive)
{
MonitorAutoLock mon(mMonitor);
mMicrophoneActive = aActive;
PanOutputIfNeeded(mMicrophoneActive);
}
void
AudioStream::Cancel()
{
MonitorAutoLock mon(mMonitor);
mState = ERRORED;
mon.NotifyAll();
}
void
AudioStream::Drain()
{
MonitorAutoLock mon(mMonitor);
LOG(("AudioStream::Drain() for %p, state %d, avail %u", this, mState, mBuffer.Available()));
if (mState != STARTED && mState != RUNNING) {
NS_ASSERTION(mState == ERRORED || mBuffer.Available() == 0, "Draining without full buffer of unplayed audio");
return;
}
mState = DRAINING;
while (mState == DRAINING) {
mon.Wait();
}
}
void
AudioStream::Start()
{
MonitorAutoLock mon(mMonitor);
StartUnlocked();
}
void
AudioStream::StartUnlocked()
{
mMonitor.AssertCurrentThreadOwns();
if (!mCubebStream) {
mNeedsStart = true;
return;
}
if (mState == INITIALIZED) {
int r;
{
MonitorAutoUnlock mon(mMonitor);
r = cubeb_stream_start(mCubebStream.get());
PanOutputIfNeeded(mMicrophoneActive);
}
mState = r == CUBEB_OK ? STARTED : ERRORED;
LOG(("AudioStream: started %p, state %s", this, mState == STARTED ? "STARTED" : "ERRORED"));
}
}
void
AudioStream::Pause()
{
MonitorAutoLock mon(mMonitor);
if (mState == ERRORED) {
return;
}
if (!mCubebStream || (mState != STARTED && mState != RUNNING)) {
mNeedsStart = false;
mState = STOPPED; // which also tells async OpenCubeb not to start, just init
return;
}
int r;
{
MonitorAutoUnlock mon(mMonitor);
r = cubeb_stream_stop(mCubebStream.get());
}
if (mState != ERRORED && r == CUBEB_OK) {
mState = STOPPED;
}
}
void
AudioStream::Resume()
{
MonitorAutoLock mon(mMonitor);
if (!mCubebStream || mState != STOPPED) {
return;
}
int r;
{
MonitorAutoUnlock mon(mMonitor);
r = cubeb_stream_start(mCubebStream.get());
}
if (mState != ERRORED && r == CUBEB_OK) {
mState = STARTED;
}
}
void
AudioStream::Shutdown()
{
MonitorAutoLock mon(mMonitor);
LOG(("AudioStream: Shutdown %p, state %d", this, mState));
while (mPendingAudioInitTask) {
mon.Wait();
}
if (mCubebStream) {
MonitorAutoUnlock mon(mMonitor);
// Force stop to put the cubeb stream in a stable state before deletion.
cubeb_stream_stop(mCubebStream.get());
// Must not try to shut down cubeb from within the lock! wasapi may still
// call our callback after Pause()/stop()!?! Bug 996162
mCubebStream.reset();
}
mState = SHUTDOWN;
}
int64_t
AudioStream::GetPosition()
{
MonitorAutoLock mon(mMonitor);
return mAudioClock.GetPositionUnlocked();
}
// This function is miscompiled by PGO with MSVC 2010. See bug 768333.
#ifdef _MSC_VER
#pragma optimize("", off)
#endif
int64_t
AudioStream::GetPositionInFrames()
{
MonitorAutoLock mon(mMonitor);
return mAudioClock.GetPositionInFrames();
}
#ifdef _MSC_VER
#pragma optimize("", on)
#endif
int64_t
AudioStream::GetPositionInFramesUnlocked()
{
mMonitor.AssertCurrentThreadOwns();
if (!mCubebStream || mState == ERRORED) {
return -1;
}
uint64_t position = 0;
{
MonitorAutoUnlock mon(mMonitor);
if (cubeb_stream_get_position(mCubebStream.get(), &position) != CUBEB_OK) {
return -1;
}
}
MOZ_ASSERT(position >= mLastGoodPosition, "cubeb position shouldn't go backward");
// This error handling/recovery keeps us in good shape in release build.
if (position >= mLastGoodPosition) {
mLastGoodPosition = position;
}
return std::min<uint64_t>(mLastGoodPosition, INT64_MAX);
}
int64_t
AudioStream::GetLatencyInFrames()
{
uint32_t latency;
if (cubeb_stream_get_latency(mCubebStream.get(), &latency)) {
NS_WARNING("Could not get cubeb latency.");
return 0;
}
return static_cast<int64_t>(latency);
}
bool
AudioStream::IsPaused()
{
MonitorAutoLock mon(mMonitor);
return mState == STOPPED;
}
void
AudioStream::GetBufferInsertTime(int64_t &aTimeMs)
{
mMonitor.AssertCurrentThreadOwns();
if (mInserts.Length() > 0) {
// Find the right block, but don't leave the array empty
while (mInserts.Length() > 1 && mReadPoint >= mInserts[0].mFrames) {
mReadPoint -= mInserts[0].mFrames;
mInserts.RemoveElementAt(0);
}
// offset for amount already read
// XXX Note: could misreport if we couldn't find a block in the right timeframe
aTimeMs = mInserts[0].mTimeMs + ((mReadPoint * 1000) / mOutRate);
} else {
aTimeMs = INT64_MAX;
}
}
long
AudioStream::GetUnprocessed(void* aBuffer, long aFrames, int64_t &aTimeMs)
{
mMonitor.AssertCurrentThreadOwns();
uint8_t* wpos = reinterpret_cast<uint8_t*>(aBuffer);
// Flush the timestretcher pipeline, if we were playing using a playback rate
// other than 1.0.
uint32_t flushedFrames = 0;
if (mTimeStretcher && mTimeStretcher->numSamples()) {
flushedFrames = mTimeStretcher->receiveSamples(reinterpret_cast<AudioDataValue*>(wpos), aFrames);
wpos += FramesToBytes(flushedFrames);
}
uint32_t toPopBytes = FramesToBytes(aFrames - flushedFrames);
uint32_t available = std::min(toPopBytes, mBuffer.Length());
void* input[2];
uint32_t input_size[2];
mBuffer.PopElements(available, &input[0], &input_size[0], &input[1], &input_size[1]);
memcpy(wpos, input[0], input_size[0]);
wpos += input_size[0];
memcpy(wpos, input[1], input_size[1]);
// First time block now has our first returned sample
mReadPoint += BytesToFrames(available);
GetBufferInsertTime(aTimeMs);
return BytesToFrames(available) + flushedFrames;
}
// Get unprocessed samples, and pad the beginning of the buffer with silence if
// there is not enough data.
long
AudioStream::GetUnprocessedWithSilencePadding(void* aBuffer, long aFrames, int64_t& aTimeMs)
{
mMonitor.AssertCurrentThreadOwns();
uint32_t toPopBytes = FramesToBytes(aFrames);
uint32_t available = std::min(toPopBytes, mBuffer.Length());
uint32_t silenceOffset = toPopBytes - available;
uint8_t* wpos = reinterpret_cast<uint8_t*>(aBuffer);
memset(wpos, 0, silenceOffset);
wpos += silenceOffset;
void* input[2];
uint32_t input_size[2];
mBuffer.PopElements(available, &input[0], &input_size[0], &input[1], &input_size[1]);
memcpy(wpos, input[0], input_size[0]);
wpos += input_size[0];
memcpy(wpos, input[1], input_size[1]);
GetBufferInsertTime(aTimeMs);
return aFrames;
}
long
AudioStream::GetTimeStretched(void* aBuffer, long aFrames, int64_t &aTimeMs)
{
mMonitor.AssertCurrentThreadOwns();
long processedFrames = 0;
// We need to call the non-locking version, because we already have the lock.
if (EnsureTimeStretcherInitializedUnlocked() != NS_OK) {
return 0;
}
uint8_t* wpos = reinterpret_cast<uint8_t*>(aBuffer);
double playbackRate = static_cast<double>(mInRate) / mOutRate;
uint32_t toPopBytes = FramesToBytes(ceil(aFrames * playbackRate));
uint32_t available = 0;
bool lowOnBufferedData = false;
do {
// Check if we already have enough data in the time stretcher pipeline.
if (mTimeStretcher->numSamples() <= static_cast<uint32_t>(aFrames)) {
void* input[2];
uint32_t input_size[2];
available = std::min(mBuffer.Length(), toPopBytes);
if (available != toPopBytes) {
lowOnBufferedData = true;
}
mBuffer.PopElements(available, &input[0], &input_size[0],
&input[1], &input_size[1]);
mReadPoint += BytesToFrames(available);
for(uint32_t i = 0; i < 2; i++) {
mTimeStretcher->putSamples(reinterpret_cast<AudioDataValue*>(input[i]), BytesToFrames(input_size[i]));
}
}
uint32_t receivedFrames = mTimeStretcher->receiveSamples(reinterpret_cast<AudioDataValue*>(wpos), aFrames - processedFrames);
wpos += FramesToBytes(receivedFrames);
processedFrames += receivedFrames;
} while (processedFrames < aFrames && !lowOnBufferedData);
GetBufferInsertTime(aTimeMs);
return processedFrames;
}
void
AudioStream::Reset()
{
MOZ_ASSERT(mLatencyRequest == LowLatency, "We should only be reseting low latency streams");
mShouldDropFrames = true;
mNeedsStart = true;
cubeb_stream_params params;
params.rate = mInRate;
params.channels = mOutChannels;
#if defined(__ANDROID__)
#if defined(MOZ_B2G)
params.stream_type = CubebUtils::ConvertChannelToCubebType(mAudioChannel);
#else
params.stream_type = CUBEB_STREAM_TYPE_MUSIC;
#endif
if (params.stream_type == CUBEB_STREAM_TYPE_MAX) {
return;
}
#endif
if (AUDIO_OUTPUT_FORMAT == AUDIO_FORMAT_S16) {
params.format = CUBEB_SAMPLE_S16NE;
} else {
params.format = CUBEB_SAMPLE_FLOAT32NE;
}
mBytesPerFrame = sizeof(AudioDataValue) * mOutChannels;
// Size mBuffer for one second of audio. This value is arbitrary, and was
// selected based on the observed behaviour of the existing AudioStream
// implementations.
uint32_t bufferLimit = FramesToBytes(mInRate);
NS_ABORT_IF_FALSE(bufferLimit % mBytesPerFrame == 0, "Must buffer complete frames");
mBuffer.Reset();
mBuffer.SetCapacity(bufferLimit);
// Don't block this thread to initialize a cubeb stream.
// When this is done, it will start callbacks from Cubeb. Those will
// cause us to move from INITIALIZED to RUNNING. Until then, we
// can't access any cubeb functions.
// Use a RefPtr to avoid leaks if Dispatch fails
RefPtr<AudioInitTask> init = new AudioInitTask(this, mLatencyRequest, params);
init->Dispatch();
}
long
AudioStream::DataCallback(void* aBuffer, long aFrames)
{
MonitorAutoLock mon(mMonitor);
MOZ_ASSERT(mState != SHUTDOWN, "No data callback after shutdown");
uint32_t available = std::min(static_cast<uint32_t>(FramesToBytes(aFrames)), mBuffer.Length());
NS_ABORT_IF_FALSE(available % mBytesPerFrame == 0, "Must copy complete frames");
AudioDataValue* output = reinterpret_cast<AudioDataValue*>(aBuffer);
uint32_t underrunFrames = 0;
uint32_t servicedFrames = 0;
int64_t insertTime;
mShouldDropFrames = false;
// NOTE: wasapi (others?) can call us back *after* stop()/Shutdown() (mState == SHUTDOWN)
// Bug 996162
// callback tells us cubeb succeeded initializing
if (mState == STARTED) {
// For low-latency streams, we want to minimize any built-up data when
// we start getting callbacks.
// Simple version - contract on first callback only.
if (mLatencyRequest == LowLatency) {
#ifdef PR_LOGGING
uint32_t old_len = mBuffer.Length();
#endif
available = mBuffer.ContractTo(FramesToBytes(aFrames));
#ifdef PR_LOGGING
TimeStamp now = TimeStamp::Now();
if (!mStartTime.IsNull()) {
int64_t timeMs = (now - mStartTime).ToMilliseconds();
PR_LOG(gAudioStreamLog, PR_LOG_WARNING,
("Stream took %lldms to start after first Write() @ %u", timeMs, mOutRate));
} else {
PR_LOG(gAudioStreamLog, PR_LOG_WARNING,
("Stream started before Write() @ %u", mOutRate));
}
if (old_len != available) {
// Note that we may have dropped samples in Write() as well!
PR_LOG(gAudioStreamLog, PR_LOG_WARNING,
("AudioStream %p dropped %u + %u initial frames @ %u", this,
mReadPoint, BytesToFrames(old_len - available), mOutRate));
mReadPoint += BytesToFrames(old_len - available);
}
#endif
}
mState = RUNNING;
}
if (available) {
// When we are playing a low latency stream, and it is the first time we are
// getting data from the buffer, we prefer to add the silence for an
// underrun at the beginning of the buffer, so the first buffer is not cut
// in half by the silence inserted to compensate for the underrun.
if (mInRate == mOutRate) {
if (mLatencyRequest == LowLatency && !mWritten) {
servicedFrames = GetUnprocessedWithSilencePadding(output, aFrames, insertTime);
} else {
servicedFrames = GetUnprocessed(output, aFrames, insertTime);
}
} else {
servicedFrames = GetTimeStretched(output, aFrames, insertTime);
}
NS_ABORT_IF_FALSE(mBuffer.Length() % mBytesPerFrame == 0, "Must copy complete frames");
// Notify any blocked Write() call that more space is available in mBuffer.
mon.NotifyAll();
} else {
GetBufferInsertTime(insertTime);
}
underrunFrames = aFrames - servicedFrames;
// Always send audible frames first, and silent frames later.
// Otherwise it will break the assumption of FrameHistory.
if (mState != DRAINING) {
mAudioClock.UpdateFrameHistory(servicedFrames, underrunFrames);
uint8_t* rpos = static_cast<uint8_t*>(aBuffer) + FramesToBytes(aFrames - underrunFrames);
memset(rpos, 0, FramesToBytes(underrunFrames));
if (underrunFrames) {
PR_LOG(gAudioStreamLog, PR_LOG_WARNING,
("AudioStream %p lost %d frames", this, underrunFrames));
}
servicedFrames += underrunFrames;
} else {
mAudioClock.UpdateFrameHistory(servicedFrames, 0);
}
WriteDumpFile(mDumpFile, this, aFrames, aBuffer);
// Don't log if we're not interested or if the stream is inactive
if (PR_LOG_TEST(GetLatencyLog(), PR_LOG_DEBUG) &&
mState != SHUTDOWN &&
insertTime != INT64_MAX && servicedFrames > underrunFrames) {
uint32_t latency = UINT32_MAX;
if (cubeb_stream_get_latency(mCubebStream.get(), &latency)) {
NS_WARNING("Could not get latency from cubeb.");
}
TimeStamp now = TimeStamp::Now();
mLatencyLog->Log(AsyncLatencyLogger::AudioStream, reinterpret_cast<uint64_t>(this),
insertTime, now);
mLatencyLog->Log(AsyncLatencyLogger::Cubeb, reinterpret_cast<uint64_t>(mCubebStream.get()),
(latency * 1000) / mOutRate, now);
}
return servicedFrames;
}
void
AudioStream::StateCallback(cubeb_state aState)
{
MonitorAutoLock mon(mMonitor);
MOZ_ASSERT(mState != SHUTDOWN, "No state callback after shutdown");
LOG(("AudioStream: StateCallback %p, mState=%d cubeb_state=%d", this, mState, aState));
if (aState == CUBEB_STATE_DRAINED) {
mState = DRAINED;
} else if (aState == CUBEB_STATE_ERROR) {
LOG(("AudioStream::StateCallback() state %d cubeb error", mState));
mState = ERRORED;
}
mon.NotifyAll();
}
AudioClock::AudioClock(AudioStream* aStream)
:mAudioStream(aStream),
mOutRate(0),
mInRate(0),
mPreservesPitch(true),
mFrameHistory(new FrameHistory())
{}
void AudioClock::Init()
{
mOutRate = mAudioStream->GetRate();
mInRate = mAudioStream->GetRate();
}
void AudioClock::UpdateFrameHistory(uint32_t aServiced, uint32_t aUnderrun)
{
mFrameHistory->Append(aServiced, aUnderrun, mOutRate);
}
int64_t AudioClock::GetPositionUnlocked() const
{
// GetPositionInFramesUnlocked() asserts it owns the monitor
int64_t frames = mAudioStream->GetPositionInFramesUnlocked();
NS_ASSERTION(frames < 0 || (mInRate != 0 && mOutRate != 0), "AudioClock not initialized.");
return frames >= 0 ? mFrameHistory->GetPosition(frames) : -1;
}
int64_t AudioClock::GetPositionInFrames() const
{
return (GetPositionUnlocked() * mInRate) / USECS_PER_S;
}
void AudioClock::SetPlaybackRateUnlocked(double aPlaybackRate)
{
mOutRate = static_cast<int>(mInRate / aPlaybackRate);
}
double AudioClock::GetPlaybackRate() const
{
return static_cast<double>(mInRate) / mOutRate;
}
void AudioClock::SetPreservesPitch(bool aPreservesPitch)
{
mPreservesPitch = aPreservesPitch;
}
bool AudioClock::GetPreservesPitch() const
{
return mPreservesPitch;
}
} // namespace mozilla