summaryrefslogtreecommitdiffstats
path: root/dom/media/test/test_can_play_type_mpeg.html
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /dom/media/test/test_can_play_type_mpeg.html
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'dom/media/test/test_can_play_type_mpeg.html')
-rw-r--r--dom/media/test/test_can_play_type_mpeg.html167
1 files changed, 167 insertions, 0 deletions
diff --git a/dom/media/test/test_can_play_type_mpeg.html b/dom/media/test/test_can_play_type_mpeg.html
new file mode 100644
index 000000000..89e5fabef
--- /dev/null
+++ b/dom/media/test/test_can_play_type_mpeg.html
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=799315
+-->
+<head>
+ <title>Test for MP4 and MP3 support</title>
+ <script type="application/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>
+<p id="display"></p>
+<div id="content" style="display: none">
+</div>
+
+<video id="v"></video>
+
+<pre id="test">
+<script>
+
+function check_mp4(v, enabled) {
+ function check(type, expected) {
+ var ex = enabled ? expected : "";
+ is(v.canPlayType(type), ex, type + "='" + ex + "'");
+ }
+
+ check("video/mp4", "maybe");
+ check("video/x-m4v", "maybe");
+ check("audio/mp4", "maybe");
+ check("audio/x-m4a", "maybe");
+
+ // Not the MIME type that other browsers respond to, so we won't either.
+ check("audio/m4a", "");
+ check("video/m4v", "");
+
+ check("audio/aac", "maybe");
+ check("audio/aacp", "maybe");
+
+ // H.264 Constrained Baseline Profile Level 3.0, AAC-LC
+ check("video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"", "probably");
+
+ // H.264 Constrained Baseline Profile Level 3.0, mp3
+ check("video/mp4; codecs=\"avc1.42E01E, mp3\"", "probably");
+
+ check("video/mp4; codecs=\"avc1.42001E, mp4a.40.2\"", "probably");
+ check("video/mp4; codecs=\"avc1.58A01E, mp4a.40.2\"", "probably");
+
+ // H.264 Main Profile Level 3.0, AAC-LC
+ check("video/mp4; codecs=\"avc1.4D401E, mp4a.40.2\"", "probably");
+ // H.264 Main Profile Level 3.1, AAC-LC
+ check("video/mp4; codecs=\"avc1.4D401F, mp4a.40.2\"", "probably");
+ // H.264 Main Profile Level 4.0, AAC-LC
+ check("video/mp4; codecs=\"avc1.4D4028, mp4a.40.2\"", "probably");
+ // H.264 High Profile Level 3.0, AAC-LC
+ check("video/mp4; codecs=\"avc1.64001E, mp4a.40.2\"", "probably");
+ // H.264 High Profile Level 3.1, AAC-LC
+ check("video/mp4; codecs=\"avc1.64001F, mp4a.40.2\"", "probably");
+
+ check("video/mp4; codecs=\"avc1.42E01E\"", "probably");
+ check("video/mp4; codecs=\"avc1.42001E\"", "probably");
+ check("video/mp4; codecs=\"avc1.58A01E\"", "probably");
+ check("video/mp4; codecs=\"avc1.4D401E\"", "probably");
+ check("video/mp4; codecs=\"avc1.64001F\"", "probably");
+
+ // AAC-LC
+ check("audio/mp4; codecs=\"mp4a.40.2\"", "probably");
+ check("audio/mp4; codecs=mp4a.40.2", "probably");
+ check("audio/x-m4a; codecs=\"mp4a.40.2\"", "probably");
+ check("audio/x-m4a; codecs=mp4a.40.2", "probably");
+
+ check("audio/mp4; codecs=\"mp4a.40.2,\"", ""); // Invalid codecs string
+
+ // HE-AAC v1
+ check("audio/mp4; codecs=\"mp4a.40.5\"", "probably");
+ check("audio/mp4; codecs=mp4a.40.5", "probably");
+ check("audio/x-m4a; codecs=\"mp4a.40.5\"", "probably");
+ check("audio/x-m4a; codecs=mp4a.40.5", "probably");
+ // HE-AAC v2
+ check("audio/mp4; codecs=\"mp4a.40.29\"", "probably");
+
+ // Opus
+ check("audio/mp4; codecs=\"opus\"", "probably");
+ check("audio/mp4; codecs=opus", "probably");
+
+ // Flac.
+ // Not available on Android yet.
+ var expectedResult = IsSupportedAndroid() ? "" : "probably";
+ check("audio/mp4; codecs=\"flac\"", expectedResult);
+ check("audio/mp4; codecs=flac", expectedResult);
+}
+
+function check_mp3(v, enabled) {
+ function check(type, expected) {
+ var ex = enabled ? expected : "";
+ is(v.canPlayType(type), ex, type + "='" + ex + "'");
+ }
+
+ check("audio/mpeg", "maybe");
+ check("audio/mp3", "maybe");
+
+ check("audio/mpeg; codecs=\"mp3\"", "probably");
+ check("audio/mpeg; codecs=mp3", "probably");
+
+ check("audio/mp3; codecs=\"mp3\"", "probably");
+ check("audio/mp3; codecs=mp3", "probably");
+}
+
+function IsWindowsVistaOrLater() {
+ var re = /Windows NT (\d+\.\d)/;
+ var winver = navigator.userAgent.match(re);
+ return winver && winver.length == 2 && parseFloat(winver[1]) >= 6.0;
+}
+
+function IsMacOSSnowLeopardOrLater() {
+ var re = /Mac OS X (\d+)\.(\d+)/;
+ var ver = navigator.userAgent.match(re);
+ if (!ver || ver.length != 3) {
+ return false;
+ }
+ var major = ver[1] | 0;
+ var minor = ver[2] | 0;
+ return major == 10 && minor >= 6;
+}
+
+function IsLinux() {
+ return navigator.userAgent.indexOf("Linux") != -1;
+}
+
+function getPref(name) {
+ var pref = false;
+ try {
+ pref = SpecialPowers.getBoolPref(name);
+ } catch(ex) { }
+ return pref;
+}
+
+function IsSupportedAndroid() {
+ return getAndroidVersion() >= 14;
+}
+
+function IsJellyBeanOrLater() {
+ return getAndroidVersion() >= 16;
+}
+
+var haveMp4 = (getPref("media.wmf.enabled") && IsWindowsVistaOrLater()) ||
+ IsMacOSSnowLeopardOrLater() ||
+ (IsSupportedAndroid() &&
+ (IsJellyBeanOrLater() || getPref("media.plugins.enabled"))) ||
+ (IsLinux() && getPref("media.ffmpeg.enabled"));
+
+check_mp4(document.getElementById('v'), haveMp4);
+
+var haveMp3 = getPref("media.directshow.enabled") ||
+ (getPref("media.wmf.enabled") && IsWindowsVistaOrLater()) ||
+ (IsLinux() && getPref("media.ffmpeg.enabled")) ||
+ (IsSupportedAndroid() &&
+ ((IsJellyBeanOrLater() && getPref("media.android-media-codec.enabled")) ||
+ getPref("media.plugins.enabled"))) ||
+ getPref("media.apple.mp3.enabled");
+check_mp3(document.getElementById('v'), haveMp3);
+
+mediaTestCleanup();
+</script>
+</pre>
+</body>
+</html>