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. Security test files can be found in the | 5 // Regression tests for FFmpeg. Security test files can be found in the |
6 // internal media test data directory: | 6 // internal media test data directory: |
7 // | 7 // |
8 // svn://svn.chromium.org/chrome-internal/trunk/data/media/security/ | 8 // svn://svn.chromium.org/chrome-internal/trunk/data/media/security/ |
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: |
11 // | 11 // |
12 // "src/media/test/data/security": | 12 // "src/media/test/data/security": |
13 // "svn://chrome-svn/chrome-internal/trunk/data/media/security" | 13 // "svn://chrome-svn/chrome-internal/trunk/data/media/security" |
14 // | 14 // |
15 // Many of the files here do not cause issues outside of tooling, so you'll need | 15 // Many of the files here do not cause issues outside of tooling, so you'll need |
16 // to run this test under ASAN, TSAN, and Valgrind to ensure that all issues are | 16 // to run this test under ASAN, TSAN, and Valgrind to ensure that all issues are |
17 // caught. | 17 // caught. |
18 // | 18 // |
19 // Test cases labeled FLAKY may not always pass, but they should never crash or | 19 // Test cases labeled FLAKY may not always pass, but they should never crash or |
20 // cause any kind of warnings or errors under tooling. | 20 // cause any kind of warnings or errors under tooling. |
21 // | 21 // |
22 // Frame hashes must be generated with --video-threads=1 for correctness. | 22 // Frame hashes must be generated with --video-threads=1 for correctness. |
23 // | 23 // |
24 // Known issues: | 24 // Known issues: |
25 // Cr47325 will generate an UninitValue error under Valgrind inside of the | 25 // Cr47325 will generate an UninitValue error under Valgrind inside of the |
26 // MD5 hashing code. The error occurs due to some problematic error | 26 // MD5 hashing code. The error occurs due to some problematic error |
27 // resilence code for H264 inside of FFmpeg. See http://crbug.com/119020 | 27 // resilence code for H264 inside of FFmpeg. See http://crbug.com/119020 |
28 // | 28 // |
29 // FLAKY_OGV_0 may run out of memory under ASAN on IA32 Linux/Mac. | |
30 // | |
31 // Some OGG files leak ~30 bytes of memory, upstream tracking bug: | 29 // Some OGG files leak ~30 bytes of memory, upstream tracking bug: |
32 // https://ffmpeg.org/trac/ffmpeg/ticket/1244 | 30 // https://ffmpeg.org/trac/ffmpeg/ticket/1244 |
33 // | 31 // |
| 32 // Some OGG files leak hundreds of kilobytes of memory, upstream bug: |
| 33 // https://ffmpeg.org/trac/ffmpeg/ticket/1931 |
34 | 34 |
35 #include "media/filters/pipeline_integration_test_base.h" | 35 #include "media/filters/pipeline_integration_test_base.h" |
36 | 36 |
37 #include "base/bind.h" | 37 #include "base/bind.h" |
38 #include "media/base/test_data_util.h" | 38 #include "media/base/test_data_util.h" |
39 | 39 |
40 namespace media { | 40 namespace media { |
41 | 41 |
42 struct RegressionTestData { | 42 struct RegressionTestData { |
43 RegressionTestData(const char* filename, PipelineStatus init_status, | 43 RegressionTestData(const char* filename, PipelineStatus init_status, |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
92 | 92 |
93 // Test cases from issues. | 93 // Test cases from issues. |
94 FFMPEG_TEST_CASE(Cr47325, "security/47325.mp4", PIPELINE_OK, PIPELINE_OK, | 94 FFMPEG_TEST_CASE(Cr47325, "security/47325.mp4", PIPELINE_OK, PIPELINE_OK, |
95 "2a7a938c6b5979621cec998f02d9bbb6", | 95 "2a7a938c6b5979621cec998f02d9bbb6", |
96 "efbc63a850c9f8f51942f6a6029eb00f"); | 96 "efbc63a850c9f8f51942f6a6029eb00f"); |
97 FFMPEG_TEST_CASE(Cr47761, "content/crbug47761.ogg", PIPELINE_OK, PIPELINE_OK, | 97 FFMPEG_TEST_CASE(Cr47761, "content/crbug47761.ogg", PIPELINE_OK, PIPELINE_OK, |
98 kNullHash, | 98 kNullHash, |
99 "f45b9d7556f39dd811700ec72cb71483"); | 99 "f45b9d7556f39dd811700ec72cb71483"); |
100 FFMPEG_TEST_CASE(Cr50045, "content/crbug50045.mp4", PIPELINE_OK, PIPELINE_OK, | 100 FFMPEG_TEST_CASE(Cr50045, "content/crbug50045.mp4", PIPELINE_OK, PIPELINE_OK, |
101 "c345e9ef9ebfc6bfbcbe3f0ddc3125ba", | 101 "c345e9ef9ebfc6bfbcbe3f0ddc3125ba", |
102 "39cc70f744944eb01da947b8cf6fcd58"); | 102 "73d65d9cc6ce25060b7510bd74678c26"); |
103 FFMPEG_TEST_CASE(Cr62127, "content/crbug62127.webm", | 103 FFMPEG_TEST_CASE(Cr62127, "content/crbug62127.webm", PIPELINE_ERROR_DECODE, |
104 PIPELINE_OK, PIPELINE_OK, | 104 PIPELINE_ERROR_DECODE, "d41d8cd98f00b204e9800998ecf8427e", |
105 "a064b2776fc5aef3e9cba47967a75db9", kNullHash); | 105 kNullHash); |
106 FFMPEG_TEST_CASE(Cr93620, "security/93620.ogg", PIPELINE_OK, PIPELINE_OK, | 106 FFMPEG_TEST_CASE(Cr93620, "security/93620.ogg", PIPELINE_OK, PIPELINE_OK, |
107 kNullHash, | 107 kNullHash, |
108 "0cff252cd46867d26c42a96e6a2e2376"); | 108 "0cff252cd46867d26c42a96e6a2e2376"); |
109 FFMPEG_TEST_CASE(Cr100492, "security/100492.webm", DECODER_ERROR_NOT_SUPPORTED, | 109 FFMPEG_TEST_CASE(Cr100492, "security/100492.webm", DECODER_ERROR_NOT_SUPPORTED, |
110 DECODER_ERROR_NOT_SUPPORTED, kNullHash, kNullHash); | 110 DECODER_ERROR_NOT_SUPPORTED, kNullHash, kNullHash); |
111 FFMPEG_TEST_CASE(Cr100543, "security/100543.webm", PIPELINE_OK, PIPELINE_OK, | 111 FFMPEG_TEST_CASE(Cr100543, "security/100543.webm", PIPELINE_OK, PIPELINE_OK, |
112 "c16691cc9178db3adbf7e562cadcd6e6", | 112 "c16691cc9178db3adbf7e562cadcd6e6", |
113 "816d9a772a449bc29f65f58244ee04c9"); | 113 "816d9a772a449bc29f65f58244ee04c9"); |
114 FFMPEG_TEST_CASE(Cr101458, "security/101458.webm", DECODER_ERROR_NOT_SUPPORTED, | 114 FFMPEG_TEST_CASE(Cr101458, "security/101458.webm", DECODER_ERROR_NOT_SUPPORTED, |
115 DECODER_ERROR_NOT_SUPPORTED, kNullHash, kNullHash); | 115 DECODER_ERROR_NOT_SUPPORTED, kNullHash, kNullHash); |
116 FFMPEG_TEST_CASE(Cr108416, "security/108416.webm", PIPELINE_OK, PIPELINE_OK, | 116 FFMPEG_TEST_CASE(Cr108416, "security/108416.webm", PIPELINE_OK, PIPELINE_OK, |
117 "5cb3a934795cd552753dec7687928291", | 117 "5cb3a934795cd552753dec7687928291", |
118 "3e576c21f83f3c00719dbe62998d71cb"); | 118 "3e576c21f83f3c00719dbe62998d71cb"); |
119 FFMPEG_TEST_CASE(Cr110849, "security/110849.mkv", | 119 FFMPEG_TEST_CASE(Cr110849, "security/110849.mkv", |
120 DEMUXER_ERROR_NO_SUPPORTED_STREAMS, | 120 DEMUXER_ERROR_NO_SUPPORTED_STREAMS, |
121 DEMUXER_ERROR_NO_SUPPORTED_STREAMS, kNullHash, kNullHash); | 121 DEMUXER_ERROR_NO_SUPPORTED_STREAMS, kNullHash, kNullHash); |
122 FFMPEG_TEST_CASE(Cr112384, "security/112384.webm", | 122 FFMPEG_TEST_CASE(Cr112384, "security/112384.webm", |
123 DEMUXER_ERROR_COULD_NOT_PARSE, DEMUXER_ERROR_COULD_NOT_PARSE, | 123 DEMUXER_ERROR_COULD_NOT_PARSE, DEMUXER_ERROR_COULD_NOT_PARSE, |
124 kNullHash, kNullHash); | 124 kNullHash, kNullHash); |
125 FFMPEG_TEST_CASE(Cr112670, "security/112670.mp4", PIPELINE_ERROR_DECODE, | 125 FFMPEG_TEST_CASE(Cr112670, "security/112670.mp4", PIPELINE_ERROR_DECODE, |
126 PIPELINE_ERROR_DECODE, kNullHash, | 126 PIPELINE_ERROR_DECODE, kNullHash, |
127 "59adb24ef3cdbe0297f05b395827453f"); | 127 "59adb24ef3cdbe0297f05b395827453f"); |
128 FFMPEG_TEST_CASE(Cr112976, "security/112976.ogg", PIPELINE_OK, | 128 FFMPEG_TEST_CASE(Cr112976, "security/112976.ogg", PIPELINE_OK, |
129 PIPELINE_ERROR_DECODE, kNullHash, | 129 PIPELINE_ERROR_DECODE, kNullHash, |
130 "ef79f7c5805561908805eb0bb7097bb4"); | 130 "ef79f7c5805561908805eb0bb7097bb4"); |
131 FFMPEG_TEST_CASE(Cr116927, "security/116927.ogv", PIPELINE_ERROR_DECODE, | 131 FFMPEG_TEST_CASE(Cr116927, "security/116927.ogv", DEMUXER_ERROR_COULD_NOT_OPEN, |
132 PIPELINE_ERROR_DECODE, kNullHash, kNullHash); | 132 DEMUXER_ERROR_COULD_NOT_OPEN, kNullHash, kNullHash); |
133 FFMPEG_TEST_CASE(Cr117912, "security/117912.webm", DEMUXER_ERROR_COULD_NOT_OPEN, | 133 FFMPEG_TEST_CASE(Cr117912, "security/117912.webm", DEMUXER_ERROR_COULD_NOT_OPEN, |
134 DEMUXER_ERROR_COULD_NOT_OPEN, kNullHash, kNullHash); | 134 DEMUXER_ERROR_COULD_NOT_OPEN, kNullHash, kNullHash); |
135 FFMPEG_TEST_CASE(Cr123481, "security/123481.ogv", PIPELINE_OK, | 135 FFMPEG_TEST_CASE(Cr123481, "security/123481.ogv", PIPELINE_OK, |
136 PIPELINE_OK, "e6dd853fcbd746c8bb2ab2b8fc376fc7", | 136 PIPELINE_OK, "e6dd853fcbd746c8bb2ab2b8fc376fc7", |
137 "c96a166a09061ca94202903d7824cf04"); | 137 "c96a166a09061ca94202903d7824cf04"); |
138 FFMPEG_TEST_CASE(Cr132779, "security/132779.webm", | 138 FFMPEG_TEST_CASE(Cr132779, "security/132779.webm", |
139 DEMUXER_ERROR_COULD_NOT_PARSE, DEMUXER_ERROR_COULD_NOT_PARSE, | 139 DEMUXER_ERROR_COULD_NOT_PARSE, DEMUXER_ERROR_COULD_NOT_PARSE, |
140 kNullHash, kNullHash); | 140 kNullHash, kNullHash); |
141 FFMPEG_TEST_CASE(Cr140165, "security/140165.ogg", PIPELINE_ERROR_DECODE, | 141 FFMPEG_TEST_CASE(Cr140165, "security/140165.ogg", PIPELINE_ERROR_DECODE, |
142 PIPELINE_ERROR_DECODE, kNullHash, | 142 PIPELINE_ERROR_DECODE, kNullHash, |
143 "bd42757e42bdada18cb9441ee4ef8313"); | 143 "bd42757e42bdada18cb9441ee4ef8313"); |
144 FFMPEG_TEST_CASE(Cr140647, "security/140647.ogv", | 144 FFMPEG_TEST_CASE(Cr140647, "security/140647.ogv", DEMUXER_ERROR_COULD_NOT_OPEN, |
145 DECODER_ERROR_NOT_SUPPORTED, DECODER_ERROR_NOT_SUPPORTED, | 145 DEMUXER_ERROR_COULD_NOT_OPEN, kNullHash, kNullHash); |
146 kNullHash, kNullHash); | |
147 FFMPEG_TEST_CASE(Cr142738, "content/crbug142738.ogg", PIPELINE_OK, PIPELINE_OK, | 146 FFMPEG_TEST_CASE(Cr142738, "content/crbug142738.ogg", PIPELINE_OK, PIPELINE_OK, |
148 kNullHash, | 147 kNullHash, |
149 "03a9591e5b596eb848feeafd7693f371"); | 148 "03a9591e5b596eb848feeafd7693f371"); |
150 FFMPEG_TEST_CASE(Cr152691, "security/152691.mp3", PIPELINE_ERROR_DECODE, | 149 FFMPEG_TEST_CASE(Cr152691, "security/152691.mp3", PIPELINE_ERROR_DECODE, |
151 PIPELINE_ERROR_DECODE, kNullHash, | 150 PIPELINE_ERROR_DECODE, kNullHash, |
152 "59adb24ef3cdbe0297f05b395827453f"); | 151 "59adb24ef3cdbe0297f05b395827453f"); |
| 152 FFMPEG_TEST_CASE(Cr161639, "security/161639.m4a", PIPELINE_OK, PIPELINE_OK, |
| 153 kNullHash, "97ae2fa2a2e9ff3c2cf17be96b08bbe8"); |
153 | 154 |
154 // General MKV test cases. | 155 // General MKV test cases. |
155 FFMPEG_TEST_CASE(MKV_0, "security/nested_tags_lang.mka.627.628", PIPELINE_OK, | 156 FFMPEG_TEST_CASE(MKV_0, "security/nested_tags_lang.mka.627.628", PIPELINE_OK, |
156 PIPELINE_ERROR_DECODE, kNullHash, | 157 PIPELINE_ERROR_DECODE, kNullHash, |
157 "7d1d74b9801002d983e7df3d52dd6db6"); | 158 "3fc4e8ef212df08c61acce3db34b2d09"); |
158 FFMPEG_TEST_CASE(MKV_1, "security/nested_tags_lang.mka.667.628", PIPELINE_OK, | 159 FFMPEG_TEST_CASE(MKV_1, "security/nested_tags_lang.mka.667.628", PIPELINE_OK, |
159 PIPELINE_ERROR_DECODE, kNullHash, | 160 PIPELINE_ERROR_DECODE, kNullHash, |
160 "7d04ad131b4b07e04406159a17537a54"); | 161 "2f5ad3e7dd25fa5c0e8f26879953ef0f"); |
161 | 162 |
162 // General MP4 test cases. | 163 // General MP4 test cases. |
163 FFMPEG_TEST_CASE(MP4_0, "security/aac.10419.mp4", PIPELINE_OK, PIPELINE_OK, | 164 FFMPEG_TEST_CASE(MP4_0, "security/aac.10419.mp4", DEMUXER_ERROR_COULD_NOT_OPEN, |
164 kNullHash, kNullHash); | 165 DEMUXER_ERROR_COULD_NOT_OPEN, kNullHash, kNullHash); |
165 FFMPEG_TEST_CASE(MP4_1, "security/clockh264aac_200021889.mp4", | 166 FFMPEG_TEST_CASE(MP4_1, "security/clockh264aac_200021889.mp4", |
166 DEMUXER_ERROR_COULD_NOT_OPEN, DEMUXER_ERROR_COULD_NOT_OPEN, | 167 DEMUXER_ERROR_COULD_NOT_OPEN, DEMUXER_ERROR_COULD_NOT_OPEN, |
167 kNullHash, kNullHash); | 168 kNullHash, kNullHash); |
168 FFMPEG_TEST_CASE(MP4_2, "security/clockh264aac_200701257.mp4", PIPELINE_OK, | 169 FFMPEG_TEST_CASE(MP4_2, "security/clockh264aac_200701257.mp4", PIPELINE_OK, |
169 PIPELINE_OK, kNullHash, "d4fea8297ca1c5ad7bbcd858864f66d9"); | 170 PIPELINE_OK, kNullHash, "d41d8cd98f00b204e9800998ecf8427e"); |
170 FFMPEG_TEST_CASE(MP4_5, "security/clockh264aac_3022500.mp4", | 171 FFMPEG_TEST_CASE(MP4_5, "security/clockh264aac_3022500.mp4", |
171 DEMUXER_ERROR_NO_SUPPORTED_STREAMS, | 172 DEMUXER_ERROR_NO_SUPPORTED_STREAMS, |
172 DEMUXER_ERROR_NO_SUPPORTED_STREAMS, kNullHash, kNullHash); | 173 DEMUXER_ERROR_NO_SUPPORTED_STREAMS, kNullHash, kNullHash); |
173 FFMPEG_TEST_CASE(MP4_6, "security/clockh264aac_344289.mp4", PIPELINE_OK, | 174 FFMPEG_TEST_CASE(MP4_6, "security/clockh264aac_344289.mp4", PIPELINE_OK, |
174 PIPELINE_OK, kNullHash, kNullHash); | 175 PIPELINE_OK, kNullHash, kNullHash); |
175 FFMPEG_TEST_CASE(MP4_7, "security/clockh264mp3_187697.mp4", | 176 FFMPEG_TEST_CASE(MP4_7, "security/clockh264mp3_187697.mp4", |
176 DEMUXER_ERROR_NO_SUPPORTED_STREAMS, | 177 DEMUXER_ERROR_NO_SUPPORTED_STREAMS, |
177 DEMUXER_ERROR_NO_SUPPORTED_STREAMS, | 178 DEMUXER_ERROR_NO_SUPPORTED_STREAMS, |
178 kNullHash, kNullHash); | 179 kNullHash, kNullHash); |
179 FFMPEG_TEST_CASE(MP4_8, "security/h264.705767.mp4", | 180 FFMPEG_TEST_CASE(MP4_8, "security/h264.705767.mp4", |
180 DEMUXER_ERROR_COULD_NOT_PARSE, DEMUXER_ERROR_COULD_NOT_PARSE, | 181 DEMUXER_ERROR_COULD_NOT_PARSE, DEMUXER_ERROR_COULD_NOT_PARSE, |
181 kNullHash, kNullHash); | 182 kNullHash, kNullHash); |
182 FFMPEG_TEST_CASE(MP4_9, "security/smclockmp4aac_1_0.mp4", | 183 FFMPEG_TEST_CASE(MP4_9, "security/smclockmp4aac_1_0.mp4", |
183 DEMUXER_ERROR_COULD_NOT_OPEN, DEMUXER_ERROR_COULD_NOT_OPEN, | 184 DEMUXER_ERROR_COULD_NOT_OPEN, DEMUXER_ERROR_COULD_NOT_OPEN, |
184 kNullHash, kNullHash); | 185 kNullHash, kNullHash); |
185 FFMPEG_TEST_CASE(MP4_11, "security/null1.mp4", PIPELINE_OK, PIPELINE_OK, | 186 FFMPEG_TEST_CASE(MP4_11, "security/null1.mp4", PIPELINE_OK, PIPELINE_OK, |
186 kNullHash, "d30daffed220266a133b27e00b892558"); | 187 kNullHash, "7397188f229211987268f39ef5a45b3c"); |
187 FFMPEG_TEST_CASE(MP4_16, "security/looping2.mov", | 188 FFMPEG_TEST_CASE(MP4_16, "security/looping2.mov", |
188 DEMUXER_ERROR_COULD_NOT_OPEN, DEMUXER_ERROR_COULD_NOT_OPEN, | 189 DEMUXER_ERROR_COULD_NOT_OPEN, DEMUXER_ERROR_COULD_NOT_OPEN, |
189 kNullHash, kNullHash); | 190 kNullHash, kNullHash); |
190 | 191 |
191 // General OGV test cases. | 192 // General OGV test cases. |
192 FFMPEG_TEST_CASE(OGV_1, "security/out.163.ogv", DECODER_ERROR_NOT_SUPPORTED, | 193 FFMPEG_TEST_CASE(OGV_1, "security/out.163.ogv", DECODER_ERROR_NOT_SUPPORTED, |
193 DECODER_ERROR_NOT_SUPPORTED, kNullHash, kNullHash); | 194 DECODER_ERROR_NOT_SUPPORTED, kNullHash, kNullHash); |
194 FFMPEG_TEST_CASE(OGV_2, "security/out.391.ogv", DECODER_ERROR_NOT_SUPPORTED, | 195 FFMPEG_TEST_CASE(OGV_2, "security/out.391.ogv", DECODER_ERROR_NOT_SUPPORTED, |
195 DECODER_ERROR_NOT_SUPPORTED, kNullHash, kNullHash); | 196 DECODER_ERROR_NOT_SUPPORTED, kNullHash, kNullHash); |
196 FFMPEG_TEST_CASE(OGV_5, "security/smclocktheora_1_0.ogv", | 197 FFMPEG_TEST_CASE(OGV_5, "security/smclocktheora_1_0.ogv", |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
246 DECODER_ERROR_NOT_SUPPORTED, DECODER_ERROR_NOT_SUPPORTED, | 247 DECODER_ERROR_NOT_SUPPORTED, DECODER_ERROR_NOT_SUPPORTED, |
247 kNullHash, kNullHash); | 248 kNullHash, kNullHash); |
248 FFMPEG_TEST_CASE(WEBM_4, "security/out.webm.68798.1929", | 249 FFMPEG_TEST_CASE(WEBM_4, "security/out.webm.68798.1929", |
249 DECODER_ERROR_NOT_SUPPORTED, DECODER_ERROR_NOT_SUPPORTED, | 250 DECODER_ERROR_NOT_SUPPORTED, DECODER_ERROR_NOT_SUPPORTED, |
250 kNullHash, kNullHash); | 251 kNullHash, kNullHash); |
251 FFMPEG_TEST_CASE(WEBM_5, "content/frame_size_change.webm", PIPELINE_OK, | 252 FFMPEG_TEST_CASE(WEBM_5, "content/frame_size_change.webm", PIPELINE_OK, |
252 PIPELINE_OK, "d8fcf2896b7400a2261bac9e9ea930f8", kNullHash); | 253 PIPELINE_OK, "d8fcf2896b7400a2261bac9e9ea930f8", kNullHash); |
253 | 254 |
254 // Audio Functional Tests | 255 // Audio Functional Tests |
255 FFMPEG_TEST_CASE(AUDIO_GAMING_0, "content/gaming/a_220_00.mp3", PIPELINE_OK, | 256 FFMPEG_TEST_CASE(AUDIO_GAMING_0, "content/gaming/a_220_00.mp3", PIPELINE_OK, |
256 PIPELINE_OK, kNullHash, "1693d9a1e498b13c2a7fb8e7e62db880"); | 257 PIPELINE_OK, kNullHash, "3c2e03569e2af83415a8f32065425f8c"); |
257 FFMPEG_TEST_CASE(AUDIO_GAMING_1, "content/gaming/a_220_00_v2.ogg", PIPELINE_OK, | 258 FFMPEG_TEST_CASE(AUDIO_GAMING_1, "content/gaming/a_220_00_v2.ogg", PIPELINE_OK, |
258 PIPELINE_OK, kNullHash, "2fa0e9fca48759a7de1c22418fba7ea0"); | 259 PIPELINE_OK, kNullHash, "2fa0e9fca48759a7de1c22418fba7ea0"); |
259 FFMPEG_TEST_CASE(AUDIO_GAMING_2, "content/gaming/ai_laser1.ogg", PIPELINE_OK, | 260 FFMPEG_TEST_CASE(AUDIO_GAMING_2, "content/gaming/ai_laser1.ogg", PIPELINE_OK, |
260 PIPELINE_OK, kNullHash, "d4f331b0f7f04e94cd70f037a1091c2b"); | 261 PIPELINE_OK, kNullHash, "d4f331b0f7f04e94cd70f037a1091c2b"); |
261 FFMPEG_TEST_CASE(AUDIO_GAMING_3, "content/gaming/ai_laser2.ogg", PIPELINE_OK, | 262 FFMPEG_TEST_CASE(AUDIO_GAMING_3, "content/gaming/ai_laser2.ogg", PIPELINE_OK, |
262 PIPELINE_OK, kNullHash, "7b0eccb651e5572711f9c8826cc14c3c"); | 263 PIPELINE_OK, kNullHash, "7b0eccb651e5572711f9c8826cc14c3c"); |
263 FFMPEG_TEST_CASE(AUDIO_GAMING_4, "content/gaming/ai_laser3.ogg", PIPELINE_OK, | 264 FFMPEG_TEST_CASE(AUDIO_GAMING_4, "content/gaming/ai_laser3.ogg", PIPELINE_OK, |
264 PIPELINE_OK, kNullHash, "cd977a2dd4fa570f1a7392fc9948f184"); | 265 PIPELINE_OK, kNullHash, "cd977a2dd4fa570f1a7392fc9948f184"); |
265 FFMPEG_TEST_CASE(AUDIO_GAMING_5, "content/gaming/ai_laser4.ogg", PIPELINE_OK, | 266 FFMPEG_TEST_CASE(AUDIO_GAMING_5, "content/gaming/ai_laser4.ogg", PIPELINE_OK, |
266 PIPELINE_OK, kNullHash, "155caa85c878abae43428f424cdc8848"); | 267 PIPELINE_OK, kNullHash, "155caa85c878abae43428f424cdc8848"); |
(...skipping 17 matching lines...) Expand all Loading... |
284 PIPELINE_OK, kNullHash, "313344cc2c02db5b23e336a9523b0c4a"); | 285 PIPELINE_OK, kNullHash, "313344cc2c02db5b23e336a9523b0c4a"); |
285 FFMPEG_TEST_CASE(AUDIO_GAMING_15, "content/gaming/leg3.ogg", PIPELINE_OK, | 286 FFMPEG_TEST_CASE(AUDIO_GAMING_15, "content/gaming/leg3.ogg", PIPELINE_OK, |
286 PIPELINE_OK, kNullHash, "25730f36ed51ba07eacca9c2b6235e6c"); | 287 PIPELINE_OK, kNullHash, "25730f36ed51ba07eacca9c2b6235e6c"); |
287 FFMPEG_TEST_CASE(AUDIO_GAMING_16, "content/gaming/lock_on.ogg", PIPELINE_OK, | 288 FFMPEG_TEST_CASE(AUDIO_GAMING_16, "content/gaming/lock_on.ogg", PIPELINE_OK, |
288 PIPELINE_OK, kNullHash, "92a3af2fc3597e7aaf5b06748daf5d6a"); | 289 PIPELINE_OK, kNullHash, "92a3af2fc3597e7aaf5b06748daf5d6a"); |
289 FFMPEG_TEST_CASE(AUDIO_GAMING_17, "content/gaming/enemy_lock_on.ogg", | 290 FFMPEG_TEST_CASE(AUDIO_GAMING_17, "content/gaming/enemy_lock_on.ogg", |
290 PIPELINE_OK, PIPELINE_OK, kNullHash, | 291 PIPELINE_OK, PIPELINE_OK, kNullHash, |
291 "9670d8f5a668cf85f8ae8d6f8e0fdcdc"); | 292 "9670d8f5a668cf85f8ae8d6f8e0fdcdc"); |
292 FFMPEG_TEST_CASE(AUDIO_GAMING_18, "content/gaming/rocket_launcher.mp3", | 293 FFMPEG_TEST_CASE(AUDIO_GAMING_18, "content/gaming/rocket_launcher.mp3", |
293 PIPELINE_OK, PIPELINE_OK, kNullHash, | 294 PIPELINE_OK, PIPELINE_OK, kNullHash, |
294 "bd8b70f6452360db7cca5c34b6e72844"); | 295 "91354320606584f4404514d914d01ee0"); |
295 | 296 |
296 // Allocate gigabytes of memory, likely can't be run on 32bit machines. | 297 // Allocate gigabytes of memory, likely can't be run on 32bit machines. |
297 FFMPEG_TEST_CASE(BIG_MEM_1, "security/bigmem1.mov", | 298 FFMPEG_TEST_CASE(BIG_MEM_1, "security/bigmem1.mov", |
298 DEMUXER_ERROR_COULD_NOT_OPEN, DEMUXER_ERROR_COULD_NOT_OPEN, | 299 DEMUXER_ERROR_COULD_NOT_OPEN, DEMUXER_ERROR_COULD_NOT_OPEN, |
299 kNullHash, kNullHash); | 300 kNullHash, kNullHash); |
300 FFMPEG_TEST_CASE(BIG_MEM_2, "security/looping1.mov", | 301 FFMPEG_TEST_CASE(BIG_MEM_2, "security/looping1.mov", |
301 DEMUXER_ERROR_COULD_NOT_PARSE, DEMUXER_ERROR_COULD_NOT_PARSE, | 302 DEMUXER_ERROR_COULD_NOT_OPEN, DEMUXER_ERROR_COULD_NOT_OPEN, |
302 kNullHash, kNullHash); | 303 kNullHash, kNullHash); |
303 FFMPEG_TEST_CASE(BIG_MEM_5, "security/looping5.mov", | 304 FFMPEG_TEST_CASE(BIG_MEM_5, "security/looping5.mov", |
304 DEMUXER_ERROR_COULD_NOT_PARSE, DEMUXER_ERROR_COULD_NOT_PARSE, | 305 DEMUXER_ERROR_COULD_NOT_OPEN, DEMUXER_ERROR_COULD_NOT_OPEN, |
305 kNullHash, kNullHash); | 306 kNullHash, kNullHash); |
306 FLAKY_FFMPEG_TEST_CASE(BIG_MEM_3, "security/looping3.mov"); | 307 FLAKY_FFMPEG_TEST_CASE(BIG_MEM_3, "security/looping3.mov"); |
307 FLAKY_FFMPEG_TEST_CASE(BIG_MEM_4, "security/looping4.mov"); | 308 FLAKY_FFMPEG_TEST_CASE(BIG_MEM_4, "security/looping4.mov"); |
308 | 309 |
309 // Flaky under threading or for other reasons. Per rbultje, most of these will | 310 // Flaky under threading or for other reasons. Per rbultje, most of these will |
310 // never be reliable since FFmpeg does not guarantee consistency in error cases. | 311 // never be reliable since FFmpeg does not guarantee consistency in error cases. |
311 // We only really care that these don't cause crashes or errors under tooling. | 312 // We only really care that these don't cause crashes or errors under tooling. |
312 FLAKY_FFMPEG_TEST_CASE(Cr99652, "security/99652.webm"); | 313 FLAKY_FFMPEG_TEST_CASE(Cr99652, "security/99652.webm"); |
313 FLAKY_FFMPEG_TEST_CASE(Cr100464, "security/100464.webm"); | 314 FLAKY_FFMPEG_TEST_CASE(Cr100464, "security/100464.webm"); |
314 FLAKY_FFMPEG_TEST_CASE(Cr111342, "security/111342.ogm"); | 315 FLAKY_FFMPEG_TEST_CASE(Cr111342, "security/111342.ogm"); |
(...skipping 16 matching lines...) Expand all Loading... |
331 // kNullHash, kNullHash); | 332 // kNullHash, kNullHash); |
332 // FFMPEG_TEST_CASE(OGV_23, "security/assert2.ogv", PIPELINE_OK, PIPELINE_OK, | 333 // FFMPEG_TEST_CASE(OGV_23, "security/assert2.ogv", PIPELINE_OK, PIPELINE_OK, |
333 // kNullHash, kNullHash); | 334 // kNullHash, kNullHash); |
334 | 335 |
335 TEST_P(FFmpegRegressionTest, BasicPlayback) { | 336 TEST_P(FFmpegRegressionTest, BasicPlayback) { |
336 if (GetParam().init_status == PIPELINE_OK) { | 337 if (GetParam().init_status == PIPELINE_OK) { |
337 ASSERT_TRUE(Start(GetTestDataFilePath(GetParam().filename), | 338 ASSERT_TRUE(Start(GetTestDataFilePath(GetParam().filename), |
338 GetParam().init_status, true)); | 339 GetParam().init_status, true)); |
339 Play(); | 340 Play(); |
340 ASSERT_EQ(WaitUntilEndedOrError(), GetParam().end_status); | 341 ASSERT_EQ(WaitUntilEndedOrError(), GetParam().end_status); |
341 EXPECT_EQ(GetVideoHash(), GetParam().video_md5); | 342 EXPECT_EQ(GetParam().video_md5, GetVideoHash()); |
342 EXPECT_EQ(GetAudioHash(), GetParam().audio_md5); | 343 EXPECT_EQ(GetParam().audio_md5, GetAudioHash()); |
343 | 344 |
344 // Check for ended if the pipeline is expected to finish okay. | 345 // Check for ended if the pipeline is expected to finish okay. |
345 if (GetParam().end_status == PIPELINE_OK) { | 346 if (GetParam().end_status == PIPELINE_OK) { |
346 ASSERT_TRUE(ended_); | 347 ASSERT_TRUE(ended_); |
347 | 348 |
348 // Tack a seek on the end to catch any seeking issues. | 349 // Tack a seek on the end to catch any seeking issues. |
349 Seek(base::TimeDelta::FromMilliseconds(0)); | 350 Seek(base::TimeDelta::FromMilliseconds(0)); |
350 } | 351 } |
351 } else { | 352 } else { |
352 ASSERT_FALSE(Start(GetTestDataFilePath(GetParam().filename), | 353 ASSERT_FALSE(Start(GetTestDataFilePath(GetParam().filename), |
353 GetParam().init_status, true)); | 354 GetParam().init_status, true)); |
354 EXPECT_EQ(GetVideoHash(), GetParam().video_md5); | 355 EXPECT_EQ(GetParam().video_md5, GetVideoHash()); |
355 EXPECT_EQ(GetAudioHash(), GetParam().audio_md5); | 356 EXPECT_EQ(GetParam().audio_md5, GetAudioHash()); |
356 } | 357 } |
357 } | 358 } |
358 | 359 |
359 TEST_P(FlakyFFmpegRegressionTest, BasicPlayback) { | 360 TEST_P(FlakyFFmpegRegressionTest, BasicPlayback) { |
360 if (Start(GetTestDataFilePath(GetParam().filename))) { | 361 if (Start(GetTestDataFilePath(GetParam().filename))) { |
361 Play(); | 362 Play(); |
362 WaitUntilEndedOrError(); | 363 WaitUntilEndedOrError(); |
363 } | 364 } |
364 } | 365 } |
365 | 366 |
366 } // namespace media | 367 } // namespace media |
OLD | NEW |