Bug 1232045 - Add tests for WebM with resolution changes. r=jya
authorBryce Van Dyk <bvandyk@mozilla.com>
Mon, 14 Mar 2016 15:13:51 +1300
changeset 290430 3d31cc25fd3b28b928a7f4b90f481fb66976363f
parent 290429 7a8fb7e6f6f915ad87eba700b4f36ff0c0d5ecab
child 290431 1fc001760e73deabb9c2114bd88876be3699a0b8
push id74253
push userryanvm@gmail.com
push dateSat, 26 Mar 2016 01:49:32 +0000
treeherdermozilla-inbound@1fc001760e73 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjya
bugs1232045
milestone48.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1232045 - Add tests for WebM with resolution changes. r=jya Added a test WebM file containing resolution changes. This file has been added to gPlayTests to test playback of such files. A new test has been added, test_resolution_change.html, which reads a new test array, gResolutionChangeTests, of media files containing resolution changes. This new test check that after playing a file through at least one resolution change has taken place. MozReview-Commit-ID: 8yz1ccz8g6O
dom/media/test/manifest.js
dom/media/test/mochitest.ini
dom/media/test/resolution-change.webm
dom/media/test/resolution-change.webm^headers^
dom/media/test/test_resolution_change.html
--- a/dom/media/test/manifest.js
+++ b/dom/media/test/manifest.js
@@ -215,16 +215,19 @@ var gPlayTests = [
     type:"video/ogg", duration:0.266 },
 
   // Test playback of a webm file
   { name:"seek.webm", type:"video/webm", duration:3.966 },
 
   // Test playback of a WebM file with non-zero start time.
   { name:"split.webm", type:"video/webm", duration:1.967 },
 
+  // Test playback of a WebM file with resolution changes.
+  { name:"resolution-change.webm", type:"video/webm", duration:6.533 },
+
   // Test playback of a raw file
   { name:"seek.yuv", type:"video/x-raw-yuv", duration:1.833 },
 
   // A really short, low sample rate, single channel file. This tests whether
   // we can handle playing files when only push very little audio data to the
   // hardware.
   { name:"spacestorm-1000Hz-100ms.ogg", type:"audio/ogg", duration:0.099 },
 
@@ -279,16 +282,21 @@ var gSnifferTests = [
   { name:"320x240.ogv", type:"video/ogg", width:320, height:240, duration:0.233, size:28942 },
   { name:"seek.webm", type:"video/webm", duration:3.966, size:215529 },
   { name:"gizmo.mp4", type:"video/mp4", duration:5.56, size:383631 },
   // A mp3 file with id3 tags.
   { name:"id3tags.mp3", type:"audio/mpeg", duration:0.28, size:3530},
   { name:"bogus.duh", type:"bogus/duh" }
 ];
 
+// Files that contain resolution changes
+var gResolutionChangeTests = [
+  { name:"resolution-change.webm", type:"video/webm", duration:6.533 },
+];
+
 // Files we must reject as invalid.
 var gInvalidTests = [
   { name:"invalid-m0c0.opus", type:"audio/ogg; codecs=opus"},
   { name:"invalid-m0c3.opus", type:"audio/ogg; codecs=opus"},
   { name:"invalid-m1c0.opus", type:"audio/ogg; codecs=opus"},
   { name:"invalid-m1c9.opus", type:"audio/ogg; codecs=opus"},
   { name:"invalid-m2c0.opus", type:"audio/ogg; codecs=opus"},
   { name:"invalid-m2c1.opus", type:"audio/ogg; codecs=opus"},
--- a/dom/media/test/mochitest.ini
+++ b/dom/media/test/mochitest.ini
@@ -470,16 +470,18 @@ support-files =
   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
+  resolution-change.webm
+  resolution-change.webm^headers^
   sample.3gp
   sample.3g2
   sample-fisbone-skeleton4.ogv
   sample-fisbone-skeleton4.ogv^headers^
   sample-fisbone-wrong-header.ogv
   sample-fisbone-wrong-header.ogv^headers^
   seek.ogv
   seek.ogv^headers^
@@ -767,16 +769,17 @@ skip-if = toolkit == 'gonk' # bug 112884
 [test_reactivate.html]
 skip-if = toolkit == 'gonk' # bug 1128845 on gonk
 [test_readyState.html]
 [test_referer.html]
 [test_replay_metadata.html]
 [test_reset_events_async.html]
 [test_reset_src.html]
 [test_video_dimensions.html]
+[test_resolution_change.html]
 tags=capturestream
 [test_resume.html]
 skip-if = true # bug 1021673
 [test_seek_negative.html]
 [test_seek_nosrc.html]
 [test_seek_out_of_range.html]
 [test_seek-1.html]
 [test_seek-2.html]
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..29aad93b96c54878e7c8bb9c42a1940fb5a26283
GIT binary patch
literal 7166
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
NyUilUW)s9u{|9kbM8p69
new file mode 100644
--- /dev/null
+++ b/dom/media/test/resolution-change.webm^headers^
@@ -0,0 +1,1 @@
+Cache-Control: no-store
new file mode 100644
--- /dev/null
+++ b/dom/media/test/test_resolution_change.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+  <title>Test playback of files with resolution changes</title>
+  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
+  <script type="text/javascript" src="manifest.js"></script>
+</head>
+<body>
+<pre id="test">
+<script class="testbody" type="text/javascript">
+
+var manager = new MediaTestManager;
+
+function loadedData(e) {
+  var v = e.target;
+  v.addEventListener("resize", resize, false);
+  v.play();
+}
+
+function resize(e) {
+  var v = e.target;
+  v.seenResolutionChange = true;
+}
+
+function ended(e)  {
+  var v = e.target;
+  ok(v.seenResolutionChange, v.token + ": A resolution change should have ocurred by the end of playback");
+  removeNodeAndSource(v);
+  manager.finished(v.token);
+}
+
+function startTest(test, token) {
+  var v = document.createElement('video');
+  v.preload = "metadata";
+  v.token = token;
+  v.src = test.name;
+  v.seenResolutionChange = false;
+
+  v.addEventListener("loadeddata", loadedData, false)
+  v.addEventListener("ended", ended, false);
+
+  manager.started(token);
+  document.body.appendChild(v);
+}
+
+manager.runTests(gResolutionChangeTests, startTest);
+
+</script>
+</pre>
+</body>
+</html>