Alexandros Chronopoulos
517f9c59b4
Bug 790458 - Support multichannel Opus on mobile. r=rillian
...
Previously we stereo playback of multichannel Opus files only
for the floating-point audio pipeline.
This commit adds a fixed-point version of the downmix matricies
for use with the integer sample type used on most mobile platforms.
2013-01-23 16:44:00 -08:00
Paul Adenot
e375707db6
Bug 804875 - Reset media element when loading a new src. r=kinetik
2013-01-24 20:28:48 +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
Paul Adenot
d5687c284b
Bug 804875 - Reset media element when loading a new src. r=kinetik
2013-01-15 19:57:03 +01:00
Mats Palmgren
6c53161814
Bug 786533 - Replace NS_MIN/NS_MAX with std::min/std::max and #include <algorithm> where needed. r=ehsan
2013-01-15 13:22:03 +01:00
Masatoshi Kimura
b5e27745c8
Bug 824247 - Part 3: Disable FAIL_ON_WARNINGS on not-yet-warning-free directories on MSVC. r=ted
2013-01-03 00:56:38 +09:00
Ralph Giles
6dd8bd1cc2
Bug 816994 - Skip Opus packets with invalid lengths. r=derf
...
Reject Opus packets less than 2.5 ms or more than 120 ms
in length, which are invalid by the spec. Also explicitly
check for error after opus_packet_get_nb_frames() since
this could indicate the subsequent call to
opus_packet_get_samples_per_frame() call will segfault
because the packet buffer length is invalid.
Based on a patch by Tim Terriberry.
2012-12-11 11:25:10 -08:00
Jeff Walden
7146c23e80
Bug 820570 - Move mozilla::DebugOnly into DebugOnly.h to pare down the grab-baggish Util.h. r=Ms2ger
2012-12-14 18:58:45 -05:00
Paul Adenot
8890b245de
Bug 816949 - Remove IsSeekableInBufferedRange() methods as they are not needed anymore. r=cpearce
2012-12-07 14:30:03 +01:00
Paul Adenot
70f94dbb33
Bug 817403 - Remove the preskip check when playing opus chained file. r=derf
2012-12-03 15:44:26 +01:00
Paul Adenot
a641c73fd5
Bug 455165 - Add support for chained ogg audio file and proper metadata dispatching. r=cpearce
2012-11-30 14:17:54 +01:00
Paul Adenot
c1c81fcc33
Bug 815194 - Remove more ns prefixes on content/media classes + whitespace fixes. r=cpearce
2012-11-28 20:40:07 +01:00
Ehsan Akhgari
136a70ea49
Bug 814757 - Export all decoder reader headers; r=cpearce
2012-11-23 14:52:39 -05:00
Ehsan Akhgari
54bc84b0b4
Bug 814756 - Disambiguate PacketQueue; r=cpearce
2012-11-23 14:47:45 -05:00
Ehsan Akhgari
d5bdac2156
Bug 812032 - Refactor the media reader classes to not access MediaDecoder directly; r=cpearce
2012-11-19 10:11:21 -05:00
Timothy B. Terriberry
07dba69579
Bug 812847 - Validate Opus channel count, r=kinetik
2012-11-18 05:54:52 -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
Chris Pearce
42d7fd21b1
Bug 811381 - Move media code into mozilla namespace. r=roc
2012-11-14 11:45:33 -08:00
Chris Pearce
43653d0ccc
Bug 811381 - Move NextFrameStatus to MediaDecoderOwner, so that nsHTMLMediaElement doesn't need to include all of nsBuiltinDecoder. r=roc
2012-11-14 11:45:31 -08:00
Chris Pearce
f9e8b1f20a
Bug 811381 - Flatten nsMediaDecoder and nsBuiltinDecoder into a single class. r=roc
2012-11-14 11:45:13 -08: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
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
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
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
22fe237724
Bug 799344 - Flatten nsBultinDecoderStateMachine and nsDecoderStateMachine into a single class. r=roc
2012-11-07 11:33:02 +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
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
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
Isaac Aggrey
997db4d142
Bug 791906: Replace NSPR integer limit constants with stdint ones; r=ehsan
2012-09-28 01:57:33 -05:00
Ralph Giles
f7b40c94e9
Bug 778050 - Support Opus tag metadata. r=derf
...
Remember parsed comments from the OpusTags header in
an array member variable. Add a method to generate
the nsHTMLMediaElement::MetadataTags hash table from
those entries, performing the same validatation we
do for Vorbis.
This feature is tested by adding the existing opus
test file to gMetadataTests.
IsValidVorbisTagName is moved to a static method
on nsOggCodecState so it can be shared among the
subclasses and easily called externally.
MetadataTags generation for Vorbis streams is moved
to the same method name on nsVorbisState to allow
sharing of the parsing and validation code as much
as possible, since both formats use the same scheme.
It's arguable whether contrustuction better belongs to
nsOggReader or to the nsCodecState subclasses, since in
theory the various multiplexed streams interact in
determining the canonical tag list, but it is the
per-codec streams which contain the metadata in Ogg.
2012-09-17 18:42:36 -04:00
Ralph Giles
9041e67bc8
Bug 790381 - Remove custom extern "C" on opus_multistream.h. r=derf
...
Bug 748144 switched our opus decoding to use the
opus_multistream api so we could handle surround
audio files. The version of opus in our tree at
the time didn't include extern "C" {} protection
in the corresponding header, so we had to provide
our own.
With the update to the opus 1.0.0 source release
in bug 790381, this oversight is corrected and
we can remove our work-around.
2012-09-12 16:59:05 -04:00
Ralph Giles
44ed4e2811
Bug 789617 - Improve vorbis comment validation. r=cpearce
...
Verify that tag names are ASCII within the valid character
ranges and that values are UTF-8, skipping comments where
these checks fail.
As written, the check in IsValidVorbisTagName() for the
separator character isn't necessary, because we've already
split on the first occurance. However, it's better to run
the extra check in case the function is reused elsewhere.
2012-09-10 13:49:00 -07:00
David Anderson
043ddae94a
Merge from mozilla-central.
...
--HG--
rename : js/jsd/jsd_scpt.c => js/jsd/jsd_scpt.cpp
rename : js/jsd/jsd_stak.c => js/jsd/jsd_stak.cpp
rename : js/jsd/jsd_val.c => js/jsd/jsd_val.cpp
2012-09-05 16:18:11 -07:00
David Anderson
188c88907e
Merge from mozilla-central.
2012-08-22 16:09:24 -07:00
David Anderson
1ef4c57410
Merge from mozilla-central.
2012-08-21 15:59:12 -07:00
David Anderson
7ef28ac5ac
Merge from mozilla-central.
2012-08-13 13:40:42 -07:00
Alexandros Chronopoulos
b42d0e9db4
Bug 748144 - Support multichannel Opus files. r=rillian
...
The Opus audio format supports multichannel (surround) audio, but our initial implementation used a simpler API which only supported mono and stereo output.
To handle these files gracefully, this patch uses the multichannel api and downmixes the output, if possible, to stereo, since we don't currently support surround sound playback.
2012-08-09 15:53:23 -07:00
Ehsan Akhgari
0fd9123eac
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
Timothy B. Terriberry
2a9b2b883f
Bug 787788 - Fix downmixing weights for 6.1 Opus files, r=rillian
2012-09-03 01:41:17 -07:00
Chris Pearce
3a0e137bc4
Bug 786924 - Estimate Ogg buffered ranges on B2G to avoid main thread I/O. r=kinetik
2012-09-03 10:56:29 +12:00
David Anderson
9c45c01c55
Merge from mozilla-central.
...
--HG--
rename : layout/base/nsFrameTraversal.cpp => layout/base/nsFrameIterator.cpp
rename : layout/base/nsFrameTraversal.h => layout/base/nsFrameIterator.h
rename : browser/modules/WebappsInstaller.jsm => toolkit/webapps/WebappsInstaller.jsm
2012-08-06 12:44:06 -07:00
David Anderson
bee6a61001
Merge.
...
--HG--
rename : content/base/src/nsGenericElement.h => content/base/public/FragmentOrElement.h
rename : content/base/src/nsGenericElement.cpp => content/base/src/FragmentOrElement.cpp
rename : gfx/thebes/nsCoreAnimationSupport.mm => gfx/2d/QuartzSupport.mm
2012-08-01 11:30:00 -07:00
Chris Pearce
1448181589
Bug 778105 - Fix an nsOggReader::GetBuffered() return value type mismatch. r=doublec
2012-08-01 13:24:25 +12:00
David Anderson
9929d37fcc
Merge from mozilla-central.
2012-07-31 17:19:41 -07:00
David Anderson
644c651c3e
Merge from mozilla-central.
2012-07-30 13:15:39 -07:00
Aryeh Gregor
e806eeab4f
Bug 777292 part 2 - Change all nsnull to nullptr
2012-07-30 17:20:58 +03:00
David Anderson
5fc5a16b63
Merge from mozilla-central.
2012-07-24 16:32:08 -07:00