1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include <string> 6 7 #include "content/browser/media/media_browsertest.h" 8 #include "content/public/test/browser_test_utils.h" 9 #include "content/public/test/content_browser_test_utils.h" 10 #include "content/shell/browser/shell.h" 11 12 #if defined(OS_ANDROID) 13 #include "base/android/build_info.h" 14 #endif 15 16 const char kProbably[] = "probably"; 17 const char kMaybe[] = "maybe"; 18 const char kNot[] = ""; 19 20 #if defined(USE_PROPRIETARY_CODECS) 21 const char kPropProbably[] = "probably"; 22 const char kPropMaybe[] = "maybe"; 23 #else 24 const char kPropProbably[] = ""; 25 const char kPropMaybe[] = ""; 26 #endif // USE_PROPRIETARY_CODECS 27 28 // TODO(amogh.bihani): Change the opus tests when opus is on 29 // Android. (http://crbug.com/318436). 30 #if !defined(OS_ANDROID) 31 const char kOggVideoProbably[] = "probably"; 32 const char kOggVideoMaybe[] = "maybe"; 33 const char kTheoraProbably[] = "probably"; 34 const char kOpusProbably[] = "probably"; 35 #if defined(USE_PROPRIETARY_CODECS) 36 const char kTheoraAndPropProbably[] = "probably"; 37 const char kOpusAndPropProbably[] = "probably"; 38 #else 39 const char kTheoraAndPropProbably[] = ""; 40 const char kOpusAndPropProbably[] = ""; 41 #endif // USE_PROPRIETARY_CODECS 42 #else 43 const char kOggVideoProbably[] = ""; 44 const char kOggVideoMaybe[] = ""; 45 const char kTheoraProbably[] = ""; 46 const char kOpusProbably[] = ""; 47 const char kTheoraAndPropProbably[] = "maybe"; 48 const char kOpusAndPropProbably[] = "maybe"; 49 #endif // !OS_ANDROID 50 51 namespace content { 52 53 class MediaCanPlayTypeTest : public MediaBrowserTest { 54 public: 55 MediaCanPlayTypeTest() : url_("about:blank") { } 56 57 virtual void SetUpOnMainThread() OVERRIDE { 58 NavigateToURL(shell(), url_); 59 } 60 61 std::string CanPlay(const std::string& type) { 62 std::string command("document.createElement('video').canPlayType("); 63 command.append(type); 64 command.append(")"); 65 66 std::string result; 67 EXPECT_TRUE(ExecuteScriptAndExtractString( 68 shell()->web_contents(), 69 "window.domAutomationController.send(" + command + ");", 70 &result)); 71 return result; 72 } 73 74 private: 75 GURL url_; 76 DISALLOW_COPY_AND_ASSIGN(MediaCanPlayTypeTest); 77 }; 78 79 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_wav) { 80 EXPECT_EQ(kMaybe, CanPlay("'audio/wav'")); 81 EXPECT_EQ(kProbably, CanPlay("'audio/wav; codecs=\"1\"'")); 82 83 EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"vorbis\"'")); 84 EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"theora\"'")); 85 86 EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"vp8\"'")); 87 EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"vp8.0\"'")); 88 EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"vp9\"'")); 89 EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"vp9.0\"'")); 90 EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"opus\"'")); 91 92 EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"avc1\"'")); 93 EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"avc3\"'")); 94 EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"mp4a\"'")); 95 EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"avc1.4D401E\"'")); 96 EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"avc3.64001F\"'")); 97 EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"mp4a.40.5\"'")); 98 99 EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"1, mp4a\"'")); 100 EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"1, opus\"'")); 101 EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"1, theora\"'")); 102 EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"1, vorbis\"'")); 103 EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"opus, vorbis\"'")); 104 EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"opus, theora\"'")); 105 EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"vorbis, mp4a\"'")); 106 107 EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"unknown\"'")); 108 109 EXPECT_EQ(kMaybe, CanPlay("'audio/x-wav'")); 110 EXPECT_EQ(kProbably, CanPlay("'audio/x-wav; codecs=\"1\"'")); 111 112 EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"vorbis\"'")); 113 EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"theora\"'")); 114 115 EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"vp8\"'")); 116 EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"vp8.0\"'")); 117 EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"vp9\"'")); 118 EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"vp9.0\"'")); 119 EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"opus\"'")); 120 121 EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"avc1\"'")); 122 EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"avc3\"'")); 123 EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"mp4a\"'")); 124 EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"avc1.4D401E\"'")); 125 EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"avc3.64001F\"'")); 126 EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"mp4a.40.5\"'")); 127 128 EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"1, mp4a\"'")); 129 EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"1, opus\"'")); 130 EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"1, theora\"'")); 131 EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"1, vorbis\"'")); 132 EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"opus, vorbis\"'")); 133 EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"opus, theora\"'")); 134 EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"vorbis, mp4a\"'")); 135 136 EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"unknown\"'")); 137 } 138 139 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_webm) { 140 // On Android, VP9 is supported only on KitKat and above (API level 19). 141 std::string VP9Probably = "probably"; 142 std::string VP9AndOpusProbably = "probably"; 143 #if defined(OS_ANDROID) 144 VP9AndOpusProbably = ""; 145 if (base::android::BuildInfo::GetInstance()->sdk_int() < 19) 146 VP9Probably = ""; 147 #endif 148 EXPECT_EQ(kMaybe, CanPlay("'video/webm'")); 149 150 EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp8\"'")); 151 EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp8.0\"'")); 152 EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp8, vorbis\"'")); 153 EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp8.0, vorbis\"'")); 154 EXPECT_EQ(kOpusProbably, CanPlay("'video/webm; codecs=\"vp8, opus\"'")); 155 EXPECT_EQ(kOpusProbably, CanPlay("'video/webm; codecs=\"vp8.0, opus\"'")); 156 157 EXPECT_EQ(VP9Probably, CanPlay("'video/webm; codecs=\"vp9\"'")); 158 EXPECT_EQ(VP9Probably, CanPlay("'video/webm; codecs=\"vp9.0\"'")); 159 EXPECT_EQ(VP9Probably, CanPlay("'video/webm; codecs=\"vp9, vorbis\"'")); 160 EXPECT_EQ(VP9Probably, CanPlay("'video/webm; codecs=\"vp9.0, vorbis\"'")); 161 EXPECT_EQ(VP9AndOpusProbably, CanPlay("'video/webm; codecs=\"vp9, opus\"'")); 162 EXPECT_EQ(VP9AndOpusProbably, 163 CanPlay("'video/webm; codecs=\"vp9.0, opus\"'")); 164 165 EXPECT_EQ(VP9Probably, CanPlay("'video/webm; codecs=\"vp8, vp9\"'")); 166 EXPECT_EQ(VP9Probably, CanPlay("'video/webm; codecs=\"vp8.0, vp9.0\"'")); 167 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp8, theora\"'")); 168 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp8, avc1\"'")); 169 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp9, avc3\"'")); 170 171 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp8, 1\"'")); 172 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp8.0, 1\"'")); 173 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp8, mp4a.40.2\"'")); 174 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp8.0, mp4a.40.2\"'")); 175 176 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp9, 1\"'")); 177 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp9.0, 1\"'")); 178 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp9, mp4a.40.2\"'")); 179 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp9.0, mp4a.40.2\"'")); 180 181 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"theora\"'")); 182 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"1\"'")); 183 184 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"avc1\"'")); 185 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"avc3\"'")); 186 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"mp4a\"'")); 187 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"avc1.4D401E\"'")); 188 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"avc3.64001F\"'")); 189 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"mp4a.40.2\"'")); 190 191 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"VP8\"'")); 192 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"VP8.0\"'")); 193 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"VP9\"'")); 194 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"Vp9.0\"'")); 195 196 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"VP8, Vorbis\"'")); 197 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp8, Vorbis\"'")); 198 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"VP9, Opus\"'")); 199 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp9, Opus\"'")); 200 201 EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"unknown\"'")); 202 203 EXPECT_EQ(kMaybe, CanPlay("'audio/webm'")); 204 EXPECT_EQ(kProbably, CanPlay("'audio/webm; codecs=\"vorbis\"'")); 205 EXPECT_EQ(kOpusProbably, CanPlay("'audio/webm; codecs=\"opus\"'")); 206 EXPECT_EQ(kOpusProbably, CanPlay("'audio/webm; codecs=\"opus, vorbis\"'")); 207 208 EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp8\"'")); 209 EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp8.0\"'")); 210 EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp8, vorbis\"'")); 211 EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp8.0, vorbis\"'")); 212 EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp8, opus\"'")); 213 EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp8.0, opus\"'")); 214 215 EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp9\"'")); 216 EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp9.0\"'")); 217 EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp9, vorbis\"'")); 218 EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp9.0, vorbis\"'")); 219 EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp9, opus\"'")); 220 EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp9.0, opus\"'")); 221 222 EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"1\"'")); 223 EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"1, opus\"'")); 224 EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"1, vorbis\"'")); 225 EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vorbis, mp4a\"'")); 226 227 EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"avc1\"'")); 228 EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"avc3\"'")); 229 EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"mp4a\"'")); 230 EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"avc1.4D401E\"'")); 231 EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"avc3.64001F\"'")); 232 EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"mp4a.40.2\"'")); 233 234 EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"unknown\"'")); 235 } 236 237 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_ogg) { 238 EXPECT_EQ(kOggVideoMaybe, CanPlay("'video/ogg'")); 239 EXPECT_EQ(kOggVideoProbably, CanPlay("'video/ogg; codecs=\"theora\"'")); 240 EXPECT_EQ(kOggVideoProbably, 241 CanPlay("'video/ogg; codecs=\"theora, vorbis\"'")); 242 EXPECT_EQ(kOggVideoProbably, 243 CanPlay("'video/ogg; codecs=\"theora, opus\"'")); 244 EXPECT_EQ(kOggVideoProbably, 245 CanPlay("'video/ogg; codecs=\"opus, vorbis\"'")); 246 247 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"vp8\"'")); 248 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"vp8.0\"'")); 249 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"vp9\"'")); 250 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"vp9.0\"'")); 251 252 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc1\"'")); 253 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc3\"'")); 254 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"mp4a\"'")); 255 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc1, mp4a\"'")); 256 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc1, vorbis\"'")); 257 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc3, mp4a\"'")); 258 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc3, vorbis\"'")); 259 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc1, vp8\"'")); 260 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc3, vp9\"'")); 261 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc1, avc3\"'")); 262 263 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc1.4D401E\"'")); 264 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc3.64001F\"'")); 265 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"mp4a.4.02\"'")); 266 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc1.4D401E, mp4a.40.2\"'")); 267 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc3.64001F, mp4a.40.2\"'")); 268 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc1.4D401E, vorbis\"'")); 269 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc3.64001F, vorbis\"'")); 270 271 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"Theora\"'")); 272 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"Opus\"'")); 273 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"Vorbis\"'")); 274 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"Theora, Opus\"'")); 275 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"Theora, Vorbis\"'")); 276 277 EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"unknown\"'")); 278 279 EXPECT_EQ(kMaybe, CanPlay("'audio/ogg'")); 280 EXPECT_EQ(kProbably, CanPlay("'audio/ogg; codecs=\"vorbis\"'")); 281 EXPECT_EQ(kOpusProbably, CanPlay("'audio/ogg; codecs=\"opus\"'")); 282 EXPECT_EQ(kOpusProbably, CanPlay("'audio/ogg; codecs=\"vorbis, opus\"'")); 283 284 EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"theora\"'")); 285 EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"theora, vorbis\"'")); 286 EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"theora, opus\"'")); 287 EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"opus, 1\"'")); 288 EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"vorbis, 1\"'")); 289 290 EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"vp8\"'")); 291 EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"vp8.0\"'")); 292 EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"vp9\"'")); 293 EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"vp9.0\"'")); 294 295 EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"avc1\"'")); 296 EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"avc3\"'")); 297 EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"mp4a\"'")); 298 EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"avc1.4D401E\"'")); 299 EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"avc3.64001F\"'")); 300 EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"mp4a.40.2\"'")); 301 302 EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"Theora\"'")); 303 EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"Opus\"'")); 304 EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"Vorbis\"'")); 305 EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"Theora, Vorbis\"'")); 306 EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"Theora, Opus\"'")); 307 308 EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"unknown\"'")); 309 310 EXPECT_EQ(kMaybe, CanPlay("'application/ogg'")); 311 EXPECT_EQ(kProbably, CanPlay("'application/ogg; codecs=\"vorbis\"'")); 312 EXPECT_EQ(kTheoraProbably, CanPlay("'application/ogg; codecs=\"theora\"'")); 313 EXPECT_EQ(kOpusProbably, CanPlay("'application/ogg; codecs=\"opus\"'")); 314 EXPECT_EQ(kTheoraProbably, 315 CanPlay("'application/ogg; codecs=\"theora, vorbis\"'")); 316 EXPECT_EQ(kTheoraProbably, 317 CanPlay("'application/ogg; codecs=\"theora, opus\"'")); 318 EXPECT_EQ(kOpusProbably, 319 CanPlay("'application/ogg; codecs=\"opus, vorbis\"'")); 320 321 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"vp8\"'")); 322 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"vp8.0\"'")); 323 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"vp9\"'")); 324 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"vp9.0\"'")); 325 326 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc1\"'")); 327 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc3\"'")); 328 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"mp4a\"'")); 329 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc1, mp4a\"'")); 330 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc1, vorbis\"'")); 331 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc3, mp4a\"'")); 332 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc3, vorbis\"'")); 333 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc1, vp8\"'")); 334 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc3, vp9\"'")); 335 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc1, avc3\"'")); 336 337 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc1.4D401E\"'")); 338 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc3.64001F\"'")); 339 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"mp4a.40.2\"'")); 340 EXPECT_EQ(kNot, 341 CanPlay("'application/ogg; codecs=\"avc1.4D401E, mp4a.40.2\"'")); 342 EXPECT_EQ(kNot, 343 CanPlay("'application/ogg; codecs=\"avc3.64001F, mp4a.40.2\"'")); 344 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc1.4D401E, vorbis\"'")); 345 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc3.64001F, vorbis\"'")); 346 347 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"Theora\"'")); 348 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"Vorbis\"'")); 349 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"Opus\"'")); 350 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"Theora, Vorbis\"'")); 351 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"Theora, Opus\"'")); 352 353 EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"unknown\"'")); 354 } 355 356 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_mp3) { 357 EXPECT_EQ(kNot, CanPlay("'video/mp3'")); 358 EXPECT_EQ(kNot, CanPlay("'video/mpeg'")); 359 EXPECT_EQ(kNot, CanPlay("'video/x-mp3'")); 360 361 // audio/mpeg without a codecs parameter (RFC 3003 compliant) 362 EXPECT_EQ(kPropProbably, CanPlay("'audio/mpeg'")); 363 364 // audio/mpeg with mp3 in codecs parameter. (Not RFC compliant, but 365 // very common in the wild so it is a defacto standard). 366 EXPECT_EQ(kPropProbably, CanPlay("'audio/mpeg; codecs=\"mp3\"'")); 367 368 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"avc1\"'")); 369 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"avc3\"'")); 370 371 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"avc1.4D401E\"'")); 372 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"avc3.64001F\"'")); 373 374 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"mp4a\"'")); 375 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"mp4a.40.2\"'")); 376 377 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"avc1.unknown\"'")); 378 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"avc3.unknown\"'")); 379 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"mp4a.unknown\"'")); 380 381 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"avc1.\"'")); 382 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"avc3.\"'")); 383 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"mp4a.\"'")); 384 385 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"vorbis\"'")); 386 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"opus\"'")); 387 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"theora\"'")); 388 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"vp8\"'")); 389 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"vp8.0\"'")); 390 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"vp9\"'")); 391 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"vp9.0\"'")); 392 393 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"AVC1\"'")); 394 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"AVC1.4d401e\"'")); 395 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"AVC3\"'")); 396 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"AVC3.64001f\"'")); 397 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"MP4A\"'")); 398 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"MP4A.40.2\"'")); 399 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"AVC1, MP4\"'")); 400 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"AVC3, MP4\"'")); 401 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\", AVC1.4D401E, MP4.40.2\"'")); 402 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\", AVC3.64001F, MP4.40.2\"'")); 403 404 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"avc2\"'")); 405 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"avc4\"'")); 406 407 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"avc1x\"'")); 408 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"avc3x\"'")); 409 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"mp4ax\"'")); 410 411 EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"unknown\"'")); 412 413 // audio/mp3 does not allow any codecs parameter 414 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp3'")); 415 416 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"avc1\"'")); 417 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"avc3\"'")); 418 419 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"avc1.4D401E\"'")); 420 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"avc3.64001F\"'")); 421 422 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"mp4a\"'")); 423 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"mp4a.40.2\"'")); 424 425 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"avc1.unknown\"'")); 426 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"avc3.unknown\"'")); 427 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"mp4a.unknown\"'")); 428 429 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"avc1.\"'")); 430 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"avc3.\"'")); 431 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"mp4a.\"'")); 432 433 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"vorbis\"'")); 434 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"opus\"'")); 435 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"theora\"'")); 436 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"vp8\"'")); 437 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"vp8.0\"'")); 438 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"vp9\"'")); 439 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"vp9.0\"'")); 440 441 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"AVC1\"'")); 442 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"AVC1.4d401e\"'")); 443 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"AVC3\"'")); 444 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"AVC3.64001f\"'")); 445 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"MP4A\"'")); 446 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"MP4A.40.2\"'")); 447 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"AVC1, MP4\"'")); 448 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"AVC3, MP4\"'")); 449 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\", AVC1.4D401E, MP4.40.2\"'")); 450 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\", AVC3.64001F, MP4.40.2\"'")); 451 452 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"avc2\"'")); 453 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"avc4\"'")); 454 455 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"avc1x\"'")); 456 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"avc3x\"'")); 457 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"mp4ax\"'")); 458 459 EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"unknown\"'")); 460 461 // audio/x-mp3 does not allow any codecs parameter 462 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-mp3'")); 463 464 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"avc1\"'")); 465 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"avc3\"'")); 466 467 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"avc1.4D401E\"'")); 468 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"avc3.64001F\"'")); 469 470 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"mp4a\"'")); 471 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"mp4a.40.2\"'")); 472 473 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"avc1.unknown\"'")); 474 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"avc3.unknown\"'")); 475 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"mp4a.unknown\"'")); 476 477 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"vorbis\"'")); 478 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"opus\"'")); 479 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"theora\"'")); 480 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"vp8\"'")); 481 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"vp8.0\"'")); 482 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"vp9\"'")); 483 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"vp9.0\"'")); 484 485 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"AVC1\"'")); 486 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"AVC1.4d401e\"'")); 487 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"AVC3\"'")); 488 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"AVC3.64001f\"'")); 489 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"MP4A\"'")); 490 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"MP4A.40.2\"'")); 491 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"AVC1, MP4\"'")); 492 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"AVC3, MP4\"'")); 493 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\", AVC1.4D401E, MP4.40.2\"'")); 494 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\", AVC3.64001F, MP4.40.2\"'")); 495 496 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"avc2\"'")); 497 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"avc4\"'")); 498 499 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"avc1x\"'")); 500 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"avc3x\"'")); 501 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"mp4ax\"'")); 502 503 EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"unknown\"'")); 504 } 505 506 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_mp4) { 507 // TODO(amogh.bihani): Change this expectation when bug 53193 is fixed. 508 std::string PropAndVP9Probably = ""; 509 #if defined (OS_ANDROID) 510 if (base::android::BuildInfo::GetInstance()->sdk_int() < 19) 511 PropAndVP9Probably = "maybe"; 512 else 513 PropAndVP9Probably = "probably"; 514 #else 515 #if defined(USE_PROPRIETARY_CODECS) 516 PropAndVP9Probably = "probably"; 517 #endif // USE_PROPRIETARY_CODECS 518 #endif // OS_ANDROID 519 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4'")); 520 521 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc1\"'")); 522 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc3\"'")); 523 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"mp4a\"'")); 524 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc1, mp4a\"'")); 525 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc3, mp4a\"'")); 526 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc1, avc3\"'")); 527 528 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc1.4D401E\"'")); 529 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc3.64001F\"'")); 530 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"mp4a.40.2\"'")); 531 EXPECT_EQ(kPropProbably, 532 CanPlay("'video/mp4; codecs=\"avc1.4D401E, mp4a.40.2\"'")); 533 EXPECT_EQ(kPropProbably, 534 CanPlay("'video/mp4; codecs=\"avc3.64001F, mp4a.40.5\"'")); 535 536 // TODO(amogh.bihani): Change these tests when bug 53193 is fixed. 537 // http://crbug.com/53193 ---------------------------------------------------- 538 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc1.unknown\"'")); 539 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc3.unknown\"'")); 540 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"mp4a.unknown\"'")); 541 542 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc1.\"'")); 543 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc3.\"'")); 544 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"mp4a.\"'")); 545 546 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"vp8\"'")); 547 EXPECT_EQ(PropAndVP9Probably, CanPlay("'video/mp4; codecs=\"vp9\"'")); 548 549 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"vorbis\"'")); 550 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc1, vorbis\"'")); 551 EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc3, vorbis\"'")); 552 EXPECT_EQ(kPropProbably, 553 CanPlay("'video/mp4; codecs=\"avc1.4D401E, vorbis\"'")); 554 EXPECT_EQ(kPropProbably, 555 CanPlay("'video/mp4; codecs=\"avc3.64001F, vorbis\"'")); 556 557 EXPECT_EQ(kOpusAndPropProbably, CanPlay("'video/mp4; codecs=\"opus\"'")); 558 EXPECT_EQ(kOpusAndPropProbably, CanPlay("'video/mp4; codecs=\"vp8, opus\"'")); 559 EXPECT_EQ(kOpusAndPropProbably, CanPlay("'video/mp4; codecs=\"vp9, opus\"'")); 560 561 EXPECT_EQ(kTheoraAndPropProbably, CanPlay("'video/mp4; codecs=\"theora\"'")); 562 EXPECT_EQ(kTheoraAndPropProbably, 563 CanPlay("'video/mp4; codecs=\"theora, vorbis\"'")); 564 EXPECT_EQ(kTheoraAndPropProbably, 565 CanPlay("'video/mp4; codecs=\"theora, mp4a\"'")); 566 EXPECT_EQ(kTheoraAndPropProbably, 567 CanPlay("'video/mp4; codecs=\"theora, mp4a.40.2\"'")); 568 EXPECT_EQ(kTheoraAndPropProbably, 569 CanPlay("'video/mp4; codecs=\"theora, avc1\"'")); 570 EXPECT_EQ(kTheoraAndPropProbably, 571 CanPlay("'video/mp4; codecs=\"theora, avc3\"'")); 572 EXPECT_EQ(kTheoraAndPropProbably, 573 CanPlay("'video/mp4; codecs=\"theora, avc1.4D401E\"'")); 574 EXPECT_EQ(kTheoraAndPropProbably, 575 CanPlay("'video/mp4; codecs=\"theora, avc3.64001F\"'")); 576 577 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"AVC1\"'")); 578 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"AVC1.4d401e\"'")); 579 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"AVC3\"'")); 580 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"AVC3.64001f\"'")); 581 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"MP4A\"'")); 582 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"MP4A.40.2\"'")); 583 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"AVC1, MP4\"'")); 584 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"AVC3, MP4\"'")); 585 EXPECT_EQ(kPropMaybe, 586 CanPlay("'video/mp4; codecs=\", AVC1.4D401E, MP4.40.2\"'")); 587 EXPECT_EQ(kPropMaybe, 588 CanPlay("'video/mp4; codecs=\", AVC3.64001F, MP4.40.2\"'")); 589 590 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc2\"'")); 591 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc4\"'")); 592 593 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1x\"'")); 594 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3x\"'")); 595 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"mp4ax\"'")); 596 597 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"unknown\"'")); 598 // --------------------------------------------------------------------------- 599 600 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v'")); 601 602 EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc1\"'")); 603 EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc3\"'")); 604 EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"mp4a\"'")); 605 EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc1, mp4a\"'")); 606 EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc3, mp4a\"'")); 607 EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc1, avc3\"'")); 608 609 EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc1.4D401E\"'")); 610 EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc3.64001F\"'")); 611 EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"mp4a.40.2\"'")); 612 EXPECT_EQ(kPropProbably, 613 CanPlay("'video/x-m4v; codecs=\"avc1.4D401E, mp4a.40.2\"'")); 614 EXPECT_EQ(kPropProbably, 615 CanPlay("'video/x-m4v; codecs=\"avc3.64001F, mp4a.40.5\"'")); 616 617 // TODO(amogh.bihani): Change these tests when bug 53193 is fixed. 618 // http://crbug.com/53193 ---------------------------------------------------- 619 EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc1.unknown\"'")); 620 EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc3.unknown\"'")); 621 EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"mp4a.unknown\"'")); 622 623 EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc1.\"'")); 624 EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc3.\"'")); 625 EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"mp4a.\"'")); 626 627 EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"vp8\"'")); 628 EXPECT_EQ(PropAndVP9Probably, CanPlay("'video/x-m4v; codecs=\"vp9\"'")); 629 630 EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"vorbis\"'")); 631 EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc1, vorbis\"'")); 632 EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc3, vorbis\"'")); 633 EXPECT_EQ(kPropProbably, 634 CanPlay("'video/x-m4v; codecs=\"avc1.4D401E, vorbis\"'")); 635 EXPECT_EQ(kPropProbably, 636 CanPlay("'video/x-m4v; codecs=\"avc3.64001F, vorbis\"'")); 637 638 EXPECT_EQ(kOpusAndPropProbably, CanPlay("'video/x-m4v; codecs=\"opus\"'")); 639 EXPECT_EQ(kOpusAndPropProbably, 640 CanPlay("'video/x-m4v; codecs=\"vp8, opus\"'")); 641 EXPECT_EQ(kOpusAndPropProbably, 642 CanPlay("'video/x-m4v; codecs=\"vp9, opus\"'")); 643 644 EXPECT_EQ(kTheoraAndPropProbably, 645 CanPlay("'video/x-m4v; codecs=\"theora\"'")); 646 EXPECT_EQ(kTheoraAndPropProbably, 647 CanPlay("'video/x-m4v; codecs=\"theora, vorbis\"'")); 648 EXPECT_EQ(kTheoraAndPropProbably, 649 CanPlay("'video/x-m4v; codecs=\"theora, mp4a\"'")); 650 EXPECT_EQ(kTheoraAndPropProbably, 651 CanPlay("'video/x-m4v; codecs=\"theora, mp4a.40.2\"'")); 652 EXPECT_EQ(kTheoraAndPropProbably, 653 CanPlay("'video/x-m4v; codecs=\"theora, avc1\"'")); 654 EXPECT_EQ(kTheoraAndPropProbably, 655 CanPlay("'video/x-m4v; codecs=\"theora, avc3\"'")); 656 EXPECT_EQ(kTheoraAndPropProbably, 657 CanPlay("'video/x-m4v; codecs=\"theora, avc1.4D401E\"'")); 658 EXPECT_EQ(kTheoraAndPropProbably, 659 CanPlay("'video/x-m4v; codecs=\"theora, avc3.64001F\"'")); 660 661 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"AVC1\"'")); 662 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"AVC1.4d401e\"'")); 663 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"AVC3\"'")); 664 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"AVC3.64001f\"'")); 665 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"MP4A\"'")); 666 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"MP4A.40.2\"'")); 667 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"AVC1, MP4\"'")); 668 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"AVC3, MP4\"'")); 669 EXPECT_EQ(kPropMaybe, 670 CanPlay("'video/x-m4v; codecs=\", AVC1.4D401E, MP4.40.2\"'")); 671 EXPECT_EQ(kPropMaybe, 672 CanPlay("'video/x-m4v; codecs=\", AVC3.64001F, MP4.40.2\"'")); 673 674 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc2\"'")); 675 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc4\"'")); 676 677 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1x\"'")); 678 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3x\"'")); 679 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"mp4ax\"'")); 680 681 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"unknown\"'")); 682 // --------------------------------------------------------------------------- 683 684 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4'")); 685 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a\"'")); 686 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.2\"'")); 687 688 // TODO(amogh.bihani): Change these tests when bug 53193 is fixed. 689 // http://crbug.com/53193 ---------------------------------------------------- 690 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"avc1\"'")); 691 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"avc3\"'")); 692 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"avc1, mp4a\"'")); 693 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"avc3, mp4a\"'")); 694 695 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"avc1.4D401E\"'")); 696 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"avc3.64001F\"'")); 697 698 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"avc1.unknown\"'")); 699 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"avc3.unknown\"'")); 700 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.unknown\"'")); 701 702 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"avc1.\"'")); 703 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"avc3.\"'")); 704 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.\"'")); 705 706 EXPECT_EQ(kPropProbably, 707 CanPlay("'audio/mp4; codecs=\"avc1.4D401E, mp4a.40.2\"'")); 708 EXPECT_EQ(kPropProbably, 709 CanPlay("'audio/mp4; codecs=\"avc3.64001F mp4a.40.2\"'")); 710 EXPECT_EQ(kPropProbably, 711 CanPlay("'audio/mp4; codecs=\"mp4a, vorbis\"'")); 712 EXPECT_EQ(kPropProbably, 713 CanPlay("'audio/mp4; codecs=\"mp4a.40.2, vorbis\"'")); 714 715 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"vorbis\"'")); 716 717 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"vp8\"'")); 718 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"vp8.0\"'")); 719 EXPECT_EQ(PropAndVP9Probably, CanPlay("'audio/mp4; codecs=\"vp9\"'")); 720 EXPECT_EQ(PropAndVP9Probably, CanPlay("'audio/mp4; codecs=\"vp9.0\"'")); 721 722 EXPECT_EQ(kOpusAndPropProbably, CanPlay("'audio/mp4; codecs=\"opus\"'")); 723 EXPECT_EQ(kOpusAndPropProbably, 724 CanPlay("'audio/mp4; codecs=\"mp4a, opus\"'")); 725 EXPECT_EQ(kOpusAndPropProbably, 726 CanPlay("'audio/mp4; codecs=\"vorbis, opus\"'")); 727 EXPECT_EQ(kOpusAndPropProbably, CanPlay("'audio/mp4; codecs=\"vp8, opus\"'")); 728 EXPECT_EQ(kOpusAndPropProbably, CanPlay("'audio/mp4; codecs=\"vp9, opus\"'")); 729 730 EXPECT_EQ(kTheoraAndPropProbably, CanPlay("'audio/mp4; codecs=\"theora\"'")); 731 EXPECT_EQ(kTheoraAndPropProbably, 732 CanPlay("'audio/mp4; codecs=\"theora, vorbis\"'")); 733 EXPECT_EQ(kTheoraAndPropProbably, 734 CanPlay("'audio/mp4; codecs=\"theora, mp4a\"'")); 735 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"avc1, vorbis\"'")); 736 737 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"AVC1\"'")); 738 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"AVC1.4d401e\"'")); 739 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"AVC3\"'")); 740 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"AVC3.64001f\"'")); 741 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"MP4A\"'")); 742 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"MP4A.40.2\"'")); 743 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"AVC1, MP4\"'")); 744 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"AVC3, MP4\"'")); 745 EXPECT_EQ(kPropMaybe, 746 CanPlay("'audio/mp4; codecs=\", AVC1.4D401E, MP4.40.2\"'")); 747 EXPECT_EQ(kPropMaybe, 748 CanPlay("'audio/mp4; codecs=\", AVC3.64001F, MP4.40.2\"'")); 749 750 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"avc2\"'")); 751 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"avc4\"'")); 752 753 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"avc1x\"'")); 754 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"avc3x\"'")); 755 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"mp4ax\"'")); 756 757 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"unknown\"'")); 758 // --------------------------------------------------------------------------- 759 760 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a'")); 761 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a\"'")); 762 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.2\"'")); 763 764 // TODO(amogh.bihani): Change these tests when bug 53193 is fixed. 765 // http://crbug.com/53193 ---------------------------------------------------- 766 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"avc1\"'")); 767 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"avc3\"'")); 768 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"avc1, mp4a\"'")); 769 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"avc3, mp4a\"'")); 770 771 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"avc1.4D401E\"'")); 772 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"avc3.64001F\"'")); 773 774 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"avc1.unknown\"'")); 775 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"avc3.unknown\"'")); 776 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.unknown\"'")); 777 778 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"avc1.\"'")); 779 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"avc3.\"'")); 780 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.\"'")); 781 782 EXPECT_EQ(kPropProbably, 783 CanPlay("'audio/x-m4a; codecs=\"avc1.4D401E, mp4a.40.2\"'")); 784 EXPECT_EQ(kPropProbably, 785 CanPlay("'audio/x-m4a; codecs=\"avc3.64001F mp4a.40.2\"'")); 786 EXPECT_EQ(kPropProbably, 787 CanPlay("'audio/x-m4a; codecs=\"mp4a, vorbis\"'")); 788 EXPECT_EQ(kPropProbably, 789 CanPlay("'audio/x-m4a; codecs=\"mp4a.40.2, vorbis\"'")); 790 791 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"vorbis\"'")); 792 793 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"vp8\"'")); 794 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"vp8.0\"'")); 795 EXPECT_EQ(PropAndVP9Probably, CanPlay("'audio/x-m4a; codecs=\"vp9\"'")); 796 EXPECT_EQ(PropAndVP9Probably, CanPlay("'audio/x-m4a; codecs=\"vp9.0\"'")); 797 798 EXPECT_EQ(kOpusAndPropProbably, CanPlay("'audio/x-m4a; codecs=\"opus\"'")); 799 EXPECT_EQ(kOpusAndPropProbably, 800 CanPlay("'audio/x-m4a; codecs=\"mp4a, opus\"'")); 801 EXPECT_EQ(kOpusAndPropProbably, 802 CanPlay("'audio/x-m4a; codecs=\"vorbis, opus\"'")); 803 EXPECT_EQ(kOpusAndPropProbably, 804 CanPlay("'audio/x-m4a; codecs=\"vp8, opus\"'")); 805 EXPECT_EQ(kOpusAndPropProbably, 806 CanPlay("'audio/x-m4a; codecs=\"vp9, opus\"'")); 807 808 EXPECT_EQ(kTheoraAndPropProbably, 809 CanPlay("'audio/x-m4a; codecs=\"theora\"'")); 810 EXPECT_EQ(kTheoraAndPropProbably, 811 CanPlay("'audio/x-m4a; codecs=\"theora, vorbis\"'")); 812 EXPECT_EQ(kTheoraAndPropProbably, 813 CanPlay("'audio/x-m4a; codecs=\"theora, mp4a\"'")); 814 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"avc1, vorbis\"'")); 815 816 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"AVC1\"'")); 817 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"AVC1.4d401e\"'")); 818 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"AVC3\"'")); 819 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"AVC3.64001f\"'")); 820 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"MP4A\"'")); 821 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"MP4A.40.2\"'")); 822 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"AVC1, MP4\"'")); 823 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"AVC3, MP4\"'")); 824 EXPECT_EQ(kPropMaybe, 825 CanPlay("'audio/x-m4a; codecs=\", AVC1.4D401E, MP4.40.2\"'")); 826 EXPECT_EQ(kPropMaybe, 827 CanPlay("'audio/x-m4a; codecs=\", AVC3.64001F, MP4.40.2\"'")); 828 829 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"avc2\"'")); 830 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"avc4\"'")); 831 832 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"avc1x\"'")); 833 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"avc3x\"'")); 834 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"mp4ax\"'")); 835 836 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"unknown\"'")); 837 // --------------------------------------------------------------------------- 838 } 839 840 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_HLS) { 841 // HLS are supported only on Android IceCreamSandwich and above (API level 14) 842 std::string HLSProbably = ""; 843 std::string HLSMaybe = ""; 844 std::string HLSAndVP9Probably = ""; 845 #if defined(OS_ANDROID) 846 int sdk = base::android::BuildInfo::GetInstance()->sdk_int(); 847 if (sdk > 13) { 848 HLSProbably = "probably"; 849 HLSMaybe = "maybe"; 850 if (sdk < 19) 851 HLSAndVP9Probably = "maybe"; 852 else 853 HLSAndVP9Probably = "probably"; 854 } 855 #endif 856 EXPECT_EQ(HLSMaybe, CanPlay("'application/x-mpegurl'")); 857 858 EXPECT_EQ(HLSProbably, 859 CanPlay("'application/x-mpegurl; codecs=\"avc1\"'")); 860 EXPECT_EQ(HLSProbably, 861 CanPlay("'application/x-mpegurl; codecs=\"avc3\"'")); 862 EXPECT_EQ(HLSProbably, 863 CanPlay("'application/x-mpegurl; codecs=\"mp4a\"'")); 864 EXPECT_EQ(HLSProbably, 865 CanPlay("'application/x-mpegurl; codecs=\"avc1, mp4a\"'")); 866 EXPECT_EQ(HLSProbably, 867 CanPlay("'application/x-mpegurl; codecs=\"avc3, mp4a\"'")); 868 869 EXPECT_EQ(HLSProbably, 870 CanPlay("'application/x-mpegurl; codecs=\"avc1.4D401E\"'")); 871 EXPECT_EQ(HLSProbably, 872 CanPlay("'application/x-mpegurl; codecs=\"avc3.64001F\"'")); 873 EXPECT_EQ(HLSProbably, 874 CanPlay("'application/x-mpegurl; codecs=\"mp4a.40.2\"'")); 875 EXPECT_EQ(HLSProbably, 876 CanPlay("'application/x-mpegurl; codecs=\"avc1.4D401E, mp4a.40.2\"'")); 877 EXPECT_EQ(HLSProbably, 878 CanPlay("'application/x-mpegurl; codecs=\"avc3.64001F, mp4a.40.5\"'")); 879 880 // TODO(amogh.bihani): Change these tests when bug 53193 is fixed. 881 // http://crbug.com/53193 ---------------------------------------------------- 882 EXPECT_EQ(HLSProbably, 883 CanPlay("'application/x-mpegurl; codecs=\"avc1.unknown\"'")); 884 EXPECT_EQ(HLSProbably, 885 CanPlay("'application/x-mpegurl; codecs=\"avc3.unknown\"'")); 886 EXPECT_EQ(HLSProbably, 887 CanPlay("'application/x-mpegurl; codecs=\"mp4a.unknown\"'")); 888 889 EXPECT_EQ(HLSProbably, CanPlay("'application/x-mpegurl; codecs=\"avc1.\"'")); 890 EXPECT_EQ(HLSProbably, CanPlay("'application/x-mpegurl; codecs=\"avc3.\"'")); 891 EXPECT_EQ(HLSProbably, CanPlay("'application/x-mpegurl; codecs=\"mp4a.\"'")); 892 893 EXPECT_EQ(HLSProbably, CanPlay("'application/x-mpegurl; codecs=\"vp8\"'")); 894 EXPECT_EQ(HLSAndVP9Probably, 895 CanPlay("'application/x-mpegurl; codecs=\"vp9\"'")); 896 EXPECT_EQ(HLSProbably, 897 CanPlay("'application/x-mpegurl; codecs=\"vorbis\"'")); 898 899 EXPECT_EQ(HLSProbably, 900 CanPlay("'application/x-mpegurl; codecs=\"avc1, vorbis\"'")); 901 EXPECT_EQ(HLSProbably, 902 CanPlay("'application/x-mpegurl; codecs=\"avc3, vorbis\"'")); 903 EXPECT_EQ(HLSProbably, 904 CanPlay("'application/x-mpegurl; codecs=\"avc1.4D401E, vorbis\"'")); 905 EXPECT_EQ(HLSProbably, 906 CanPlay("'application/x-mpegurl; codecs=\"avc3.64001F, vorbis\"'")); 907 908 EXPECT_EQ(HLSMaybe, CanPlay("'application/x-mpegurl; codecs=\"opus\"'")); 909 EXPECT_EQ(HLSMaybe, 910 CanPlay("'application/x-mpegurl; codecs=\"vp8, opus\"'")); 911 EXPECT_EQ(HLSMaybe, 912 CanPlay("'application/x-mpegurl; codecs=\"vp9, opus\"'")); 913 914 EXPECT_EQ(HLSMaybe, 915 CanPlay("'application/x-mpegurl; codecs=\"theora\"'")); 916 EXPECT_EQ(HLSMaybe, 917 CanPlay("'application/x-mpegurl; codecs=\"theora, vorbis\"'")); 918 EXPECT_EQ(HLSMaybe, 919 CanPlay("'application/x-mpegurl; codecs=\"theora, mp4a\"'")); 920 EXPECT_EQ(HLSMaybe, 921 CanPlay("'application/x-mpegurl; codecs=\"theora, mp4a.40.2\"'")); 922 923 EXPECT_EQ(HLSMaybe, CanPlay("'application/x-mpegurl; codecs=\"AVC1\"'")); 924 EXPECT_EQ(HLSMaybe, 925 CanPlay("'application/x-mpegurl; codecs=\"AVC1.4d401e\"'")); 926 EXPECT_EQ(HLSMaybe, CanPlay("'application/x-mpegurl; codecs=\"AVC3\"'")); 927 EXPECT_EQ(HLSMaybe, 928 CanPlay("'application/x-mpegurl; codecs=\"AVC3.64001f\"'")); 929 EXPECT_EQ(HLSMaybe, CanPlay("'application/x-mpegurl; codecs=\"MP4A\"'")); 930 EXPECT_EQ(HLSMaybe, 931 CanPlay("'application/x-mpegurl; codecs=\"MP4A.40.2\"'")); 932 EXPECT_EQ(HLSMaybe, 933 CanPlay("'application/x-mpegurl; codecs=\"AVC1, MP4\"'")); 934 EXPECT_EQ(HLSMaybe, 935 CanPlay("'application/x-mpegurl; codecs=\"AVC3, MP4\"'")); 936 EXPECT_EQ(HLSMaybe, 937 CanPlay("'application/x-mpegurl; codecs=\", AVC1.4D401E, MP4.40.2\"'")); 938 EXPECT_EQ(HLSMaybe, 939 CanPlay("'application/x-mpegurl; codecs=\", AVC3.64001F, MP4.40.2\"'")); 940 941 EXPECT_EQ(HLSMaybe, 942 CanPlay("'application/x-mpegurl; codecs=\"avc2\"'")); 943 EXPECT_EQ(HLSMaybe, 944 CanPlay("'application/x-mpegurl; codecs=\"avc4\"'")); 945 946 EXPECT_EQ(HLSMaybe, 947 CanPlay("'application/x-mpegurl; codecs=\"avc1x\"'")); 948 EXPECT_EQ(HLSMaybe, 949 CanPlay("'application/x-mpegurl; codecs=\"avc3x\"'")); 950 EXPECT_EQ(HLSMaybe, 951 CanPlay("'application/x-mpegurl; codecs=\"mp4ax\"'")); 952 953 EXPECT_EQ(HLSMaybe, 954 CanPlay("'application/x-mpegurl; codecs=\"unknown\"'")); 955 // --------------------------------------------------------------------------- 956 957 EXPECT_EQ(HLSMaybe, CanPlay("'application/vnd.apple.mpegurl'")); 958 959 EXPECT_EQ(HLSProbably, 960 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1\"'")); 961 EXPECT_EQ(HLSProbably, 962 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3\"'")); 963 EXPECT_EQ(HLSProbably, 964 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a\"'")); 965 EXPECT_EQ(HLSProbably, 966 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1, mp4a\"'")); 967 EXPECT_EQ(HLSProbably, 968 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3, mp4a\"'")); 969 970 EXPECT_EQ(HLSProbably, 971 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1.4D401E\"'")); 972 EXPECT_EQ(HLSProbably, 973 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3.64001F\"'")); 974 EXPECT_EQ(HLSProbably, 975 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.40.2\"'")); 976 977 // TODO(amogh.bihani): Change these tests when bug 53193 is fixed. 978 // http://crbug.com/53193 ---------------------------------------------------- 979 EXPECT_EQ(HLSProbably, 980 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1.unknown\"'")); 981 EXPECT_EQ(HLSProbably, 982 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3.unknown\"'")); 983 EXPECT_EQ(HLSProbably, 984 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.unknown\"'")); 985 986 EXPECT_EQ(HLSProbably, 987 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1.\"'")); 988 EXPECT_EQ(HLSProbably, 989 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3.\"'")); 990 EXPECT_EQ(HLSProbably, 991 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.\"'")); 992 993 EXPECT_EQ(HLSProbably, 994 CanPlay("'application/vnd.apple.mpegurl; codecs=\"vp8\"'")); 995 EXPECT_EQ(HLSAndVP9Probably, 996 CanPlay("'application/vnd.apple.mpegurl; codecs=\"vp9\"'")); 997 EXPECT_EQ(HLSProbably, 998 CanPlay("'application/vnd.apple.mpegurl; codecs=\"vorbis\"'")); 999 1000 EXPECT_EQ(HLSProbably, 1001 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1, vorbis\"'")); 1002 EXPECT_EQ(HLSProbably, 1003 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3, vorbis\"'")); 1004 EXPECT_EQ(HLSProbably, 1005 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1.4D401E, vorbis\"'")); 1006 EXPECT_EQ(HLSProbably, 1007 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3.64001F, vorbis\"'")); 1008 1009 EXPECT_EQ(HLSMaybe, 1010 CanPlay("'application/vnd.apple.mpegurl; codecs=\"opus\"'")); 1011 EXPECT_EQ(HLSMaybe, 1012 CanPlay("'application/vnd.apple.mpegurl; codecs=\"vp8, opus\"'")); 1013 EXPECT_EQ(HLSMaybe, 1014 CanPlay("'application/vnd.apple.mpegurl; codecs=\"vp9, opus\"'")); 1015 1016 EXPECT_EQ(HLSMaybe, 1017 CanPlay("'application/vnd.apple.mpegurl; codecs=\"theora\"'")); 1018 EXPECT_EQ(HLSMaybe, 1019 CanPlay("'application/vnd.apple.mpegurl; codecs=\"theora, vorbis\"'")); 1020 EXPECT_EQ(HLSMaybe, 1021 CanPlay("'application/vnd.apple.mpegurl; codecs=\"theora, mp4a\"'")); 1022 EXPECT_EQ(HLSMaybe, 1023 CanPlay("'application/vnd.apple.mpegurl; codecs=\"theora, mp4a.40.2\"'")); 1024 1025 EXPECT_EQ(HLSMaybe, 1026 CanPlay("'application/vnd.apple.mpegurl; codecs=\"AVC1\"'")); 1027 EXPECT_EQ(HLSMaybe, 1028 CanPlay("'application/vnd.apple.mpegurl; codecs=\"AVC1.4d401e\"'")); 1029 EXPECT_EQ(HLSMaybe, 1030 CanPlay("'application/vnd.apple.mpegurl; codecs=\"AVC3\"'")); 1031 EXPECT_EQ(HLSMaybe, 1032 CanPlay("'application/vnd.apple.mpegurl; codecs=\"AVC3.64001f\"'")); 1033 EXPECT_EQ(HLSMaybe, 1034 CanPlay("'application/vnd.apple.mpegurl; codecs=\"MP4A\"'")); 1035 EXPECT_EQ(HLSMaybe, 1036 CanPlay("'application/vnd.apple.mpegurl; codecs=\"MP4A.40.2\"'")); 1037 EXPECT_EQ(HLSMaybe, 1038 CanPlay("'application/vnd.apple.mpegurl; codecs=\"AVC1, MP4\"'")); 1039 EXPECT_EQ(HLSMaybe, 1040 CanPlay("'application/vnd.apple.mpegurl; codecs=\"AVC3, MP4\"'")); 1041 EXPECT_EQ(HLSMaybe, 1042 CanPlay("'application/vnd.apple.mpegurl; " 1043 "codecs=\", AVC1.4D401E, MP4.40.2\"'")); 1044 EXPECT_EQ(HLSMaybe, 1045 CanPlay("'application/vnd.apple.mpegurl; " 1046 "codecs=\", AVC3.64001F, MP4.40.2\"'")); 1047 1048 EXPECT_EQ(HLSMaybe, 1049 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc2\"'")); 1050 EXPECT_EQ(HLSMaybe, 1051 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc4\"'")); 1052 1053 EXPECT_EQ(HLSMaybe, 1054 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1x\"'")); 1055 EXPECT_EQ(HLSMaybe, 1056 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3x\"'")); 1057 EXPECT_EQ(HLSMaybe, 1058 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4ax\"'")); 1059 1060 EXPECT_EQ(HLSMaybe, 1061 CanPlay("'application/vnd.apple.mpegurl; codecs=\"unknown\"'")); 1062 // --------------------------------------------------------------------------- 1063 } 1064 1065 } // namespace content 1066