Commit Graph

47 Commits

Author SHA1 Message Date
Chris Pearce
7f6e8b96b9 Bug 986947 - Make MP3 contained in MP4 playback again on Windows with WMF backend. r=padenot
Report that we can play MP3 inside MP4 on Windows Vista and later in
HTMLMediaElement.canPlayType. Chrome and IE on Windows match this behaviour.

Add a test file with MP3 contained inside MP4. Note the B2G emulator can't play
this file, so I added a codecs parameter to the file's mime type so that
decoder backends have to opt-in to testing with it.

Enable playback of MP3 inside MP4 in WMFReader.

Change from reporting the IMFSourceReader's duration inside WMFReader, to
instead report the IMFSourceReader's duration as the media "end time". This is
needed because the MP3-contained-in-MP4 file's first sample output by the
IMFSourceReader has a non-zero timestamp, and the MediaDecoderStateMachine
assumes that the media samples will be in the range
[$firstSampleStartTime, $firstSampleStartTime+$reportedDuration]. But that's
not the case here, the IMFSourceReader seems to output samples in the range
[0,$reportedDuration]. This assumption mismatch means on the
MP3-contained-in-MP4 file we end up trying to seek after what the
IMFSourceReader assumes is the end of the file, which fails and causes
test failures.
2014-04-04 10:39:42 +13:00
Matthew Gregan
69f11197c5 Bug 927245 - Remove deprecated Audio Data API implementation. r=cajbir,smaug 2014-04-03 10:53:39 +13:00
Rick Eyre
9aac79542d Bug 882677 - Part 5: Add track element tests. r=cpearce 2014-03-17 15:11:41 -04:00
Ryan VanderMeulen
0d5b7940ce Merge inbound to m-c. 2014-04-01 16:45:00 -04:00
JW Wang
95bd4f71d1 Bug 980868 - Don't skip video frame when |clock time| is less than |mVideoFrameEndTime| for we are still in the safe range without underruning video frames. r=cpearce 2014-04-01 08:58:55 -04:00
Chris Pearce
b12df215bb Bug 778077 - Implement HTMLMediaElement.fastSeek(time). r=cajbir
Implement HTMLMediaElement.fastSeek(), basically by changing all the
MediaDecoderReader::Seek() overrides to not call
MediaDecoderReader::DecodeToTarget(), and have MediaDecoderReader::DecodeSeek()
call DecodeToTarget() if we're doing an accurate (non-fast) seek.

Update gizmo.mp4 to have a keyframe every second, instead of only 1 keyframe at
the start of stream. This makes the unit test I added more useful for mp4...

I pushed most of the seek target clamping logic in MediaDecoder up into
HTMLMediaElement, so that we're clamping in fewer places. Note
MediaDecoderStateMachine::Seek() still sanity checks the seek target.

We have to update the currentTime/MediaDecoder playback position after a seek
completes now, rather than assuming the seek always got it exactly right.

