Commit Graph

3138 Commits

Author SHA1 Message Date
Karl Tomlinson
9e34766ff3 test for bug 937475
--HG--
extra : transplant_source : %BC%9F%D3%7FB%A2%93%F45%0E%A7%FD%BCXK%7D%D6I%29%8C
2013-12-04 14:40:38 +13:00
Karl Tomlinson
87c5a7f8be b=937057 remove resampler latency from BufferSource playback r=padenot
--HG--
extra : transplant_source : /pU%E1%EC%93%1F%04%29%7D%86%E7%C2%21%F6k%15%C0Bm
2013-12-04 14:20:12 +13:00
Karl Tomlinson
3e6429ba79 b=938450 test resampling by resampling back to original sample rate
--HG--
extra : transplant_source : z%D9%E8%9A%CC%0E%5B%A7%F3C%86%20%3BT%02%3F%06%CEzb
2013-12-03 20:29:24 +13:00
Chris Pearce
71d471a6a1 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
30fa90ca52 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
1e65bc6c2b Bug 941283 - OpusTrackEncoder should write pre-skip at the original samplerate. r=rillian 2013-12-02 11:54:35 +08:00
Jan Gerber
71a297452d Bug 884275 - Report 'maybe' instead of 'probably' from canPlayType('video/webm'). r=rillian 2013-12-03 08:50:30 -05:00
Carsten "Tomcat" Book
f56fb54723 Merge m-c to mozilla-inbound 2013-12-03 11:29:37 +01:00
Carsten "Tomcat" Book
02cebc7fa1 merge b2g-inbound to mozilla-central 2013-12-03 10:41:51 +01:00
Mike Hommey
d60fd89ff7 Bug 945532 - Add missing includes in OpusParser.h. r=kinetik 2013-12-03 12:30:47 +09:00
Mike Hommey
d12b03a5b8 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
543dcbace6 Bug 938686 - Fix a signed-comparison warning. r=BUSTAGE CLOSED TREE 2013-12-02 16:25:22 -08:00
Karl Tomlinson
75eb0073f7 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
b20fe1ce50 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
aa0a7e078f 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
45cc079f92 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
c2f93b452f 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
b56423c2be 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
3d689d137a 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
40a355cd1f 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
6595fc5808 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
c7825beee6 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
05a8724f6a Bug 941274 - Fix ResetDecode in MediaOmxReader. r=doublec 2013-12-02 22:38:16 -05:00
Jan Gerber
33d36a07dc 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
748f641e19 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
3c8b758627 Merge inbound to m-c. 2013-12-02 16:39:00 -05:00
Sotaro Ikeda
1b112bf8d3 Bug 929029 - Use nsMainThreadPtrHandle in MediaResource. r=roc, r=doublec 2013-12-02 10:22:33 -05:00
Ryan VanderMeulen
7b10b617ea 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
3d9131a823 Backed out changeset a1628c9ba4af (bug 929029) for timeouts/crashes in test_dataChannel_basicAudio.html. 2013-12-02 12:12:45 -05:00
Shelly Lin
7148413e1c Bug 945135 - Part 2: Add VideoTrackEncoder. r=roc 2013-12-02 15:52:54 +08:00
Paul Adenot
01aa87182d 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
873c9e99d3 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
4829857b56 Merge m-c to inbound. 2013-12-02 16:58:15 -05:00
Edwin Flores
e5da7543d2 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
74bbe22522 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
74c1422fc6 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
cf9b4a4940 Bug 918135 - Windows-specific changes for MP3FrameParser refactor r=cpearce 2013-12-03 10:25:27 +13:00
Edwin Flores
4ed8c95e5e 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
5c64be4f5b Bug 945135 - Part 1: Refactor of TrackEncoder and AudioTrackEncoder. r=roc 2013-11-12 10:29:09 +08:00
Ryan VanderMeulen
bbe673a3ae Merge m-c to b2g-inbound. 2013-12-02 10:38:28 -05:00
Robert O'Callahan
2a77718239 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
61ac84169b Bug 929029 - Use nsMainThreadPtrHandle in MediaResource. r=roc, r=doublec 2013-12-02 10:22:33 -05:00
Steven Lee
27232f6777 Bug 926746 - Part 2: nsContentPermissionHelper set grant information to GonkPermission. r=jesup 2013-12-02 10:21:51 -05:00
Robert O'Callahan
d51f35eb1a 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
5c87adde08 Bug 938022. Part 4: Add MediaTimeToMicroseconds. r=cpearce
--HG--
extra : rebase_source : 4c28f1b4babfbccc86bdacb9cc54810a307da8bb
2013-11-26 00:57:26 +13:00
Robert O'Callahan
397a575007 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
b32400571f Bug 938022. Part 1: Update mAudioEndTime from SendStreamData. r=cpearce
--HG--
extra : rebase_source : 2cbb5dcbe4d97e21f276559c5fb7dac99d919a2b
2013-11-23 00:33:24 +13:00
Ms2ger
9d06a0c27f Merge mozilla-inbound to mozilla-central. 2013-11-29 09:54:12 +01:00
Ms2ger
c51e826c53 Bug 937258 - Part a: Remove empty makefiles; r=gps 2013-11-28 15:25:40 +01:00
Matthew Gregan
2ca1434c82 Bug 942657 - Devirtualize AudioStream. r=doublec,gps 2013-11-28 18:09:08 +13:00