Commit Graph

153 Commits

Author SHA1 Message Date
Chris Pearce
223e397746 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
05dcbf9506 Backed out changeset 00fa39c23b44 (bug 778077) for reftest failures 2014-03-28 12:31:29 +00:00
Chris Pearce
dac6ce38ba 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
e21145ad4a 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
fc3fc91d79 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
Chris Pearce
12873b0383 Bug 975933 - Increase precision of bug516323.indexed.ogv index's timestamp denominator to prevent precision mismatch causing test failures. r=rillian 2014-02-26 13:36:54 +13:00
Alessandro Decina
c227f421a5 Bug 806917 - Add support for GStreamer 1.0. r=edwin, r=gps 2014-02-11 09:22:45 -05:00
Ralph Giles
c88a2f8c99 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
Alfredo Yang
76eb8c5636 Bug 959861 - Testcase for fragmented mp4 playback. r=cpearce 2014-01-22 10:50:23 -05:00
JW Wang
95c567d954 Bug 916135 - Part 1: Force releasing codec to prevent timeout in waiting for acquiring h264 codec and set the preload attribute to "auto" to prevent timeout in waiting for loadedmetadata event. r=padenot 2014-01-17 13:58:48 +08:00
Jan Gerber
e426780824 Bug 949525 - VP9 tests. r=cpearce
Remuxed vp9cake.webm to correct CodecDelay values.
2013-12-19 07:02:00 -08:00
Jan Gerber
8fa15c7e8e 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
Chris Pearce
409de3cf97 Bug 941314 - Use SpecialPowers.exactGC in media mochitests to hopefully improve their reliability. r=kinetik 2013-12-06 17:15:13 +13: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
Chris Double
2b4869da59 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
Edwin Flores
05d42ab025 Bug 914479 - AudioToolbox MP3 backend on OSX r=cpearce 2013-09-14 13:14:42 +12:00
Chris Pearce
ddd2cfddd7 Bug 910966 - Use MP3FrameParser in DirectShow's SourceFilter, to more accurately determine the offset of the first MP3 frame. This enables us to only pass the MP3 data into DirectShow, which can't handle large ID3v2 tags. r=padenot 2013-09-09 09:47:54 +12:00
Chris Pearce
cf122919c7 Bug 908862 - Strip ID3 tags before we expose MP3 data to DirectShow, to work around bugs in its MP3 decoder. r=padenot 2013-08-29 10:53:03 +12:00
Thomas Zimmermann
cc9047ec02 Bug 831224: Added mochitest for variable-bitrate MP3s, r=padenot
The test checks the duration of an MP3 file with variable bitrate. The
MP3 file only contains silence. It uses a high bit-rate encoding for its
first half, a low bit-rate encoding for its second half. The correct
duration is 10 seconds, but an incorrect implementation will return a
much shorter value.
2013-08-07 18:54:04 +02:00
Thomas Zimmermann
d184108c32 Bug 831224: Remove trailing whitespaces, r=padenot 2013-01-24 13:38:32 +01:00
Ed Morley
356d0996fb Backed out changeset 303ba353d785 (bug 831224) for turning bug 897108 permaorange 2013-08-08 10:00:26 -07:00
Ed Morley
d07cf9666f Backed out changeset 374a8aab2b49 (bug 831224) 2013-08-08 09:59:39 -07:00
Thomas Zimmermann
eb53c373e1 Bug 831224: Added mochitest for variable-bitrate MP3s, r=padenot
The test checks the duration of an MP3 file with variable bitrate. The
MP3 file only contains silence. It uses a high bit-rate encoding for its
first half, a low bit-rate encoding for its second half. The correct
duration is 10 seconds, but an incorrect implementation will return a
much shorter value.

