Commit Graph

257 Commits

Author SHA1 Message Date
Paul Adenot
179f2a3ed4 Bug 804875 - Reset media element when loading a new src. r=kinetik 2012-12-27 16:21:30 +01:00
Randell Jesup
6fd94f18ed bug 804875: backout due to regressions of various uses of .src/mozSrcObject (bugs 836011/835705) rs=kinetik 2013-01-29 18:07:29 -05:00
Alexandros Chronopoulos
54d783f74f 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
2c42e0e1e8 Bug 804875 - Reset media element when loading a new src. r=kinetik 2013-01-24 20:28:48 +01:00
Ed Morley
3de1bf91c3 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
2998641c5b Bug 804875 - Reset media element when loading a new src. r=kinetik 2013-01-15 19:57:03 +01:00
Mats Palmgren
d5826be6d7 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
ecc812a3c0 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
1f0e16ab42 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
e0523203c9 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
c38f98b92e Bug 816949 - Remove IsSeekableInBufferedRange() methods as they are not needed anymore. r=cpearce 2012-12-07 14:30:03 +01:00
Paul Adenot
f4c449a171 Bug 817403 - Remove the preskip check when playing opus chained file. r=derf 2012-12-03 15:44:26 +01:00
Paul Adenot
57e360d284 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
556b71143b Bug 815194 - Remove more ns prefixes on content/media classes + whitespace fixes. r=cpearce 2012-11-28 20:40:07 +01:00
Ehsan Akhgari
46c9d70720 Bug 814757 - Export all decoder reader headers; r=cpearce 2012-11-23 14:52:39 -05:00
Ehsan Akhgari
506826b29f Bug 814756 - Disambiguate PacketQueue; r=cpearce 2012-11-23 14:47:45 -05:00
Ehsan Akhgari
f69801b25f 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
5efb5c507c Bug 812847 - Validate Opus channel count, r=kinetik 2012-11-18 05:54:52 -08: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
Chris Pearce
7cadd570a9 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
9473334bf2 Bug 811381 - Flatten nsMediaDecoder and nsBuiltinDecoder into a single class. r=roc 2012-11-14 11:45:13 -08:00
Ehsan Akhgari
0453689b72 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
4397a5852e 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
a0956a77b0 Bug 799344 - Flatten nsBultinDecoderStateMachine and nsDecoderStateMachine into a single class. r=roc 2012-11-07 11:33:02 +13:00
Chris Pearce
dee00040c9 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
a330ccbd1e Backout 3f0e69962962, 84a1afc5b15e, c62f225d0dbb, 24870ebc9665, and dd7663e68657 (bug 799344) for mochitest-1 orange. 2012-11-06 19:36:49 -05:00
Chris Pearce
5148e8b330 Bug 799344 - Flatten nsBultinDecoderStateMachine and nsDecoderStateMachine into a single class. r=roc 2012-11-07 11:33:02 +13:00
Chris Pearce
ace5511d82 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
8835709995 Bug 798033 - Removes 'using namespace' from /content headers - r=bsmedberg 2012-10-27 13:24:04 -04:00
Phil Ringnalda
56c57f466f Back out c25bc74b7fd3 (bug 798033) for build bustage 2012-10-26 19:05:18 -07:00
Matt Joras
5c9750a59e Bug 798033 - Removes 'using namespace' from /content headers - r=bsmedberg 2012-10-14 00:04:51 -05:00
Robert O'Callahan
3fe2b7b13b 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
0cc4b12d36 Bug 791906: Replace NSPR integer limit constants with stdint ones; r=ehsan 2012-09-28 01:57:33 -05:00
Ralph Giles
28dc7fce2d 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
5fbf150245 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
6e36658ee7 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
7b70ee195a 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
fd50a14c90 Merge from mozilla-central. 2012-08-22 16:09:24 -07:00
David Anderson
f3d3148ca7 Merge from mozilla-central. 2012-08-21 15:59:12 -07:00
David Anderson
0e509b2165 Merge from mozilla-central. 2012-08-13 13:40:42 -07:00
Alexandros Chronopoulos
d4807317cd 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
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
Timothy B. Terriberry
ae2508019e Bug 787788 - Fix downmixing weights for 6.1 Opus files, r=rillian 2012-09-03 01:41:17 -07:00
Chris Pearce
e94b1f315b 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
02b557e2ee 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
2e20aecd2c 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
ee625140f8 Bug 778105 - Fix an nsOggReader::GetBuffered() return value type mismatch. r=doublec 2012-08-01 13:24:25 +12:00
David Anderson
1b9c00384c Merge from mozilla-central. 2012-07-31 17:19:41 -07:00
David Anderson
0b6251a780 Merge from mozilla-central. 2012-07-30 13:15:39 -07:00