Randell Jesup
4722e9943c
Bug 1033066: Never let AudioSegments underflow mDuration and cause OOM allocation r=karlt
2014-09-26 14:13:17 -04:00
Ehsan Akhgari
80e34a12ae
Bug 1060980 - Fix more bad implicit constructors in the media code; r=roc
...
--HG--
extra : rebase_source : 14da50f7d2e37e04452445dea575ea4d582e8efd
2014-08-31 23:50:23 -04:00
Paul Adenot
bbfde0ac74
Bug 848954 - Part 5 - Mix down all audio and only output a single stream. r=roc
2014-08-25 15:25:49 +02:00
Paul Adenot
812ddf8e87
Bug 1028458 - Don't try to use a resampler when resampling segments to graph rate if we haven't instanciated one yet. r=karlt
...
--HG--
extra : rebase_source : 3b7696b3e89c1be0e338893578d81088f7182a3b
2014-06-26 14:01:01 +02:00
Andrea Marchesini
bc2d4f0706
Bug 1027172 - patch 2 - AudioContext should dispatch call AudioChannelAgent::StopPlaying() when the destination node doesn't have any input or it's muted., r=ehsan
...
--HG--
rename : content/media/webaudio/test/browser_mozAudioChannel.html => content/media/webaudio/test/browser_mozAudioChannel_muted.html
rename : content/media/webaudio/test/browser_mozAudioChannel.js => content/media/webaudio/test/browser_mozAudioChannel_muted.js
2014-06-24 22:15:36 -07:00
Randy Lin
58ecede7d1
Bug 1011149 - Video freezes when audio track is disabled on remote stream. r=jesup
2014-06-10 10:32:30 +08:00
Karl Tomlinson
0ad2c41273
b=1014862 assert that source track resamplers are used with the correct channel count r=padenot
...
--HG--
extra : rebase_source : cc28665fc90cf0bfc9f113b5e25f2c57a4948c9e
2014-06-09 12:11:41 +12:00
Karl Tomlinson
b6f7efd8b2
b=999267 ensure AudioSegment::Resample() processes all frames of each chunk r=padenot
...
--HG--
extra : rebase_source : e3128e9837c108b36b83cd3cf8762e549c5ef696
2014-06-09 12:11:08 +12:00
Paul Adenot
2e00926d9d
Bug 998711. r=jesup
2014-04-25 15:15:21 +02:00
Eric Rahm
1e1f443953
Bug 967817 - Finish memory reporters for Web Audio. r=roc, njn
2014-04-13 11:08:10 -07:00
Paul Adenot
88fea0ed9f
Bug 991504 - Detect silent chunk when resampling, and properly handle them. r=roc
2014-04-07 18:22:11 +02:00
Paul Adenot
857dad1c3a
Bug 982490 - Ensure for MSG cycle that each MediaStream write the same number of frames to their AudioStream. r=jesup,roc
2014-03-24 11:06:06 +01:00
Paul Adenot
c258f1f2ba
Bug 818822 - Resample all inputs of the MediaStreamGraph to the ideal audio rate. r=roc
2014-03-24 11:06:05 +01:00
Randell Jesup
69b613af38
Backed out changeset 5349ecd9c313 (bug 818822)
2014-04-07 15:40:55 -04:00
Randell Jesup
bc09c55542
Backed out changeset 87f437be7de5 (bug 982490)
2014-04-07 15:37:56 -04:00
Paul Adenot
07dbc23dd5
Bug 982490 - Ensure for MSG cycle that each MediaStream write the same number of frames to their AudioStream. r=jesup,roc
2014-03-24 11:06:06 +01:00
Paul Adenot
35375cac06
Bug 818822 - Resample all inputs of the MediaStreamGraph to the ideal audio rate. r=roc
2014-03-24 11:06:05 +01:00
Randell Jesup
3c5f8d49a1
Backed out 965c62289427:cb894b5d342f for perma-orange on b2g emulator M10 r=backout
2014-04-02 17:11:12 -04:00
Paul Adenot
cf8bdb40d2
Bug 982490 - Ensure for MSG cycle that each MediaStream write the same number of frames to their AudioStream. r=jesup,roc
2014-03-24 11:06:06 +01:00
Paul Adenot
702189fbc7
Bug 818822 - Resample all inputs of the MediaStreamGraph to the ideal audio rate. r=roc
2014-03-24 11:06:05 +01:00
Karl Tomlinson
5149f3ce4d
b=857610 handle DelayNode channel count changes and separate buffer read and write r=padenot
...
The basic idea is to write out the signal that came in with the same number of
channels as it had when it came in. Things get a bit more complicated when
one output block may be derived from more than one input block, each having
different numbers of channels. When this happens, the input blocks with fewer
channels are upmixed, so as not to lose (or distort) any signal in the block
with more channels.
HRTFPanner no longer uses exponential decay (with time constant 20ms) for
delay changes, but a smoother linear transition during cross-fade time (~45ms).
--HG--
rename : content/media/webaudio/DelayProcessor.cpp => content/media/webaudio/DelayBuffer.cpp
rename : content/media/webaudio/DelayProcessor.h => content/media/webaudio/DelayBuffer.h
extra : rebase_source : 18453d631779cd7d0672b5325e110b107ab4237d
2014-03-05 10:06:57 +13:00
Paul Adenot
2d0dfe212b
Bug 904617: Part 3 - Log latency, and adds a python script to understand the log r=padenot,jesup,ehugg
2013-01-28 19:22:37 +01:00
Ed Morley
5adbe6a145
Backed out changeset 81cee5ae7973 (bug 904617)
2013-09-16 08:43:47 +01:00
Paul Adenot
92c2527ea3
Bug 904617: Part 3 - Log latency, and adds a python script to understand the log r=padenot,jesup
2013-01-28 19:22:37 +01:00
Ehsan Akhgari
3b48889d78
Bug 912702 - Minimize the #includes in content/media; r=roc
2013-09-05 16:25:17 -04:00
Ehsan Akhgari
22fac42fb0
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
2ce2ec0cdb
Bug 912702 - Minimize the #includes in content/media; r=roc
2013-09-04 17:58:14 -04:00
Shelly Lin
f3b88db9f4
Bug 882956 - Fix WebAudio stack-buffer-overflow crash. r=ehsan.
2013-06-14 15:16:41 +08:00
Ehsan Akhgari
4e4cb968f6
Bug 881775 - Set the correct channel count in DownmixAndInterleave, and avoid unnecessary downmixing; r=roc
2013-06-11 17:50:21 -04:00
Shelly Lin
effe13c520
Bug 842243 - Part 0: Modify MediaSegment and AudioSegment for use by MediaEncoder. r=roc
2013-06-03 17:59:50 +08:00
Ehsan Akhgari
e0262ff6ca
Bug 866434 - Part 3: Mix in the value generated by AudioNode inputs to AudioParams when getting their values during audio processing; r=roc
2013-05-01 23:12:59 -04:00
Robert O'Callahan
5d60f92b6f
Bug 804387. Part 8: Create AudioNodeEngine and AudioNodeStream. r=jesup
...
Modifies MediaStreamGraph to always advance its time by a multiple of
WEBAUDIO_BLOCK_SIZE.
--HG--
extra : rebase_source : 99524b09edd4ac0e1bc6607f2ba14925bc2f11c2
2013-01-14 11:46:57 +13:00
Ehsan Akhgari
598f705578
Backed out 14 changesets (bug 804387) because of Android M2 crashes
...
Backed out changeset 80e8530f06ea (bug 804387)
Backed out changeset 3de2271ad47f (bug 804387)
Backed out changeset 00f86870931c (bug 804837)
Backed out changeset 0e3f20927c50 (bug 804387)
Backed out changeset e6ef90038007 (bug 804387)
Backed out changeset 0ad6f67a95f9 (bug 804387)
Backed out changeset d0772aba503c (bug 804387)
Backed out changeset 5477b87ff03e (bug 804387)
Backed out changeset 1d7ec5adc49f (bug 804387)
Backed out changeset 11f4d740cd6c (bug 804387)
Backed out changeset e6254d8997ab (bug 804387)
Backed out changeset 372322f3264d (bug 804387)
Backed out changeset 53d5ed687612 (bug 804387)
Backed out changeset 000b88ac40a7 (bug 804387)
2013-02-05 01:29:28 -05:00
Robert O'Callahan
85199704c0
Bug 804387. Part 8: Create AudioNodeEngine and AudioNodeStream. r=jesup
...
Modifies MediaStreamGraph to always advance its time by a multiple of
WEBAUDIO_BLOCK_SIZE.
2013-01-14 11:46:57 +13:00
Robert O'Callahan
ee2ea45fed
Bug 830707. Part 3: Don't constrain AudioSegment to a fixed number of channels. r=jesup
...
--HG--
extra : rebase_source : feacede00821b6673ce04c886a9c3727a4989404
2013-01-21 09:44:44 +13:00
Robert O'Callahan
f2ee4df1a0
Bug 827537. Refactor AudioChunk to support having separate buffers for each channel. r=jesup
...
--HG--
extra : rebase_source : 0aa26e1c3181d9fe5158520d4b33248bae0fa5d0
2012-11-22 18:04:27 +13:00
Chris Pearce
216fe28466
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
Chris Pearce
1d6dc9c020
Bug 811381 - Move media code into mozilla namespace. r=roc
2012-11-14 11:45:33 -08:00
Robert O'Callahan
8bd04e7aec
Bug 805254. Part 12: Simplify AudioSegment::WriteTo and related code now that the output format is known statically. r=kinetik
...
Also fixes what I think is a bug in InterleaveAndConvertBuffer converting S16 to S16.
Instead of clamping the volume, we should handle arbitrary volumes by falling back
to the float conversion path.
2012-10-25 23:09:41 +13:00
Robert O'Callahan
a0d739c463
Bug 805254. Part 7: Move SampleFormat to mozilla::AudioSampleFormat in its own file. r=kinetik
2012-10-25 23:09:40 +13:00
Robert O'Callahan
11cca22e78
Bug 805254. Part 4: Remove FORMAT_U8 from nsAudioStream::SampleFormat. r=kinetik
...
We also give nsWaveReader its own separate format enum.
2012-10-25 23:09:39 +13:00
Paul Adenot
d6650a6ddf
Bug 783953 - Rename MOZ_SAMPLE_TYPE_S16LE to MOZ_SAMPLE_TYPE_S16. r=kinetik,roc
2012-09-01 11:35:56 -04:00
Ehsan Akhgari
8c296bbcd4
Bug 579517 - Part 1: Automated conversion of NSPR numeric types to stdint types in Gecko; r=bsmedberg
...
This patch was generated by a script. Here's the source of the script for
future reference:
function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
! -wholename "*security/nss*" \
! -wholename "*/.hg*" \
! -wholename "obj-ff-dbg*" \
! -name nsXPCOMCID.h \
! -name prtypes.h \
-type f \
\( -iname "*.cpp" \
-o -iname "*.h" \
-o -iname "*.c" \
-o -iname "*.cc" \
-o -iname "*.idl" \
-o -iname "*.ipdl" \
-o -iname "*.ipdlh" \
-o -iname "*.mm" \) | \
xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}
convert PRInt8 int8_t
convert PRUint8 uint8_t
convert PRInt16 int16_t
convert PRUint16 uint16_t
convert PRInt32 int32_t
convert PRUint32 uint32_t
convert PRInt64 int64_t
convert PRUint64 uint64_t
convert PRIntn int
convert PRUintn unsigned
convert PRSize size_t
convert PROffset32 int32_t
convert PROffset64 int64_t
convert PRPtrdiff ptrdiff_t
convert PRFloat64 double
2012-08-22 11:56:38 -04:00
Robert O'Callahan
d3b9aab0ce
Bug 779715. Part 1: Add basic support for ProcessedMediaStreams. r=jesup
...
The main thing this patch does is to add ProcessedMediaStream objects and
MediaInputPorts connecting streams. ProcessedMediaStreams are an abstract
class that doesn't constrain what processing is actually performed, except
that for now we assume a stream's processing depends only on its inputs
window of data between mCurrentTime and mStateComputedTime.
This patch reorganizes the way the blocking status of each stream is computed.
The streams are partitioned into groups so that every stream which can affect
the blocking status of another stream is in the same group as that other stream.
We also add a pass to order the streams by dependency so we can process the streams
in order of dependency; this pass also identifies the streams that form part of a
cycle.
--HG--
extra : rebase_source : c45c931a264e73f295642a934500bbeaa6448774
2012-08-01 00:17:21 +12:00
Aryeh Gregor
57c0ad57fb
Bug 777292 part 2 - Change all nsnull to nullptr
2012-07-30 17:20:58 +03:00
Ms2ger
1c8f2530d8
Bug 754643 - Enable FAIL_ON_WARNINGS in content/media; r=cpearce f=roc
2012-05-18 10:29:38 +02:00
Robert O'Callahan
d76ff3d562
Bug 664918. Part 2: Create MediaSegment, AudioSegment and VideoSegment classes to manage intervals of media data. r=jesup
...
Also introduces a SharedBuffer class, representing a blob of binary data with threadsafe refcounting.
2012-04-30 15:11:19 +12:00