Commit Graph

41 Commits

Author SHA1 Message Date
Wes Kocher
9cc0508903 Backed out changeset 2e2c930a960c (bug 948269) for android 4.0 mochitest-2 permaorange 2013-12-19 19:24:42 -08:00
Matthew Gregan
70951c26f6 Bug 948269 - Split MediaDecoderStateMachine::AudioLoop out into new AudioSink class. r=cpearce 2013-12-20 13:52:06 +13:00
Alexandros Chronopoulos
d471b465db Bug 911482 - Perform audio downmix inside AudioStream class. r=rillian 2013-09-26 22:06:59 +03:00
Paul Adenot
58cae1ed05 Bug 944707 - Stop locking when getting the preferred samplerate from the AudioStream. r=kinetik
--HG--
extra : rebase_source : bbf7b305d13f252e7c743bb9abf12da078db865b
2013-12-09 20:54:49 +01:00
Paul Adenot
8d8f7eeda7 Bug 916384 and 944707 - Backed out fa872452b89d and 012b1baf2b19 for crashes on a CLOSED TREE. 2013-12-11 16:31:35 +01:00
Paul Adenot
2b28bb15ba Bug 944707 - Stop locking when getting the preferred sample rate from the AudioStream. r=kinetik
--HG--
extra : rebase_source : f2b5be30c25d71cfdb259cb5035335fb4e8a415c
2013-12-09 20:54:49 +01:00
Ehsan Akhgari
d4490ee3c7 Bug 947736 - Build modules/libpref/ in unified mode; r=bsmedberg 2013-12-10 18:10:01 -05:00
Matthew Gregan
9d3c6097af Backed out changeset 66be4716e86e (bug 944707) for regressing lazy libcubeb initialization, startup time, and causing bug 946037. 2013-12-09 11:49:25 +13:00
Paul Adenot
1aa9205cb3 Bug 944707 - Stop locking when getting the preferred samplerate from the AudioStream. r=kinetik
--HG--
extra : rebase_source : 7c9f858a63c41037fd44a85457cbf401f63c07a9
2013-12-02 15:58:11 +01:00
Matthew Gregan
358b7e64f0 Bug 942657 - Devirtualize AudioStream. r=doublec,gps 2013-11-28 18:09:08 +13:00
Benjamin Peterson
168ae22e9f backout dc9ebdf27e98 (bug 942657) for bustage 2013-11-28 20:50:16 -06:00
Matthew Gregan
647694fec9 Bug 942657 - Devirtualize AudioStream. r=doublec,gps 2013-11-28 18:09:08 +13:00
Paul Adenot
bb61e5a5d6 Bug 919215 - Start the AudioStream on creation when in low-latency mode, and let it underrun. r=roc
The BufferedAudioStream buffers the data it gets through the Write() calls and
what is consumed by the callback. This means that if the audio producer starts
Write()ing data right after Start()ing the stream, data will accumulate in this
buffer and won't be consumed. Eventually, the buffer will be of a certain size
before it begins to be consumed by the callback, and this means an
umcompressible latency (because the data will be written at more or less the
same rate as it is produced).

This patch start the BufferedAudioStream right away when it is created, dropping
the silent AudioSegment until it finds real data (and padding with silence is
then done at the beginning). The stream will underrun, but the callback will
synthetize silence, avoiding overbuffering in the BufferedAudioStream. This
ensures minimal latency cause by the buffering.

