Commit Graph

1315 Commits

Author SHA1 Message Date
Ehsan Akhgari
f739744839 Bug 810177 - Part 4: Make nsMediaDecoder not depend on nsHTMLMediaElement; r=cpearce
The basic idea in this patch is to create an MediaDecoderOwner
interface which nsHTMLMediaElement would implement, and put everything
needed by nsMediaDeocder on that interface.  In addition to that,
there are a number of other cleanup patches which enables us to
eliminate many of the nsHTMLMediaElement.h #includes in the media code.
2012-11-09 00:52:53 -05:00
Ehsan Akhgari
94d2c303e6 Bug 810177 - Part 3: Move the IsFormatEnabled methods from nsHTMLMediaElement to nsMediaDecoder; r=cpearce
This patch moves the various Is{Format}Enabled methods to
nsMediaDecoder.  These methods are all implemented on top of prefs, and
they logically belong to the decoder class, because it needs to know
what media types it should be able to decode.  This also helps reduce
the dependency on nsHTMLMediaElement.h.
2012-11-08 21:46:10 -05:00
Ehsan Akhgari
0704216980 Bug 810177 - Part 2: Break MetadataTags out of nsHTMLMediaElements; r=cpearce
This patch simply moves the MetadataTags typedef to nsMediaDecoder.h to
reduce the dependencies on nsHTMLMediaElements.h.  The rest of the
changes are made to make this compile.
2012-11-08 19:40:08 -05:00
Ehsan Akhgari
12f30adf52 Bug 810177 - Part 1: Move NextFrameStatus to nsMediaDecoder; r=cpearce
This patch simply moves the NextFrameStatus enum to nsMediaDecoder and
reorganizes things so that they compile again.
2012-11-08 18:22:32 -05:00
Chris Pearce
f462e42fad Bug 799344 - Remove virtual from media state machine methods, since they're not inherited. r=roc 2012-11-07 11:33:02 +13:00
Chris Pearce
dc33e1da54 Bug 799344 - Flatten nsBultinDecoderStateMachine and nsDecoderStateMachine into a single class. r=roc 2012-11-07 11:33:02 +13:00
Chris Pearce
3b143c4c58 Bug 799344 - Un-templatify nsBuiltinDecoderReader::DecodeToFirstData() so that we don't need to know nsBuiltinDecoderStateMachine's interface in nsBuiltinDecoderReader.h. This means that nsBuiltinDecoderReader.h doesn't need to include nsBuiltinDecoderStateMachine.h when we move the state machine declaration from nsBuiltinDecoder.h to nsBuiltinDecoderStateMachine.h (in a later patch). nsBuiltinDecoderStateMachine.h needs to include nsBuiltinDecoderReader.h, so if nsBuiltinDecoderReader.h needed to include nsBuiltinDecoderStateMachine.h we'd have an include cycle, which is bad. r=roc 2012-11-07 11:33:01 +13:00
Chris Pearce
9ee26e5a65 Bug 799344 - Remove nsBuiltinDecoder::GetDecodeState(), so that nsBuiltinDecoder doesn't need to know about nsDecoderStateMachine::State. r=roc 2012-11-07 11:33:01 +13:00
Ehsan Akhgari
5114440464 Add the missing file for the test in bug 809654 2012-11-08 09:33:12 -05:00
Ehsan Akhgari
19a5f2cb0b Bug 809654 - Implement BiquadFilterNode; r=bzbarsky 2012-11-07 20:59:14 -05:00
Robert O'Callahan
6b2b2ee5c8 Bug 792675. Part 7: Add support for MediaStream URIs to media elements. r=cpearce
--HG--
extra : rebase_source : 1c27fa7038dcdd3ab4e7eac6219b2ed5a6affa4a
2012-09-25 15:25:43 +12:00
Robert O'Callahan
8e76b2dcac Bug 792675. Part 6: Extend createObjectURL to support MediaStreams. r=sicking
--HG--
extra : rebase_source : ffec7b146552362b576e88c6dea24d612a5860b9
2012-09-25 15:24:45 +12:00
Robert O'Callahan
d723594f8f Bug 792675. Part 4: Refactor nsBlobURI/nsBlobProtocolHandler to nsHostObjectURI/nsHostObjectProtocolHandler. r=sicking
The code to handle MediaStream URIs is almost the same as for Blobs, so share it.
nsHostObjectProtocolHandler is modified a bit to simplify method names. Also
we make nsHostObjectProtocolHandler::AddDataEntry take responsibility for
generating the URI to avoid duplicating that code later.
We need separate subclasses for each kind of host object protocol handler,
but we don't need separate subclasses for each kind of host object URI.

