| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 // | 4 // |
| 5 // Regression tests for FFmpeg. Test files can be found in the internal media | 5 // Regression tests for FFmpeg. Test files can be found in the internal media |
| 6 // test data directory: | 6 // test data directory: |
| 7 // | 7 // |
| 8 // svn://svn.chromium.org/chrome-internal/trunk/data/media/ | 8 // svn://svn.chromium.org/chrome-internal/trunk/data/media/ |
| 9 // | 9 // |
| 10 // Simply add the custom_dep below to your gclient and sync: | 10 // Simply add the custom_dep below to your gclient and sync: |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 "security/100492.webm", | 80 "security/100492.webm", |
| 81 DECODER_ERROR_NOT_SUPPORTED, | 81 DECODER_ERROR_NOT_SUPPORTED, |
| 82 DECODER_ERROR_NOT_SUPPORTED); | 82 DECODER_ERROR_NOT_SUPPORTED); |
| 83 FFMPEG_TEST_CASE(Cr100543, "security/100543.webm", PIPELINE_OK, PIPELINE_OK); | 83 FFMPEG_TEST_CASE(Cr100543, "security/100543.webm", PIPELINE_OK, PIPELINE_OK); |
| 84 FFMPEG_TEST_CASE(Cr101458, "security/101458.webm", PIPELINE_OK, PIPELINE_OK); | 84 FFMPEG_TEST_CASE(Cr101458, "security/101458.webm", PIPELINE_OK, PIPELINE_OK); |
| 85 FFMPEG_TEST_CASE(Cr108416, "security/108416.webm", PIPELINE_OK, PIPELINE_OK); | 85 FFMPEG_TEST_CASE(Cr108416, "security/108416.webm", PIPELINE_OK, PIPELINE_OK); |
| 86 FFMPEG_TEST_CASE(Cr110849, | 86 FFMPEG_TEST_CASE(Cr110849, |
| 87 "security/110849.mkv", | 87 "security/110849.mkv", |
| 88 DEMUXER_ERROR_COULD_NOT_OPEN, | 88 DEMUXER_ERROR_COULD_NOT_OPEN, |
| 89 DEMUXER_ERROR_NO_SUPPORTED_STREAMS); | 89 DEMUXER_ERROR_NO_SUPPORTED_STREAMS); |
| 90 FFMPEG_TEST_CASE(Cr112384, | 90 FFMPEG_TEST_CASE(Cr112384, "security/112384.webm", PIPELINE_OK, PIPELINE_OK); |
| 91 "security/112384.webm", | |
| 92 DEMUXER_ERROR_COULD_NOT_PARSE, | |
| 93 DEMUXER_ERROR_COULD_NOT_PARSE); | |
| 94 FFMPEG_TEST_CASE(Cr112976, "security/112976.ogg", PIPELINE_OK, PIPELINE_OK); | 91 FFMPEG_TEST_CASE(Cr112976, "security/112976.ogg", PIPELINE_OK, PIPELINE_OK); |
| 95 FFMPEG_TEST_CASE(Cr116927, | 92 FFMPEG_TEST_CASE(Cr116927, |
| 96 "security/116927.ogv", | 93 "security/116927.ogv", |
| 97 DEMUXER_ERROR_NO_SUPPORTED_STREAMS, | 94 DEMUXER_ERROR_NO_SUPPORTED_STREAMS, |
| 98 DEMUXER_ERROR_NO_SUPPORTED_STREAMS); | 95 DEMUXER_ERROR_NO_SUPPORTED_STREAMS); |
| 99 FFMPEG_TEST_CASE(Cr117912, | 96 FFMPEG_TEST_CASE(Cr117912, |
| 100 "security/117912.webm", | 97 "security/117912.webm", |
| 101 DEMUXER_ERROR_COULD_NOT_OPEN, | 98 DEMUXER_ERROR_COULD_NOT_OPEN, |
| 102 DEMUXER_ERROR_COULD_NOT_OPEN); | 99 DEMUXER_ERROR_COULD_NOT_OPEN); |
| 103 FFMPEG_TEST_CASE(Cr123481, "security/123481.ogv", PIPELINE_OK, PIPELINE_OK); | 100 FFMPEG_TEST_CASE(Cr123481, "security/123481.ogv", PIPELINE_OK, PIPELINE_OK); |
| 104 FFMPEG_TEST_CASE(Cr132779, | 101 FFMPEG_TEST_CASE(Cr132779, |
| 105 "security/132779.webm", | 102 "security/132779.webm", |
| 106 DEMUXER_ERROR_COULD_NOT_PARSE, | 103 DEMUXER_ERROR_COULD_NOT_PARSE, |
| 107 DEMUXER_ERROR_COULD_NOT_PARSE); | 104 DEMUXER_ERROR_COULD_NOT_PARSE); |
| 108 FFMPEG_TEST_CASE(Cr140165, "security/140165.ogg", PIPELINE_OK, PIPELINE_OK); | 105 FFMPEG_TEST_CASE(Cr140165, "security/140165.ogg", PIPELINE_OK, PIPELINE_OK); |
| 109 FFMPEG_TEST_CASE(Cr140647, | 106 FFMPEG_TEST_CASE(Cr140647, |
| 110 "security/140647.ogv", | 107 "security/140647.ogv", |
| 111 DEMUXER_ERROR_COULD_NOT_OPEN, | 108 DEMUXER_ERROR_COULD_NOT_OPEN, |
| 112 DEMUXER_ERROR_COULD_NOT_OPEN); | 109 DEMUXER_ERROR_COULD_NOT_OPEN); |
| 113 FFMPEG_TEST_CASE(Cr142738, "crbug142738.ogg", PIPELINE_OK, PIPELINE_OK); | 110 FFMPEG_TEST_CASE(Cr142738, "crbug142738.ogg", PIPELINE_OK, PIPELINE_OK); |
| 114 FFMPEG_TEST_CASE(Cr152691, | 111 FFMPEG_TEST_CASE(Cr152691, |
| 115 "security/152691.mp3", | 112 "security/152691.mp3", |
| 116 PIPELINE_OK, | 113 PIPELINE_OK, |
| 117 PIPELINE_ERROR_DECODE); | 114 PIPELINE_ERROR_DECODE); |
| 118 FFMPEG_TEST_CASE(Cr161639, | 115 FFMPEG_TEST_CASE(Cr161639, "security/161639.m4a", PIPELINE_OK, PIPELINE_OK); |
| 119 "security/161639.m4a", | |
| 120 PIPELINE_OK, | |
| 121 PIPELINE_ERROR_DECODE); | |
| 122 FFMPEG_TEST_CASE(Cr222754, | 116 FFMPEG_TEST_CASE(Cr222754, |
| 123 "security/222754.mp4", | 117 "security/222754.mp4", |
| 124 PIPELINE_OK, | 118 PIPELINE_OK, |
| 125 PIPELINE_ERROR_DECODE); | 119 PIPELINE_ERROR_DECODE); |
| 126 FFMPEG_TEST_CASE(Cr234630a, "security/234630a.mov", PIPELINE_OK, PIPELINE_OK); | 120 FFMPEG_TEST_CASE(Cr234630a, "security/234630a.mov", PIPELINE_OK, PIPELINE_OK); |
| 127 FFMPEG_TEST_CASE(Cr234630b, | 121 FFMPEG_TEST_CASE(Cr234630b, |
| 128 "security/234630b.mov", | 122 "security/234630b.mov", |
| 129 PIPELINE_OK, | 123 PIPELINE_OK, |
| 130 PIPELINE_ERROR_DECODE); | 124 PIPELINE_ERROR_DECODE); |
| 131 FFMPEG_TEST_CASE(Cr242786, "security/242786.webm", PIPELINE_OK, PIPELINE_OK); | 125 FFMPEG_TEST_CASE(Cr242786, "security/242786.webm", PIPELINE_OK, PIPELINE_OK); |
| 132 // Test for out-of-bounds access with slightly corrupt file (detection logic | 126 // Test for out-of-bounds access with slightly corrupt file (detection logic |
| 133 // thinks it's a MONO file, but actually contains STEREO audio). | 127 // thinks it's a MONO file, but actually contains STEREO audio). |
| 134 FFMPEG_TEST_CASE(Cr275590, | 128 FFMPEG_TEST_CASE(Cr275590, "security/275590.m4a", PIPELINE_OK, PIPELINE_OK); |
| 135 "security/275590.m4a", | |
| 136 DECODER_ERROR_NOT_SUPPORTED, | |
| 137 DEMUXER_ERROR_COULD_NOT_OPEN); | |
| 138 FFMPEG_TEST_CASE(Cr444522, "security/444522.mp4", PIPELINE_OK, PIPELINE_OK); | 129 FFMPEG_TEST_CASE(Cr444522, "security/444522.mp4", PIPELINE_OK, PIPELINE_OK); |
| 139 FFMPEG_TEST_CASE(Cr444539, | 130 FFMPEG_TEST_CASE(Cr444539, |
| 140 "security/444539.m4a", | 131 "security/444539.m4a", |
| 141 DEMUXER_ERROR_COULD_NOT_OPEN, | 132 DEMUXER_ERROR_COULD_NOT_OPEN, |
| 142 DEMUXER_ERROR_COULD_NOT_OPEN); | 133 DEMUXER_ERROR_COULD_NOT_OPEN); |
| 143 FFMPEG_TEST_CASE(Cr444546, | 134 FFMPEG_TEST_CASE(Cr444546, |
| 144 "security/444546.mp4", | 135 "security/444546.mp4", |
| 145 DEMUXER_ERROR_COULD_NOT_OPEN, | 136 DEMUXER_ERROR_COULD_NOT_OPEN, |
| 146 DEMUXER_ERROR_COULD_NOT_OPEN); | 137 DEMUXER_ERROR_COULD_NOT_OPEN); |
| 147 FFMPEG_TEST_CASE(Cr449958, | 138 FFMPEG_TEST_CASE(Cr449958, |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 324 FLAKY_FFMPEG_TEST_CASE(WEBM_3, "security/out.webm.139771.2965"); | 315 FLAKY_FFMPEG_TEST_CASE(WEBM_3, "security/out.webm.139771.2965"); |
| 325 | 316 |
| 326 // Not really flaky, but can't pass the seek test. | 317 // Not really flaky, but can't pass the seek test. |
| 327 FLAKY_FFMPEG_TEST_CASE(MP4_10, "security/null1.m4a"); | 318 FLAKY_FFMPEG_TEST_CASE(MP4_10, "security/null1.m4a"); |
| 328 FLAKY_FFMPEG_TEST_CASE(Cr112670, "security/112670.mp4"); | 319 FLAKY_FFMPEG_TEST_CASE(Cr112670, "security/112670.mp4"); |
| 329 | 320 |
| 330 TEST_P(FFmpegRegressionTest, BasicPlayback) { | 321 TEST_P(FFmpegRegressionTest, BasicPlayback) { |
| 331 if (GetParam().init_status == PIPELINE_OK) { | 322 if (GetParam().init_status == PIPELINE_OK) { |
| 332 ASSERT_EQ(PIPELINE_OK, Start(GetParam().filename, kClockless)); | 323 ASSERT_EQ(PIPELINE_OK, Start(GetParam().filename, kClockless)); |
| 333 Play(); | 324 Play(); |
| 334 ASSERT_EQ(WaitUntilEndedOrError(), GetParam().end_status); | 325 ASSERT_EQ(GetParam().end_status, WaitUntilEndedOrError()); |
| 335 | 326 |
| 336 // Check for ended if the pipeline is expected to finish okay. | 327 // Check for ended if the pipeline is expected to finish okay. |
| 337 if (GetParam().end_status == PIPELINE_OK) { | 328 if (GetParam().end_status == PIPELINE_OK) { |
| 338 ASSERT_TRUE(ended_); | 329 ASSERT_TRUE(ended_); |
| 339 | 330 |
| 340 // Tack a seek on the end to catch any seeking issues. | 331 // Tack a seek on the end to catch any seeking issues. |
| 341 Seek(base::TimeDelta::FromMilliseconds(0)); | 332 Seek(base::TimeDelta::FromMilliseconds(0)); |
| 342 } | 333 } |
| 343 } else { | 334 } else { |
| 344 // Don't bother checking the exact status as we only care that the | 335 // Don't bother checking the exact status as we only care that the |
| 345 // pipeline failed to start. | 336 // pipeline failed to start. |
| 346 EXPECT_NE(PIPELINE_OK, Start(GetParam().filename)); | 337 EXPECT_NE(PIPELINE_OK, Start(GetParam().filename)); |
| 347 } | 338 } |
| 348 } | 339 } |
| 349 | 340 |
| 350 TEST_P(FlakyFFmpegRegressionTest, BasicPlayback) { | 341 TEST_P(FlakyFFmpegRegressionTest, BasicPlayback) { |
| 351 if (Start(GetParam().filename, kClockless) == PIPELINE_OK) { | 342 if (Start(GetParam().filename, kClockless) == PIPELINE_OK) { |
| 352 Play(); | 343 Play(); |
| 353 WaitUntilEndedOrError(); | 344 WaitUntilEndedOrError(); |
| 354 } | 345 } |
| 355 } | 346 } |
| 356 | 347 |
| 357 } // namespace media | 348 } // namespace media |
| OLD | NEW |