Removed those pesky assertions about seek target lying in the first frame after
seek, since actually sometimes the media doesn't have samples for all streams
after a seek (either due to the media being encoded like that, or because of a
bug in the platform's decoder, not entirely sure).

Green: https://tbpl.mozilla.org/?tree=Try&rev=b028258565e2
* * *
Bug 778077 - Fix up MediaOMXReader fastseek to ensure audio stream stays in sync with video stream. r=cajbir
2014-04-01 16:39:04 +13:00
Ed Morley
7a428f481b Backed out changeset 00fa39c23b44 (bug 778077) for reftest failures 2014-03-28 12:31:29 +00:00
Chris Pearce
eefc2c2db6 Bug 778077 - Implement HTMLMediaElement.fastSeek(time). r=cajbir
Implement HTMLMediaElement.fastSeek(), basically by changing all the
MediaDecoderReader::Seek() overrides to not call
MediaDecoderReader::DecodeToTarget(), and have MediaDecoderReader::DecodeSeek()
call DecodeToTarget() if we're doing an accurate (non-fast) seek.

Update gizmo.mp4 to have a keyframe every second, instead of only 1 keyframe at
the start of stream. This makes the unit test I added more useful for mp4...

I pushed most of the seek target clamping logic in MediaDecoder up into
HTMLMediaElement, so that we're clamping in fewer places. Note
MediaDecoderStateMachine::Seek() still sanity checks the seek target.

We have to update the currentTime/MediaDecoder playback position after a seek
completes now, rather than assuming the seek always got it exactly right.

Removed those pesky assertions about seek target lying in the first frame after
seek, since actually sometimes the media doesn't have samples for all streams
after a seek (either due to the media being encoded like that, or because of a
bug in the platform's decoder, not entirely sure).

Green: https://tbpl.mozilla.org/?tree=Try&rev=b028258565e2
2014-03-28 22:36:10 +13:00
Phil Ringnalda
7fb1a235f6 Backed out 2 changesets (bug 778077, bug 631058)
CLOSED TREE

Backed out changeset dda301682977 (bug 631058)
Backed out changeset 25b633e7dcd5 (bug 778077)
2014-03-27 21:50:02 -07:00
Chris Pearce
7bc425d1e8 Bug 778077 - Implement HTMLMediaElement.fastSeek(time). r=cajbir
Implement HTMLMediaElement.fastSeek(), basically by changing all the
MediaDecoderReader::Seek() overrides to not call
MediaDecoderReader::DecodeToTarget(), and have MediaDecoderReader::DecodeSeek()
call DecodeToTarget() if we're doing an accurate (non-fast) seek.

Update gizmo.mp4 to have a keyframe every second, instead of only 1 keyframe at
the start of stream. This makes the unit test I added more useful for mp4...

I pushed most of the seek target clamping logic in MediaDecoder up into
HTMLMediaElement, so that we're clamping in fewer places. Note
MediaDecoderStateMachine::Seek() still sanity checks the seek target.

We have to update the currentTime/MediaDecoder playback position after a seek
completes now, rather than assuming the seek always got it exactly right.

Removed those pesky assertions about seek target lying in the first frame after
seek, since actually sometimes the media doesn't have samples for all streams
after a seek (either due to the media being encoded like that, or because of a
bug in the platform's decoder, not entirely sure).

Green: https://tbpl.mozilla.org/?tree=Try&rev=b028258565e2
2014-03-28 15:50:28 +13:00
Randy Lin
05878d4b12 Bug 973522 MediaRecorder causes large leak. r=roc, jsmith 2014-03-26 01:11:58 +08:00
Carsten "Tomcat" Book
f093c0f61d Backed out changeset 9b6ec03572ed (bug 981470) for suspicion of breaking mochitest-1 on a CLOSED TREE
--HG--
rename : content/media/test/test_documentTitle.html => content/media/test/test_audioDocumentTitle.html
2014-03-25 12:25:07 +01:00
Carsten "Tomcat" Book
cce60b46a6 Backed out changeset 8baf04242325 (bug 493692) for mochitest bustage on a CLOSED TREE 2014-03-25 12:15:38 +01:00
Robert O'Callahan
79ad3ebdbf Bug 493692. Fix and reenable test_preload_suspend. r=cpearce
--HG--
extra : rebase_source : 947c7f65d071c62b57d7bf529a00cc72f9910345
2014-03-10 11:03:14 +08:00
Robert O'Callahan
121f4a711d Bug 981470. Combine test_audioDocumentTitle and test_videoDocumentTitle and avoid testing WAV files, which aren't supposed to load properly in <iframe>s. r=cpearce
--HG--
rename : content/media/test/test_audioDocumentTitle.html => content/media/test/test_documentTitle.html
extra : rebase_source : 27016e8c3a15dcbfeb9462a17f27b043ac977d75
2014-03-10 10:45:14 +08:00
Alfredo Yang
2e6376ed3f Bug 975978 - Testcase for aspect-ration mp4 video playback. r=cpearce 2014-03-18 08:20:19 -04:00
JW Wang
ff2c32bbea Bug 984213 - Since 'preload' defaults to 'none' on b2g, 'loadedmetadata' is not fired and caused timeout. r=cpearce 2014-03-17 16:54:35 +08:00
Bill McCloskey
fd05f3eb04 Bug 982828 - [e10s] Disable mochitest-plain tests that don't pass in e10s (r=ted) 2014-03-13 21:38:19 -07:00
Wes Kocher
3b83e5bb22 Backed out changeset 88425ad0f06a (bug 982828) for introducing various mochitest-5 failures on a CLOSED TREE
* * *
Backed out changeset 94f9ebdc6662 (bug 982828)
2014-03-13 19:41:21 -07:00
Bill McCloskey
e784b5aef6 Bug 982828 - [e10s] Disable mochitest-plain tests that don't pass in e10s (r=ted) 2014-03-13 15:41:41 -07:00
Bill McCloskey
006786a6b4 Backed out changeset d6261f65070a 2014-03-13 15:52:27 -07:00
Bill McCloskey
ed100f425c Bug 982828 - [e10s] Disable mochitest-plain tests that don't pass in e10s (r=ted) 2014-03-13 15:41:41 -07:00
Vaibhav Agarwal
910cf28c11 Bug 971132 - B2G mochitests should use the new manifest format; r=jmaher 2014-03-12 11:41:08 -04:00
Vaibhav Agarwal
d126a07311 Bug 970925 - convert testing/mochitest/android.json into skip-if statements in mochitest.ini files; r=jmaher 2014-03-12 06:16:12 -04:00
Vaibhav Agarwal
bb9b55bec2 Bug 970925 - convert testing/mochitest/android.json into skip-if statements in mochitest.ini files; r=jmaher 2014-03-06 13:42:47 -05:00
Vaibhav Agarwal
1dd6d7f149 Bug 971132 - B2G mochitests should use the new manifest format [directories]; r=jmaher 2014-03-06 13:42:45 -05:00
Vaibhav Agarwal
64e20261db Bug 971132 - B2G mochitests should use the new manifest format; r=jmaher 2014-03-06 13:42:43 -05:00
Chris Pearce
49c57363fd Bug 975270 - Fire 'emptied' and 'abort' asynchronously in media load algorithm, as per spec. r=roc 2014-02-28 15:01:47 +13:00
Benjamin Chen
679a21fa8a Bug 969289 - Add new test_mediarecorder_record_gum_video_timeslice.html test case. r=jsmith 2014-02-18 11:11:18 +08:00
Chris Pearce
5f48ec60ad Bug 977314 - Serve all media mochitest files with 'Cache-Control: no-store' header, so Necko doesn't mess with our byte-range-request detection code. r=kinetik 2014-02-27 16:06:03 +13:00
Ralph Giles
4dea9ead6c Bug 964559 - Run ogg mochitests unconditionally. r=doublec
Now that support is always enabled, we can remove the conditionals
on the ogg-dependent tests.

The canplay test previously run only if ogg was disabled is updated
to verify that the runtime pref works when set to a non-default
'false' value.
2014-02-21 13:55:00 -08:00
Randy Lin
5f0064c544 Bug 957452 - Test case for capture use-after-free on MediaRecorder::Session::GetEncodedData. r=jsmith 2014-02-10 16:55:22 +08:00
Ralph Giles
9dbb799408 Bug 951770 - Reject invalid Opus pre-skip in WebM. r=doublec
The 'pre-skip' value representing encoder delay in the Opus
format is recorded once in the .opus representation, but for
WebM it's in the file both in the CodecDelay element and in
the CodecPrivate data. We now reject files where these two
fields don't match.

Our detodos.webm file was exactly this sort of mismatched
file. It has been renamed and added to the invalid file list
to verify we now reject it. A new detodos.webm replaces it,
remuxed from detodos.opus with a bugfixed mkvmerge.

Based on a patch by Jan Gerber.

--HG--
rename : content/media/test/detodos.webm => content/media/test/invalid-preskip.webm
2014-02-02 19:39:00 -08:00
Randy Lin
70966ac27f Bug 957841 - Test case for MediaRecorder crash [@ mozilla::dom::MediaRecorder::Session::AfterTracksAdded]. r=jsmith 2014-01-29 23:09:46 +08:00
Shelly Lin
2a6ee9eac2 Bug 957439 - Do not assert at Pause or Resume on unsupported input stream. r=roc, r=jsmith 2014-01-27 10:33:00 +08:00
Alfredo Yang
c86bc8bb50 Bug 959861 - Testcase for fragmented mp4 playback. r=cpearce 2014-01-22 10:50:23 -05:00
Rick Eyre
3c0dfcd792 Bug 957847 - Fix VTTCue crash at TextTrackCue::AddCue. r=rillian 2014-01-15 11:30:58 -05:00
Ed Morley
b340524d2b Bug 760770 - Disable test_timeupdate_small_files.html on Linux for intermittent failures 2014-01-14 16:38:25 +00:00
Randy Lin
a22a2e998b Bug 926684 - Test Case for MediaRecorder: Assertion failure: mEncoder (CreateEncoder failed). r=jsmith 2014-01-09 10:52:29 +08:00
Brendan Long
edf15f09d2 Bug 882703 - Add TextTrackList change event; r=rillian,bz 2013-12-17 23:19:09 -06:00
Jan Gerber
38bc459378 Bug 949525 - VP9 tests. r=cpearce
Remuxed vp9cake.webm to correct CodecDelay values.
2013-12-19 07:02:00 -08:00
Jan Gerber
c63b0c9fe8 Bug 945513 - Opus-in-WebM tests. r=rillian
detodos.webm was remuxed with ffmpeg N-58726-g9695fb2 from detodos.opus

| + Muxing application: Lavf55.22.100
| + Writing application: Lavf55.22.100
2013-12-16 10:48:00 -08: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
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
Randy Lin
88a764f27c Bug 935774 - "Assertion failure: meta" in mozilla::MediaEncoder::GetEncodedData. r=roc 2013-11-25 12:57:52 +13:00
Chris Double
6c15e6aa6e Bug 874897 - Mochitest for copying of frames of videos with aspect ratio to canvas - r=kinetik
--HG--
extra : rebase_source : c5ff10d61a1ea46b0fdb2a43e926405660493912
2013-11-18 18:26:51 +13:00
Matthew Gregan
2b9e4e9e32 Bug 935343 - Convert content/media/tests to manifest format. r=doublec 2013-11-06 15:49:44 +13:00