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 |