Commit Graph

3135 Commits

Author SHA1 Message Date
Chris Pearce
43db4d6491 Bug 945947 - Re-enable DirectShow for MP3 playback on Vista and later. r=ajones
We disabled MP3 playback on Windows using DirectShow as the duration was
being incorrectly reported. While DirectShow was disabled, we supported
MP3 playback via Windows Media Foundation, and we still used DirectShow
on WinXP. Now that bug 918135 has landed the duration calculation has
been fixed, so we can re-enable DirectShow for MP3 playback for all
Windows versions. This enables us to avoid suffering from bug 882537 for
MP3 on Windows.
2013-12-04 13:47:39 +13:00
Chris Pearce
14c1e2ca4c Bug 945085 - Improve comments in PlatformDecoderModule.h. r=kinetik
Adds comments to PlatformDecoderModule.h, and describes the call model
better. Renames CreateAudioDecoder and CreateVideoDecoder to
CreateAACDecoder and CreateH264Decoder. We may change them to accept a
codec parameter and have more general names in future when we need to
support more codecs here.
2013-12-04 13:47:12 +13:00
Shelly Lin
8873339903 Bug 941283 - OpusTrackEncoder should write pre-skip at the original samplerate. r=rillian 2013-12-02 11:54:35 +08:00
Jan Gerber
d3041f814e Bug 884275 - Report 'maybe' instead of 'probably' from canPlayType('video/webm'). r=rillian 2013-12-03 08:50:30 -05:00
Carsten "Tomcat" Book
e8b7ad5f14 Merge m-c to mozilla-inbound 2013-12-03 11:29:37 +01:00
Carsten "Tomcat" Book
6b8ed20e59 merge b2g-inbound to mozilla-central 2013-12-03 10:41:51 +01:00
Mike Hommey
c73581c5a6 Bug 945532 - Add missing includes in OpusParser.h. r=kinetik 2013-12-03 12:30:47 +09:00
Mike Hommey
0ff7478a84 Bug 945532 - Kill LE* functions in OggCodecState.cpp and use Endian.h functions instead. r=kinetik 2013-12-03 12:30:45 +09:00
Ralph Giles
e2b0162596 Bug 938686 - Fix a signed-comparison warning. r=BUSTAGE CLOSED TREE 2013-12-02 16:25:22 -08:00
Karl Tomlinson
06680fb48c b=938450 use an OfflineAudioContext to test decodeAudioData at different sample rates f=padenot
--HG--
extra : transplant_source : %CF.%22r%F8%BB%D7%21%17%E9%96%19y1%5B%D0%E6%F0%D1%18
2013-12-03 12:23:49 +13:00
Karl Tomlinson
e945bf9c01 b=938450 load the expected file only once and remove unused monoTest parameter
--HG--
extra : transplant_source : %8C%A4%04%FB%9E%F3%1D%90%DB%C7%B1-e.%1C%08%B7%84%7Fl
2013-12-03 12:21:00 +13:00
Karl Tomlinson
fb8b48b239 b=938450 reduce the number of offset parameters to compareChannels() f=ehsan
findFirstNonZeroSample() won't return an offset > buffer length, so clamping
the result to <= 2048 is not necessary.

--HG--
extra : transplant_source : %28HV%B3%9A%AA%D6%8C6n%FD%18%AE%D6g%83%03%EA%09%D4
2013-12-03 12:20:46 +13:00
Karl Tomlinson
254bd0d87e b=938450 rename compareBuffers to compareChannels & add compareBuffers f=ehsan
--HG--
extra : transplant_source : %93W%BC%84%FF%10%9B%F5%CD5%98%0E%F0/%F2R%B9W%1E%94
2013-12-03 12:13:15 +13:00
Karl Tomlinson
3d801a1806 b=938450 test lengths of decoded audio and change 48k wav files to 48k f=padenot
New wave files differ from those generated from ogg files using sox 14.4.1 and
libvorbis 1.3.3 by being one quantum less on about half of the samples.