--HG--
rename : content/base/public/nsBlobProtocolHandler.h => content/base/public/nsHostObjectProtocolHandler.h
rename : content/base/src/nsBlobProtocolHandler.cpp => content/base/src/nsHostObjectProtocolHandler.cpp
rename : content/base/src/nsBlobURI.cpp => content/base/src/nsHostObjectURI.cpp
rename : content/base/src/nsBlobURI.h => content/base/src/nsHostObjectURI.h
extra : rebase_source : bfb1d7ea2813100a35f9a2054a67584e38f5f330
2012-09-25 15:24:44 +12:00
Ehsan Akhgari
8426704b9f Bug 809271 - Implement DynamicsCompressorNode; r=bzbarsky 2012-11-06 20:01:11 -05:00
Ryan VanderMeulen
4f33e32827 Backout 3f0e69962962, 84a1afc5b15e, c62f225d0dbb, 24870ebc9665, and dd7663e68657 (bug 799344) for mochitest-1 orange. 2012-11-06 19:36:49 -05:00
Chris Pearce
cce841e3bc Bug 799344 - Remove virtual from media state machine methods, since they're not inherited. r=roc 2012-11-07 11:33:02 +13:00
Chris Pearce
22fe237724 Bug 799344 - Flatten nsBultinDecoderStateMachine and nsDecoderStateMachine into a single class. r=roc 2012-11-07 11:33:02 +13:00
Chris Pearce
13826e54a7 Bug 799344 - Un-templatify nsBuiltinDecoderReader::DecodeToFirstData() so that we don't need to know nsBuiltinDecoderStateMachine's interface in nsBuiltinDecoderReader.h. This means that nsBuiltinDecoderReader.h doesn't need to include nsBuiltinDecoderStateMachine.h when we move the state machine declaration from nsBuiltinDecoder.h to nsBuiltinDecoderStateMachine.h (in a later patch). nsBuiltinDecoderStateMachine.h needs to include nsBuiltinDecoderReader.h, so if nsBuiltinDecoderReader.h needed to include nsBuiltinDecoderStateMachine.h we'd have an include cycle, which is bad. r=roc 2012-11-07 11:33:01 +13:00
Chris Pearce
ecd71d8846 Bug 799344 - Remove nsBuiltinDecoder::GetDecodeState(), so that nsBuiltinDecoder doesn't need to know about nsDecoderStateMachine::State. r=roc 2012-11-07 11:33:01 +13:00
Ed Morley
8eac9457d3 Bug 786539 - Disable test_timeupdate_small_files.html on Windows for too many intermittent timeouts 2012-11-06 22:26:03 +00:00
Ehsan Akhgari
5a4f074522 Bug 808876 - Part 1: Implement PannerNode; r=bzbarsky
--HG--
extra : rebase_source : a7b901dcc7758ff9c7a8917a956d0541187fea07
2012-11-05 21:14:13 -05:00
Ehsan Akhgari
3bcb2b8761 Backed out changeset ecf0c2a7cb9f (bug 808876) for build bustage 2012-11-05 22:30:08 -05:00
Ehsan Akhgari
ad84bd3d7f Bug 808876 - Implement PannerNode; r=bzbarsky 2012-11-05 21:14:13 -05:00
Ehsan Akhgari
d537c98fbc Bug 808841 follow-up: Add ThreeDPoint.h 2012-11-05 21:34:31 -05:00
Ehsan Akhgari
448c1c4497 Bug 808841 - Implement AudioContext.listener; r=bzbarsky 2012-11-05 19:26:03 -05:00
Ehsan Akhgari
972faa6f3c Bug 808374 - Balance holding and dropping the JS object references for AudioBuffers initialized with 0 channels; r=mmcr8 2012-11-05 13:49:35 -05:00
Robert O'Callahan
0cf4130886 Bug 787831. Keep TrackIDs instead of Track pointers to guard against Tracks being deleted. r=jesup 2012-11-02 23:42:59 +13:00
Ehsan Akhgari
41f9f14161 Bug 807533 - Implement DelayNode; r=bzbarsky
--HG--
extra : rebase_source : 36bb70c9f4b9c86fc1564447a34153d92fe7f347
2012-10-31 20:26:03 -04:00
Benoit Jacob
cc10ea918f Bug 806369 - Stagefright blacklisting. Also extends Android Gfxinfo to support blacklist rules by Android API version, Model, Product, Hardware, Manufacturer - r=joe,doublec 2012-11-01 17:13:10 -04:00
Ehsan Akhgari
8ba6137c34 Bug 807526 - Implement GainNode; r=bzbarsky 2012-10-31 15:09:32 -04:00
Ehsan Akhgari
205efbc82f Bug 807171 - Implement AudioParam.cancelScheduledValues; r=bzbarsky 2012-10-30 20:12:19 -04:00
Nathan Froyd
eb508945a4 Bug 807329 - fix AudioEventTimeline.h for compilers that don't support enum classes; r=ehsan 2012-10-31 11:58:42 -04:00
Ehsan Akhgari
a60888e51d Use #include guards in the web audio code, no bug 2012-10-30 17:39:38 -04:00
Nathan Froyd
bd55a07f0e Bug 806618 - rewrite PR_NewLogModule calls to not generate static initializers; r=ehsan 2012-10-29 19:32:10 -04:00
Ehsan Akhgari
451773ee5b Bug 803392 - Initial implementation of AudioParam; r=bzbarsky
This patch implements most of the semantics of AudioParam in a
templatized base class called AudioEventTimeline.  This is done in order
to make it possible to test this code from C++ without the need of
linking to libxul.  Basically we take everything that could depend on
libxul or is not suitable for a genertic implementation and put it in a
traits like type as a template argument.  Then the test creates mock
objects that conform to the argument interfaces, and tests the logic of
AudioEventTimeline.
2012-10-16 21:19:06 -04:00
Robert O'Callahan
8fe699d05c Bug 805703. Part 1: MediaStreamGraph::CreateInputStream -> CreateSourceStream. r=jesup
--HG--
extra : rebase_source : 3c327e9ead92508f12df4b95f2fd24fa2ba97ab5
2012-10-29 17:36:31 +13:00
Robert O'Callahan
91a7abe566 Bug 805721. Recursively mark streams as consumed starting at the consumption point and working backwards through the graph. r=jesup
--HG--
extra : rebase_source : ba2f2fd4755336bc429ba85cd7296c31fef8aabf
2012-10-29 17:34:17 +13:00
Matt Joras
d1fe98e6b3 Bug 798033 - Removes 'using namespace' from /content headers - r=bsmedberg 2012-10-27 13:24:04 -04:00
Phil Ringnalda
b6c07f4fe7 Back out c25bc74b7fd3 (bug 798033) for build bustage 2012-10-26 19:05:18 -07:00
Matt Joras
cc0bb2727c Bug 798033 - Removes 'using namespace' from /content headers - r=bsmedberg 2012-10-14 00:04:51 -05:00
Robert O'Callahan
c14b6532cb Bug 805771. Don't call NotifyPull after a stream has finished. r=jesup 2012-10-26 13:11:50 -04:00
Robert O'Callahan
981ed9e7ef Bug 805254. Part 13: Make nsAudioStream::Write take an AudioDataValue* parameter instead of void. r=kinetik 2012-10-25 23:10:51 +13:00
Robert O'Callahan
8d0872c840 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
ac69d1579a Bug 805254. Part 11: Move Vorbis-specific definitons into a new file VorbisUtils.h. r=kinetik 2012-10-25 23:09:41 +13:00
Robert O'Callahan
b80c14bd5b Bug 805254. Part 10: remove MOZ_CONVERT_AUDIO_SAMPLE. r=kinetik 2012-10-25 23:09:40 +13:00
Robert O'Callahan
d44792d2db Bug 805254. Part 9: Get rid of some more #ifdefs in nsWaveDecoder. r=kinetik 2012-10-25 23:09:40 +13:00
Robert O'Callahan
4dcad1fa98 Bug 805254. Part 8: Consolidate audio sample processing code using templates over the format types. r=kinetik
Replace nsAudioStream::Format with an AUDIO_OUTPUT_FORMAT enum value so we
can use it as a template parameter.

Introduce AudioSampleTraits<AudioSampleFormat> to give us access to the C++ type
corresponding to an enum value.

Move SampleToFloat/FloatToSample to AudioSampleFormat.h.

Introduce ConvertAudioSamples and ConvertAudioSamplesWithScale functions
and use them from various places.

Moves AudioDataValue to AudioSampleFormat.h. The name isn't great, but it'll do.
2012-10-25 23:09:40 +13:00
Robert O'Callahan
b1f3765e26 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
d92a1b5efc Bug 805254. Part 6: Replace some #ifdefs with if statements. r=kinetik
This is largely obsoleted by part 8. Sorry.
2012-10-25 23:09:39 +13:00
Robert O'Callahan
e0ece2f796 Bug 805254. Part 5: Remove format parameter from PAudio constructor. r=kinetik 2012-10-25 23:09:39 +13:00