Note that the clock will still advance, so this will not change the behavior of
content that has leading silence.
2013-11-19 10:43:15 +13:00
Randell Jesup
ee8e35ca44 Bug 920325: Add WebRTC latency logging from capture to RTP and from RTP to speakers r=padenot 2013-10-25 18:13:42 -04:00
Randell Jesup
345ac3892d backout 5f38b1bd3358 for bustage CLOSED TREE 2013-10-25 19:25:54 -04:00
Randell Jesup
2e3491f74c Bug 920325: Add WebRTC latency logging from capture to RTP and from RTP to speakers r=padenot 2013-10-25 18:13:42 -04:00
Paul Adenot
7e0682e3c8 Bug 918861 - Expose a better samplerate though the AudioStream interface. r=kinetik
--HG--
extra : rebase_source : d085d173aeb00f47f56016c0a1d1bf7fe11fb6f3
2013-10-17 15:44:52 +02:00
Paul Adenot
2ecd0a5c7e Bug 907817 - Allow AudioStream users to pass-in latency requirements. r=kinetik
--HG--
extra : rebase_source : 3cf1971913b3cfd8000c58614b0d0be8b7805af0
2013-10-17 15:44:52 +02:00
Randell Jesup
f6a1a85cec Bug 917491: Guarantee cleanup of AsyncLatencyLogger on xpcom-shutdown r=bsmedberg 2013-09-24 22:10:24 -04:00
Ehsan Akhgari
143454cc1a Bug 912702 - Minimize the #includes in content/media; r=roc 2013-09-05 16:25:17 -04:00
Ehsan Akhgari
92ad73ef93 Backed out changeset 2f15518f566e (bug 912702) because of B2G JB Emulator build bustage
--HG--
extra : rebase_source : 6c01ad3bc2f91b0e7e3edab84aedbfe064310a8b
2013-09-05 13:29:38 -04:00
Ehsan Akhgari
be1e68caf3 Bug 912702 - Minimize the #includes in content/media; r=roc 2013-09-04 17:58:14 -04:00
Paul Adenot
4042de8a8d Bug 865244 - Expose the maximum channel count in the AudioStream. r=kinetik 2013-06-10 19:32:28 +02:00
Paul Adenot
43a8047fa7 Bug 825329 - Fix a stupid error in playbackRate. r=kinetik 2012-12-28 23:01:38 +01:00
Matthew Gregan
c7c49a4e9a Bug 852401 - Remove sydneyaudio. r=doublec
--HG--
rename : media/libsydneyaudio/src/gonk/AudioSystem.h => dom/system/gonk/android_audio/AudioSystem.h
rename : media/libsydneyaudio/src/gonk/AudioTrack.h => dom/system/gonk/android_audio/AudioTrack.h
rename : media/libsydneyaudio/src/gonk/EffectApi.h => dom/system/gonk/android_audio/EffectApi.h
rename : media/libsydneyaudio/src/gonk/IAudioFlinger.h => dom/system/gonk/android_audio/IAudioFlinger.h
rename : media/libsydneyaudio/src/gonk/IAudioFlingerClient.h => dom/system/gonk/android_audio/IAudioFlingerClient.h
rename : media/libsydneyaudio/src/gonk/IAudioRecord.h => dom/system/gonk/android_audio/IAudioRecord.h
rename : media/libsydneyaudio/src/gonk/IAudioTrack.h => dom/system/gonk/android_audio/IAudioTrack.h
rename : media/libsydneyaudio/src/gonk/IEffect.h => dom/system/gonk/android_audio/IEffect.h
rename : media/libsydneyaudio/src/gonk/IEffectClient.h => dom/system/gonk/android_audio/IEffectClient.h
2013-03-19 17:12:36 +13:00
Paul Adenot
ccf2d2ab5f Bug 846612 - r=kinetik 2013-03-04 15:48:58 +01:00
Matthew Gregan
da53b0d96e Bug 833578 - Start AudioSegment playing after first write rather than waiting for AudioStream's buffer to fill. r=roc 2013-01-23 18:53:10 +13:00
Paul Adenot
1f8e6e004c Bug 793274 - Make sure to have enough frames pushed to the AudioStream before starting it. r=kinetik 2012-11-26 15:13:08 +01:00
Paul Adenot
2aa6371d20 Bug 821737 - r=kinetik 2013-01-18 14:21:47 +01:00
Ed Morley
f91b0cbc29 Backout b3a8618f901c (bug 829042), 34a9ef8f929d (bug 822933), 4c1215cefbab (bug 826349), 70bb7f775178 (bug 825325), e9c8447fb197 (bug 828713), eb6ebf01eafe (bug 828901), f1f3ef647920 (bug 825329), f9d7b5722d4f (bug 825329), 5add564d4546 (bug 819377), 55e93d1fa972 (bug 804875), f14639a3461e (bug 804875), 23456fc21052 (bug 814308) for Windows pgo-only mochitest-1 media test timeouts on a CLOSED TREE 2013-01-16 15:16:23 +00:00
Ed Morley
34382ead59 Backout 1abf4c88f8f1 (bug 793274) on suspicion of causing win pgo-only mochitest-1 media test timeouts 2013-01-16 10:44:06 +00:00
Paul Adenot
b3491e3459 Bug 793274 - Make sure to have enough frames pushed to the AudioStream before starting it. r=kinetik 2012-11-26 15:13:08 +01:00
Paul Adenot
22a6f7cfee Bug 825329 - Fixed the getter for the playbackRate in AudioStream. r=kinetik 2013-01-15 19:57:03 +01:00
Paul Adenot
57189361a6 Bug 816143 - Teach AudioStream::EnsureTimeStretcherInitialized() about infallible malloc. r=kinetik 2012-11-29 15:40:57 +01:00
Jacek Caban
0f04abc26f Bug 814708 - Use nsAutoPtr for mTimeStretcher r=padenot
--HG--
extra : rebase_source : 6746cf104eac6b66bec48eb235718ad4d6853905
2012-11-28 17:25:57 +01:00
Paul Adenot
02703184c2 Bug 495040 - Implement playbackRate and related bits r=kinetik 2012-11-22 11:38:28 +01:00
Matthew Gregan
173e3e502c Bug 814292 - Remove mAudioPlaybackThread and AudioStream refcounting. r=cpearce 2012-11-22 16:38:39 +13:00
Matthew Gregan
ebafbaa44d Bug 813399 - Remove workarounds for sync main thread deadlocks caused by audio remoting. r=cpearce 2012-11-20 15:22:42 +13:00
Matthew Gregan
ce7dfa7c33 Bug 812937 - Remove unused audio remoting code. r=cjones 2012-11-19 13:54:29 +13:00
Marco Chen
88788c1c05 Bug 795237 - Web API for setting audio stream type. Part 2. r=kinetik, a=blocking-basecamp
Implementation on path of audio and video element
2012-11-16 11:25:26 +08:00
Chris Pearce
9abb830db0 Bug 811381 - Remove ns prefix from media code. r=roc
--HG--
rename : content/media/nsAudioAvailableEventManager.cpp => content/media/AudioAvailableEventManager.cpp
rename : content/media/nsAudioAvailableEventManager.h => content/media/AudioAvailableEventManager.h
rename : content/media/nsAudioStream.cpp => content/media/AudioStream.cpp
rename : content/media/nsAudioStream.h => content/media/AudioStream.h
rename : content/media/nsMediaCache.cpp => content/media/MediaCache.cpp
rename : content/media/nsMediaCache.h => content/media/MediaCache.h
rename : content/media/nsBuiltinDecoder.cpp => content/media/MediaDecoder.cpp
rename : content/media/nsBuiltinDecoder.h => content/media/MediaDecoder.h
rename : content/media/nsBuiltinDecoderReader.cpp => content/media/MediaDecoderReader.cpp
rename : content/media/nsBuiltinDecoderReader.h => content/media/MediaDecoderReader.h
rename : content/media/nsBuiltinDecoderStateMachine.cpp => content/media/MediaDecoderStateMachine.cpp
rename : content/media/nsBuiltinDecoderStateMachine.h => content/media/MediaDecoderStateMachine.h
rename : content/media/dash/nsDASHDecoder.cpp => content/media/dash/DASHDecoder.cpp
rename : content/media/dash/nsDASHDecoder.h => content/media/dash/DASHDecoder.h
rename : content/media/dash/nsDASHReader.cpp => content/media/dash/DASHReader.cpp
rename : content/media/dash/nsDASHReader.h => content/media/dash/DASHReader.h
rename : content/media/dash/nsDASHRepDecoder.cpp => content/media/dash/DASHRepDecoder.cpp
rename : content/media/dash/nsDASHRepDecoder.h => content/media/dash/DASHRepDecoder.h
rename : content/media/gstreamer/nsGStreamerDecoder.cpp => content/media/gstreamer/GStreamerDecoder.cpp
rename : content/media/gstreamer/nsGStreamerDecoder.h => content/media/gstreamer/GStreamerDecoder.h
rename : content/media/gstreamer/nsGStreamerReader.cpp => content/media/gstreamer/GStreamerReader.cpp
rename : content/media/gstreamer/nsGStreamerReader.h => content/media/gstreamer/GStreamerReader.h
rename : content/media/ogg/nsOggCodecState.cpp => content/media/ogg/OggCodecState.cpp
rename : content/media/ogg/nsOggCodecState.h => content/media/ogg/OggCodecState.h
rename : content/media/ogg/nsOggDecoder.cpp => content/media/ogg/OggDecoder.cpp
rename : content/media/ogg/nsOggDecoder.h => content/media/ogg/OggDecoder.h
rename : content/media/ogg/nsOggReader.cpp => content/media/ogg/OggReader.cpp
rename : content/media/ogg/nsOggReader.h => content/media/ogg/OggReader.h
rename : content/media/omx/nsMediaOmxDecoder.cpp => content/media/omx/MediaOmxDecoder.cpp
rename : content/media/omx/nsMediaOmxDecoder.h => content/media/omx/MediaOmxDecoder.h
rename : content/media/omx/nsMediaOmxReader.cpp => content/media/omx/MediaOmxReader.cpp
rename : content/media/omx/nsMediaOmxReader.h => content/media/omx/MediaOmxReader.h
rename : content/media/plugins/nsMediaPluginDecoder.cpp => content/media/plugins/MediaPluginDecoder.cpp
rename : content/media/plugins/nsMediaPluginDecoder.h => content/media/plugins/MediaPluginDecoder.h
rename : content/media/plugins/nsMediaPluginHost.cpp => content/media/plugins/MediaPluginHost.cpp
rename : content/media/plugins/nsMediaPluginHost.h => content/media/plugins/MediaPluginHost.h
rename : content/media/plugins/nsMediaPluginReader.cpp => content/media/plugins/MediaPluginReader.cpp
rename : content/media/plugins/nsMediaPluginReader.h => content/media/plugins/MediaPluginReader.h
rename : content/media/raw/nsRawDecoder.cpp => content/media/raw/RawDecoder.cpp
rename : content/media/raw/nsRawDecoder.h => content/media/raw/RawDecoder.h
rename : content/media/raw/nsRawReader.cpp => content/media/raw/RawReader.cpp
rename : content/media/raw/nsRawReader.h => content/media/raw/RawReader.h
rename : content/media/raw/nsRawStructs.h => content/media/raw/RawStructs.h
rename : content/media/wave/nsWaveDecoder.cpp => content/media/wave/WaveDecoder.cpp
rename : content/media/wave/nsWaveDecoder.h => content/media/wave/WaveDecoder.h
rename : content/media/wave/nsWaveReader.cpp => content/media/wave/WaveReader.cpp
rename : content/media/wave/nsWaveReader.h => content/media/wave/WaveReader.h
rename : content/media/webm/nsWebMBufferedParser.cpp => content/media/webm/WebMBufferedParser.cpp
rename : content/media/webm/nsWebMBufferedParser.h => content/media/webm/WebMBufferedParser.h
rename : content/media/webm/nsWebMDecoder.cpp => content/media/webm/WebMDecoder.cpp
rename : content/media/webm/nsWebMDecoder.h => content/media/webm/WebMDecoder.h
rename : content/media/webm/nsWebMReader.cpp => content/media/webm/WebMReader.cpp
rename : content/media/webm/nsWebMReader.h => content/media/webm/WebMReader.h
2012-11-14 11:46:40 -08:00