--HG--
extra : rebase_source : f62cf69a631a276c4e6e96e827ab615367cad877
2013-08-07 18:54:04 +02:00
Thomas Zimmermann
1573d86782 Bug 831224: Remove trailing whitespaces, r=padenot
--HG--
extra : rebase_source : e04ddb59ab953550d988924670c96b73bf7909f2
2013-01-24 13:38:32 +01:00
Martijn Wargers
197d05aa66 Bug 896582 - Implement a workaround to bug 838726 to get a bunch of content/media mochitests running on B2G. r=jgriffin 2013-07-25 22:32:17 +02:00
Jason Smith
b1f56ecb1f Bug 896302 - Add a mochitest for creation of a media recorder object. r=roc 2013-07-21 18:37:42 -07:00
Paul Adenot
886696b46e Bug 886173 - Preserve playbackRate across pause/play. r=cpearce 2013-07-11 16:58:57 +02:00
Léonard Beck
3feece5ab1 Bug 654550 - Add a preference to disable media statistics. r = padenot,jaws 2013-06-11 17:23:13 +02:00
Edwin Flores
aed9cc50a0 Bug 885157 - Kill content/media/test/test_too_many_elements.html r=cpearce 2013-06-22 11:16:53 +12:00
Edwin Flores
50e1276b08 Bug 794282 - Enable gstreamer by default in builds, but pref off r=cpearce,khuey 2013-06-22 11:16:53 +12:00
Chris Pearce
24f7039d0b Bug 881954 - Generalize test_too_many_elements to run on more than just Ogg audio. r=padenot 2013-06-14 09:07:07 +12:00
Chris Pearce
d04999e520 Bug 880062 - Make WMF video backend call MediaDecoder::SetMediaSeekable(false) when it can't seek like it's supposed to. r=padenot 2013-06-13 10:15:23 +12:00
Ryan VanderMeulen
9fad01536a Backed out changeset 4cb1973f06b9 (bug 868439) for Android M2 failures.
CLOSED TREE
2013-05-21 10:48:09 -04:00
Martijn Wargers
b4356d38c0 Bug 868439 - Convert some uses of nsIPrefBranch to SpecialPowers. r=jmaher 2013-05-21 02:14:06 +02:00
Ralph Giles
1fafe574a9 Bug 782091 - Add multichannel Opus test files. r=derf
This doesn't do any verification of the output, just checks
that we load multichannel files and playback completes.

These are public-domain test files created by Tim and Monty
last year. They're not great audio quality, the idea is just
to verify correct speaker mapping.

http://people.xiph.org/~greg/opus_testvectors/opus_multichannel_examples/
2013-05-01 14:15:57 -07:00
Robert O'Callahan
036de11b55 Bug 834835. Part 4: Test basic MediaStreamTrack functionality. r=jesup 2013-04-17 17:18:53 +12:00
Steve Workman
fc6911c83d Bug 855064 - Remove DASH references in media unit tests r=cpearce 2013-04-02 17:05:00 -07:00
Andrea Marchesini
b57856b7a9 Bug 841014 - Rename nsTimeRanges.h to TimeRanges.h. r=Ms2ger
--HG--
rename : content/html/content/src/nsTimeRanges.cpp => content/html/content/src/TimeRanges.cpp
rename : content/html/content/src/nsTimeRanges.h => content/html/content/src/TimeRanges.h
2013-03-02 14:14:44 -05:00
Steve Workman
0b2877e907 Bug 813562 - Test case for garbled DASH MPD and WebM media r=cpearce 2013-01-31 18:41:26 -08:00
Steve Workman
7096303212 Bug 792935 - Test to detect DASH stream switching r=cpearce 2013-01-31 14:47:22 -08:00
Steve Workman
2d9494c6bf Back out f08e636ecdc4 (bug 792935) for mochitest failures 2013-01-31 10:54:26 -08:00
Steve Workman
fc4bfc6b91 Bug 792935 - Test to detect DASH stream switching r=cpearce 2013-01-31 09:45:45 -08:00
Steve Workman
ee7bb7cf5d Bug 792935 - Add DASH to gPlayedTests and gPlayTests r=cpearce 2013-01-28 18:34:28 -08:00
Steve Workman
5b6a96852d Bug 792935 - Add DASH to test_info_leak, test_progress and test_standalone r=cpearce 2013-01-28 18:34:28 -08:00
Steve Workman
c65cca2192 Bug 792935 - Add DASH to various Media Mochitests r=cpearce 2013-01-23 11:24:41 -08:00
Steve Workman
94fc543ce7 Bug 792935 - Add DASH to gSmallTests and gSeekTests to manifest.js (Media Mochitests) r=cpearce 2013-01-23 11:24:41 -08:00
Chris Pearce
cedcf61f3a Bug 815748 - Add MP3 and M4A audio files to media test framework, use gizmo.mp4 instead of short.mp4 for sniffer test, since short.mp4 contained mpeg4 video rather than h.264. r=padenot 2012-12-18 21:38:37 +13: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
37ee1aa8dd Bug 455165 - Tests for ogg chain support. r=cpearce 2012-11-30 14:17:55 +01:00
ChangZhuo Chen
7c2606ae5f Bug 778053 - Test case for wave metadata. r=kinetik 2012-10-06 19:32:30 +08:00