--HG--
extra : transplant_source : B%27%8F%2B%40%22%C5%25%0CS%22%28%40%C0%C3%0EM%87%87%A7
2013-12-03 12:10:38 +13:00
Karl Tomlinson
50bcc068a7 b=938450 process all input samples in decodeAudioData r=padenot
--HG--
extra : transplant_source : %01%B2%FE%DA%BE%2CcX%B9%A7%60%15%FB%08%C5%2AS%99%B28
2013-12-03 12:09:01 +13:00
Karl Tomlinson
76bf3e40c2 b=937057 provide a null ptr instead of a zero buffer when processing resampler tail r=padenot
--HG--
extra : transplant_source : %8EK%22q%A6%E9%82%F1%5E-%9E%BEs%01%F1%D1Jj%097
2013-12-03 12:07:17 +13:00
Karl Tomlinson
8cdb723e52 b=937475 separate stream position from buffer position so that stop time can use stream position r=ehsan
--HG--
extra : transplant_source : %8C%F0%05w%0A%C6%21%11%D5A4%85%FD%BC%D6%1F%9A%B8%FE%CB
2013-12-03 12:07:17 +13:00
Karl Tomlinson
3432499e21 b=937475 change DURATION from end-offset to duration and compare buffer length using integer sample count r=ehsan
--HG--
extra : transplant_source : %2BS%A0%A1%C04%BC%1D%A7vDh%8E%A4%F7%90%E62%DC%3D
2013-12-03 12:07:17 +13:00
Karl Tomlinson
6bef079a18 b=939491 avoid producing infinite stream of subnormals in BiquadFilterNode tail r=padenot
Using double precision for the processing means the main loop is unlikely to
encounter subnormals and provides suitable extra precision to minimize
accumulation of error.

If the tail output values are denormalized when converted to single precision
then flush them to zero to reduce downstream computation cost.

--HG--
extra : transplant_source : %08%09u%C48%E3i%AB%23%1B%D8_kz%E5%A8_%3D%C4%93
2013-12-03 12:07:16 +13:00
Sotaro Ikeda
9c774494a5 Bug 941274 - Fix ResetDecode in MediaOmxReader. r=doublec 2013-12-02 22:38:16 -05:00
Jan Gerber
74f2ef3c2f Bug 938686 - Support Opus in WebM. r=kinetik
Support the Opus audio codec in the WebM (Matroska) container.
This is part of the "WebM 2" proposed spec, which also includes
the new VP9 video codec. Alas we weren't able to get concensus
to change the doctype of filename extension to mark the revision
allowing the new codecs.
2013-11-22 14:07:00 -08:00
Jan Gerber
3be2d03195 Bug 938686 - Refactor Opus header parsing so it can be reused. r=kinetik
We want to be able to use the same header parser for both the WebM
and Ogg readers.
2013-11-22 14:06:00 -08:00
Ryan VanderMeulen
9e82f773a2 Merge inbound to m-c. 2013-12-02 16:39:00 -05:00
Sotaro Ikeda
bc039bb881 Bug 929029 - Use nsMainThreadPtrHandle in MediaResource. r=roc, r=doublec 2013-12-02 10:22:33 -05:00
Ryan VanderMeulen
e24908d616 Backed out changesets 720a36d92d37 and c24da899172a (bug 926746) for frequent timeouts/hangs in test_dataChannel_basicAudio.html. 2013-12-02 14:05:19 -05:00
Ryan VanderMeulen
0464ebbd62 Backed out changeset a1628c9ba4af (bug 929029) for timeouts/crashes in test_dataChannel_basicAudio.html. 2013-12-02 12:12:45 -05:00
Shelly Lin
0aab79cdb8 Bug 945135 - Part 2: Add VideoTrackEncoder. r=roc 2013-12-02 15:52:54 +08: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
Jan Gerber
bd090158c7 Bug 938686 - Make OggReader::DownmixToStereo public static. r=rillian
We want this to be available to the WebM reader as well.
2013-11-14 10:16:00 -08:00
Ryan VanderMeulen
e57afbe1f2 Merge m-c to inbound. 2013-12-02 16:58:15 -05:00
Edwin Flores
2dcc290033 Bug 918135 - More tests for MP3FrameParser r=cpearce
This patch introduces two more MP3 test cases to exercise MP3FrameParser:
* vbr-head.mp3: This file contains a Xing header which gives an exact duration
    of 10 seconds. However, it only contains 4 MP3 frames total for a real
    duration of around 1 second. It is expected that we read the Xing header
    and report 10 seconds.
* huge-id3.mp3: This file contains more than 130KB of ID3 tags. When we search
    for MP3 frames, we give up after X KB of non-MP3 data. ID3 tags should not
    count towards the non-MP3 count, since they can be very large. This test
    case makes sure the skipping of ID3 tags works correctly.
