gecko-dev/content/media/test/mochitest.ini
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

510 lines
17 KiB
INI

# Media tests should be backend independent, i.e., not conditioned on ogg,
# wave etc. (The only exception is the can_play_type tests, which
# necessarily depend on the backend(s) configured.) As far as possible, each
# test should work with any resource type. This makes it easy to add new
# backends and reduces the amount of test duplication.
# For each supported backend, resources that can be played by that backend
# should be added to the lists in manifest.js. Media tests that aren't
# testing for a bug in handling a specific resource type should pick one of
# the lists in manifest.js and run the test for each resource in the list
# that is supported in the current build (the canPlayType API is useful for
# this).
# To test whether a valid resource can simply be played through correctly,
# and optionally that its metadata is read correctly, just add it to
# gPlayTests in manifest.js. To test whether an invalid resource correctly
# throws an error (and does not cause a crash or hang), just add it to
# gErrorTests in manifest.js.
# To test for a specific bug in handling a specific resource type, make the
# test first check canPlayType for the type, and if it's not supported, just
# do ok(true, "Type not supported") and stop the test.
[DEFAULT]
#bug 918299
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug))
support-files =
320x240.ogv
320x240.ogv^headers^
448636.ogv
448636.ogv^headers^
VID_0001.ogg
VID_0001.ogg^headers^
allowed.sjs
audio-gaps.ogg
audio-gaps.ogg^headers^
audio-overhang.ogg
audio-overhang.ogg^headers^
audio.wav
audio.wav^headers^
badtags.ogg
badtags.ogg^headers^
basic.vtt
beta-phrasebook.ogg
beta-phrasebook.ogg^headers^
big-buck-bunny-unseekable.mp4
big-buck-bunny-unseekable.mp4^headers^
big.wav
big.wav^headers^
bogus.duh
bogus.ogv
bogus.ogv^headers^
bogus.wav
bogus.wav^headers^
bug461281.ogg
bug461281.ogg^headers^
bug482461-theora.ogv
bug482461-theora.ogv^headers^
bug482461.ogv
bug482461.ogv^headers^
bug495129.ogv
bug495129.ogv^headers^
bug495794.ogg
bug495794.ogg^headers^
bug498380.ogv
bug498380.ogv^headers^
bug498855-1.ogv
bug498855-1.ogv^headers^
bug498855-2.ogv
bug498855-2.ogv^headers^
bug498855-3.ogv
bug498855-3.ogv^headers^
bug499519.ogv
bug499519.ogv^headers^
bug500311.ogv
bug500311.ogv^headers^
bug501279.ogg
bug501279.ogg^headers^
bug504613.ogv
bug504613.ogv^headers^
bug504644.ogv
bug504644.ogv^headers^
bug504843.ogv
bug504843.ogv^headers^
bug506094.ogv
bug506094.ogv^headers^
bug516323.indexed.ogv
bug516323.indexed.ogv^headers^
bug516323.ogv
bug516323.ogv^headers^
bug520493.ogg
bug520493.ogg^headers^
bug520500.ogg
bug520500.ogg^headers^
bug520908.ogv
bug520908.ogv^headers^
bug523816.ogv
bug523816.ogv^headers^
bug533822.ogg
bug533822.ogg^headers^
bug556821.ogv
bug556821.ogv^headers^
bug557094.ogv
bug557094.ogv^headers^
bug580982.webm
bug580982.webm^headers^
bug603918.webm
bug603918.webm^headers^
bug604067.webm
bug604067.webm^headers^
bug883173.vtt
can_play_type_dash.js
can_play_type_mpeg.js
can_play_type_ogg.js
can_play_type_wave.js
can_play_type_webm.js
cancellable_request.sjs
chain.ogg
chain.ogg^headers^
chain.ogv
chain.ogv^headers^
chain.opus
chain.opus^headers^
chained-audio-video.ogg
chained-audio-video.ogg^headers^
chained-video.ogv
chained-video.ogv^headers^
contentDuration1.sjs
contentDuration2.sjs
contentDuration3.sjs
contentDuration4.sjs
contentDuration5.sjs
contentDuration6.sjs
contentDuration7.sjs
contentType.sjs
detodos.opus
detodos.opus^headers^
detodos.webm
detodos.webm^headers^
dirac.ogg
dirac.ogg^headers^
dynamic_redirect.sjs
dynamic_resource.sjs
file_a4_tone.ogg
file_a4_tone.ogg^headers^
file_access_controls.html
file_audio_event_adopt_iframe.html
fragment_noplay.js
fragment_play.js
gizmo.mp4
gizmo.mp4^headers^
huge-id3.mp3
huge-id3.mp3^headers^
id3tags.mp3
id3tags.mp3^headers^
invalid-cmap-s0c0.opus
invalid-cmap-s0c0.opus^headers^
invalid-cmap-s0c2.opus
invalid-cmap-s0c2.opus^headers^
invalid-cmap-s1c2.opus
invalid-cmap-s1c2.opus^headers^
invalid-cmap-short.opus
invalid-cmap-short.opus^headers^
invalid-m0c0.opus
invalid-m0c0.opus^headers^
invalid-m0c3.opus
invalid-m0c3.opus^headers^
invalid-m1c0.opus
invalid-m1c0.opus^headers^
invalid-m1c9.opus
invalid-m1c9.opus^headers^
invalid-m2c0.opus
invalid-m2c0.opus^headers^
invalid-m2c1.opus
invalid-m2c1.opus^headers^
invalid-preskip.webm
invalid-preskip.webm^headers^
long.vtt
manifest.js
multiple-bos.ogg
multiple-bos.ogg^headers^
no-cues.webm
no-cues.webm^headers^
noContentLength.sjs
notags.mp3
notags.mp3^headers^
owl-funnier-id3.mp3
owl-funnier-id3.mp3^headers^
owl-funny-id3.mp3
owl-funny-id3.mp3^headers^
owl.mp3
owl.mp3^headers^
r11025_msadpcm_c1.wav
r11025_msadpcm_c1.wav^headers^
r11025_s16_c1.wav
r11025_s16_c1.wav^headers^
r11025_s16_c1_trailing.wav
r11025_s16_c1_trailing.wav^headers^
r11025_u8_c1.wav
r11025_u8_c1.wav^headers^
r11025_u8_c1_trunc.wav
r11025_u8_c1_trunc.wav^headers^
r16000_u8_c1_list.wav
r16000_u8_c1_list.wav^headers^
reactivate_helper.html
redirect.sjs
referer.sjs
region.vtt
seek.ogv
seek.ogv^headers^
seek.webm
seek.webm^headers^
seek.yuv
seek1.js
seek10.js
seek11.js
seek12.js
seek13.js
seek2.js
seek3.js
seek4.js
seek5.js
seek6.js
seek7.js
seek8.js
seek9.js
seekLies.sjs
seek_with_sound.ogg^headers^
short-video.ogv
short-video.ogv^headers^
small-shot.m4a
small-shot.mp3
small-shot.mp3^headers^
small-shot.ogg
small-shot.ogg^headers^
sound.ogg
sound.ogg^headers^
spacestorm-1000Hz-100ms.ogg
spacestorm-1000Hz-100ms.ogg^headers^
split.webm
split.webm^headers^
street.mp4
street.mp4^headers^
test-1-mono.opus
test-1-mono.opus^headers^
test-2-stereo.opus
test-2-stereo.opus^headers^
test-3-LCR.opus
test-3-LCR.opus^headers^
test-4-quad.opus
test-4-quad.opus^headers^
test-5-5.0.opus
test-5-5.0.opus^headers^
test-6-5.1.opus
test-6-5.1.opus^headers^
test-7-6.1.opus
test-7-6.1.opus^headers^
test-8-7.1.opus
test-8-7.1.opus^headers^
variable-channel.ogg
variable-channel.ogg^headers^
variable-channel.opus
variable-channel.opus^headers^
variable-preskip.opus
variable-preskip.opus^headers^
variable-samplerate.ogg
variable-samplerate.ogg^headers^
variable-samplerate.opus
variable-samplerate.opus^headers^
vbr-head.mp3
vbr-head.mp3^headers^
vbr.mp3
vbr.mp3^headers^
video-overhang.ogg
video-overhang.ogg^headers^
vp9.webm
vp9.webm^headers^
vp9cake.webm
vp9cake.webm^headers^
wave_metadata.wav
wave_metadata.wav^headers^
wave_metadata_bad_len.wav
wave_metadata_bad_len.wav^headers^
wave_metadata_bad_no_null.wav
wave_metadata_bad_no_null.wav^headers^
wave_metadata_bad_utf8.wav
wave_metadata_bad_utf8.wav^headers^
wave_metadata_unknown_tag.wav
wave_metadata_unknown_tag.wav^headers^
wave_metadata_utf8.wav
wave_metadata_utf8.wav^headers^
wavedata_s16.wav
wavedata_s16.wav^headers^
wavedata_u8.wav
wavedata_u8.wav^headers^
[test_a4_tone.html]
[test_access_control.html]
[test_aspectratio_mp4.html]
[test_audio1.html]
[test_audio2.html]
[test_audio_event_adopt.html]
[test_autoplay.html]
[test_bug448534.html]
skip-if = buildapp == 'b2g' # b2g(Timed out, bug 894922? Bug 902677 is for the timing out of a lot of media tests) b2g-debug(Timed out, bug 894922? Bug 902677 is for the timing out of a lot of media tests) b2g-desktop(Timed out, bug 894922? Bug 902677 is for the timing out of a lot of media tests)
[test_bug463162.xhtml]
[test_bug495145.html]
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(timed out) b2g-desktop(timed out)
[test_bug495300.html]
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug))
[test_bug654550.html]
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(timed out) b2g-desktop(timed out)
[test_bug686137.html]
[test_bug686942.html]
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(timed out) b2g-desktop(timed out)
# [test_bug726904.html] # disabled - See bug 754860
[test_bug874897.html]
[test_bug883173.html]
[test_bug895305.html]
[test_bug895091.html]
[test_bug919265.html]
[test_bug957847.html]
[test_chaining.html]
skip-if = buildapp == 'b2g' # b2g(timed out) b2g-debug(timed out) b2g-desktop(timed out)
[test_contentDuration1.html]
[test_contentDuration2.html]
[test_contentDuration3.html]
[test_contentDuration4.html]
[test_contentDuration5.html]
[test_contentDuration6.html]
[test_contentDuration7.html]
[test_can_play_type.html]
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(timed out) b2g-desktop(timed out)
[test_can_play_type_mpeg.html]
skip-if = buildapp == 'b2g' # b2g(7 failures out of 27) b2g-debug(7 failures out of 27) b2g-desktop(7 failures out of 27)
[test_can_play_type_ogg.html]
skip-if = buildapp == 'b2g' || e10s
[test_can_play_type_no_ogg.html]
[test_closing_connections.html]
[test_constants.html]
[test_controls.html]
[test_currentTime.html]
[test_decode_error.html]
[test_defaultMuted.html]
[test_delay_load.html]
skip-if = buildapp == 'b2g' # b2g(6 failures) b2g-debug(6 failures) b2g-desktop(6 failures)
[test_error_on_404.html]
skip-if = buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(timed out) b2g-desktop(timed out)
[test_fastSeek.html]
[test_framebuffer.html]
skip-if = buildapp == 'b2g' # b2g(timed out) b2g-debug(timed out) b2g-desktop(timed out)
[test_info_leak.html]
skip-if = buildapp == 'b2g' # b2g(2 failures) b2g-debug(2 failures) b2g-desktop(2 failures)
[test_invalid_reject.html]
[test_load.html]
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(Timed out after gizmo.mp4) b2g-desktop(Timed out after gizmo.mp4)
[test_load_candidates.html]
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(timed out) b2g-desktop(timed out)
[test_load_same_resource.html]
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug))
[test_load_source.html]
[test_loop.html]
[test_metadata.html]
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug))
[test_no_load_event.html]
[test_networkState.html]
[test_new_audio.html]
[test_paused.html]
[test_paused_after_ended.html]
[test_play_events.html]
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(Last event should be canplaythrough for gizmo.mp4 - got playing, expected canplaythrough) b2g-desktop(Last event should be canplaythrough for gizmo.mp4 - got playing, expected canplaythrough)
[test_play_events_2.html]
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(Last event should be canplaythrough for gizmo.mp4 - got playing, expected canplaythrough) b2g-desktop(Last event should be canplaythrough for gizmo.mp4 - got playing, expected canplaythrough)
[test_playback_errors.html]
[test_seekable1.html]
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug))
[test_preload_actions.html]
[test_preload_attribute.html]
[test_progress.html]
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(bug 901716 - timeouts) b2g-desktop(bug 901716 - timeouts)
[test_reactivate.html]
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug)) # b2g-debug(timed out in small-shot.mp3) b2g-desktop(timed out in small-shot.mp3)
[test_readyState.html]
[test_referer.html]
[test_reset_events_async.html]
[test_replay_metadata.html]
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug))
[test_seek2.html]
[test_seek_out_of_range.html]
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug))
[test_seekable2.html]
[test_seekable3.html]
skip-if = buildapp == 'b2g' # b2g(timed out) b2g-debug(timed out) b2g-desktop(timed out)
[test_source.html]
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug))
[test_source_write.html]
[test_source_null.html]
[test_standalone.html]
[test_volume.html]
[test_video_to_canvas.html]
[test_audiowrite.html]
[test_mediarecorder_creation.html]
[test_mediarecorder_creation_fail.html]
[test_mediarecorder_avoid_recursion.html]
[test_mediarecorder_record_timeslice.html]
[test_mediarecorder_record_audiocontext.html]
[test_mediarecorder_record_audiocontext_mlk.html]
[test_mediarecorder_record_4ch_audiocontext.html]
skip-if = (toolkit == 'gonk' && !debug)
[test_mediarecorder_record_stopms.html]
[test_mediarecorder_record_nosrc.html]
[test_mozHasAudio.html]
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug))
[test_source_media.html]
skip-if = (buildapp == 'b2g' && (toolkit != 'gonk' || debug))
[test_autoplay_contentEditable.html]
skip-if = buildapp == 'b2g' # b2g(bug 899074 - timeouts) b2g-debug(bug 899074 - timeouts) b2g-desktop(bug 899074 - timeouts)
[test_decoder_disable.html]
[test_mediarecorder_record_no_timeslice.html]
[test_mediarecorder_reload_crash.html]
[test_mediarecorder_record_immediate_stop.html]
[test_mediarecorder_record_session.html]
[test_mediarecorder_record_startstopstart.html]
[test_mediarecorder_getencodeddata.html]
[test_mediarecorder_unsupported_src.html]
[test_mediarecorder_record_gum_video_timeslice.html]
skip-if = buildapp == 'b2g' || (toolkit == 'android') # mimetype check, bug 969289
[test_playback.html]
skip-if = buildapp == 'b2g' # b2g(Test timed out, bug 668973?) b2g-debug(Test timed out, bug 668973?) b2g-desktop(Test timed out, bug 668973?)
[test_seekLies.html]
[test_media_sniffer.html]
[test_streams_srcObject.html]
[test_reset_src.html]
[test_streams_autoplay.html]
[test_streams_element_capture.html]
skip-if = buildapp == 'b2g' # b2g(bug 900172 - timeouts) b2g-debug(bug 900172 - timeouts) b2g-desktop(bug 900172 - timeouts)
[test_streams_element_capture_reset.html]
skip-if = buildapp == 'b2g' # b2g(bug 901102) b2g-debug(bug 901102) b2g-desktop(bug 901102)
[test_streams_element_capture_createObjectURL.html]
[test_streams_element_capture_playback.html]
[test_streams_gc.html]
skip-if = buildapp == 'b2g' # b2g(Value being assigned to HTMLMediaElement.currentTime is not a finite floating-point value) b2g-debug(Value being assigned to HTMLMediaElement.currentTime is not a finite floating-point value) b2g-desktop(Value being assigned to HTMLMediaElement.currentTime is not a finite floating-point value)
[test_streams_tracks.html]
[test_texttrack.html]
[test_texttrackcue.html]
[test_trackevent.html]
[test_texttrackregion.html]
[test_texttracklist.html]
[test_timeupdate_small_files.html]
skip-if = os == "linux" # Intermittent failures, bug 760770
[test_unseekable.html]
skip-if = buildapp == 'b2g'
[test_VideoPlaybackQuality.html]
[test_VideoPlaybackQuality_disabled.html]
[test_webvtt_disabled.html]
# [test_audioDocumentTitle.html] # disabled - See bug 475110
# [test_error_in_video_document.html] # disabled - See bug 608634
# [test_mixed_principals.html] # disabled - See bug 567954 and 574586
# [test_playback_rate_playpause.html] # disabled - See bug 897108
# [test_played.html] # disabled - See bug 751539
# [test_preload_suspend.html] # disabled - See bug 493692
# [test_resume.html] # disabled - No bug :-(
# [test_videoDocumentTitle.html] # disabled - See bug 492821
# [test_playback_rate.html] # disabled - See bug 921622
# Disabled since it causes random memory corruption, bug 921622, so
# the best-case scenario is that it results in random crashes while it
# runs, like bug 918417, bug 920827, bug 923996, bug 928225, bug 929521
# bug 930982, bug 932193. Worst-case but quite likely, it causes random
# crashes and failures in other tests which run after it. Don't even think
# about reenabling it on any platform unless you *know* that you have fixed
# that. Then don't think about reenabling it on Windows until you know that
# you have fixed the timeouts of bug 832768, bug 814533, bug 840742
[test_play_twice.html]
skip-if = appname == "seamonkey" # See bug 598252
[test_buffered.html]
skip-if = toolkit == 'android' || os == "win" || (toolkit == 'gonk' && !debug) # See bug 832768 and 864682, b2g(assertion failures)
[test_bug465498.html]
skip-if = os == "win" || (toolkit == 'gonk' && !debug) # See bug 832768 and 864682
[test_bug493187.html]
skip-if = os == "win" || (buildapp=='b2g'&&debug) || (toolkit == 'gonk' && !debug) # See bug 707777, #b2g-emulator-debug - process crash
[test_media_selection.html]
skip-if = os == "win" || (toolkit == 'gonk' && !debug) # See bug 897843, b2g(timed out)
[test_seek.html]
skip-if = toolkit == 'android' || os == "win" || (toolkit == 'gonk' && !debug) # See bug 832678, 795271, and 857424 # android(bug 845162) androidx86(bug 845162)
# The tests below contain backend-specific tests. Write backend independent
# tests rather than adding to this list.
[test_can_play_type_webm.html]
run-if = webm
[test_can_play_type_no_webm.html]
skip-if = webm
[test_can_play_type_wave.html]
run-if = wave
[test_can_play_type_no_wave.html]
skip-if = wave
[test_fragment_noplay.html]
run-if = wave
[test_fragment_play.html]
run-if = wave
[test_wave_data_s16.html]
run-if = wave
[test_wave_data_u8.html]
run-if = wave