2013-12-03 10:25:28 +13:00
Edwin Flores
ad6b57b100 Bug 918135 - Reduce MAX_SKIPPED_BYTES in MP3FrameParser r=cpearce
Now that we have stopped counting ID3 tags towards our count of non-MP3 data in
the MP3 frame parser, our threshold for claiming a stream is not MP3 can be far
lower than before.
2013-12-03 10:25:28 +13:00
Edwin Flores
740ce45445 Bug 918135 - Use MP3FrameParser in GStreamer backend for MP3 duration estimation r=cpearce
This patch adds support for our home-grown MP3 frame parser to the GStreamer
backend so that our duration estimation is consistent across all platforms.
2013-12-03 10:25:28 +13:00
Edwin Flores
39b4d9dbec Bug 918135 - Windows-specific changes for MP3FrameParser refactor r=cpearce 2013-12-03 10:25:27 +13:00
Edwin Flores
6510155080 Bug 918135 - Parse VBR headers in MP3FrameParser for calculating exact duration r=cpearce
This patch adds support for Xing and VBRI headers to MP3FrameParser so that we
can calculate the exact duration of an MP3 file if these headers are present.
It is also now more robust against large ID3 tags and discontinuities in input.
2013-12-03 10:25:27 +13:00
Shelly Lin
b594415261 Bug 945135 - Part 1: Refactor of TrackEncoder and AudioTrackEncoder. r=roc 2013-11-12 10:29:09 +08:00
Ryan VanderMeulen
b391dde096 Merge m-c to b2g-inbound. 2013-12-02 10:38:28 -05:00
Robert O'Callahan
b55ef5ba0d Bug 938022. Part 6: Have MediaDecoder/MediaDecoderStateMachine that's producing a MediaStream use that stream's current time as the media clock. r=padenot
We monitor the stream's output current time via a new MediaStreamListener
owned by DecodedStreamData. We also track its main-thread Finished status.
While we're writing to a DecodedStreamData stream that hasn't finished its
output, we stay in the DECODER_STATE_COMPLETED state so we can keep updating
video and firing timeupdates.

GetClock() uses the DecodedStreamData stream's current time as the source for
the clock if there is one.

--HG--
extra : rebase_source : aba1d092d3d347e26ebd823d61fcbfa40a8cd1fe
2013-12-02 10:09:06 +13:00
Sotaro Ikeda
5dea3e9bb1 Bug 929029 - Use nsMainThreadPtrHandle in MediaResource. r=roc, r=doublec 2013-12-02 10:22:33 -05:00
Steven Lee
3ef5b00db7 Bug 926746 - Part 2: nsContentPermissionHelper set grant information to GonkPermission. r=jesup 2013-12-02 10:21:51 -05:00
Robert O'Callahan
81716d992d Bug 938022. Part 5: Add aCurrentTime parameter to MediaStreamListener::NotifyOutput and fire notifications when the MediaStreamGraph is in a good state. r=padenot
--HG--
extra : rebase_source : 79edce8650fdb7af315df5006ec3b91dc9fd869f
2013-11-26 00:59:49 +13:00
Robert O'Callahan
f2b4eea4b6 Bug 938022. Part 4: Add MediaTimeToMicroseconds. r=cpearce
--HG--
extra : rebase_source : 4c28f1b4babfbccc86bdacb9cc54810a307da8bb
2013-11-26 00:57:26 +13:00
Robert O'Callahan
96642f41df Bug 938022. Part 2: Block captured MediaStream when the MediaDecoderStateMachine is not playing. r=cpearce
--HG--
extra : rebase_source : 01d887b3b5917b7c51a286d61feb10e7b2426d9a
2013-11-23 22:48:24 +13:00
Robert O'Callahan
6748566aed Bug 938022. Part 1: Update mAudioEndTime from SendStreamData. r=cpearce
--HG--
extra : rebase_source : 2cbb5dcbe4d97e21f276559c5fb7dac99d919a2b
2013-11-23 00:33:24 +13:00
Ms2ger
a129edb4cb Merge mozilla-inbound to mozilla-central. 2013-11-29 09:54:12 +01:00
Ms2ger
f56294acdb Bug 937258 - Part a: Remove empty makefiles; r=gps 2013-11-28 15:25:40 +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
Nicholas Nethercote
df39d9afe9 Bug 936964 (part 4, attempt 2) - Make MediaMemoryTracker ref-counted. r=kinetik.
--HG--
extra : rebase_source : fb032c262779678a33baa80700f448d3c9c469d3
2013-11-25 16:01:31 -08:00