Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(71)

Side by Side Diff: media/base/android/media_codec_bridge_unittest.cc

Issue 889053003: Revert of media: Enable Opus support in Clank <video> and MSE (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « media/base/android/media_codec_bridge.cc ('k') | media/filters/stream_parser_factory.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 #include <string> 5 #include <string>
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "media/base/android/media_codec_bridge.h" 10 #include "media/base/android/media_codec_bridge.h"
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 media_codec.reset(VideoCodecBridge::CreateDecoder( 153 media_codec.reset(VideoCodecBridge::CreateDecoder(
154 kCodecH264, false, gfx::Size(640, 480), NULL, NULL)); 154 kCodecH264, false, gfx::Size(640, 480), NULL, NULL));
155 } 155 }
156 156
157 TEST(MediaCodecBridgeTest, DoNormal) { 157 TEST(MediaCodecBridgeTest, DoNormal) {
158 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); 158 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
159 159
160 scoped_ptr<media::AudioCodecBridge> media_codec; 160 scoped_ptr<media::AudioCodecBridge> media_codec;
161 media_codec.reset(AudioCodecBridge::Create(kCodecMP3)); 161 media_codec.reset(AudioCodecBridge::Create(kCodecMP3));
162 162
163 ASSERT_TRUE(media_codec->Start( 163 ASSERT_TRUE(media_codec->Start(kCodecMP3, 44100, 2, NULL, 0, false, NULL));
164 kCodecMP3, 44100, 2, NULL, 0, 0, 0, false, NULL));
165 164
166 int input_buf_index = -1; 165 int input_buf_index = -1;
167 MediaCodecStatus status = 166 MediaCodecStatus status =
168 media_codec->DequeueInputBuffer(InfiniteTimeOut(), &input_buf_index); 167 media_codec->DequeueInputBuffer(InfiniteTimeOut(), &input_buf_index);
169 ASSERT_EQ(MEDIA_CODEC_OK, status); 168 ASSERT_EQ(MEDIA_CODEC_OK, status);
170 ASSERT_GE(input_buf_index, 0); 169 ASSERT_GE(input_buf_index, 0);
171 170
172 int64 input_pts = kPresentationTimeBase; 171 int64 input_pts = kPresentationTimeBase;
173 media_codec->QueueInputBuffer(input_buf_index, 172 media_codec->QueueInputBuffer(input_buf_index,
174 test_mp3, 173 test_mp3,
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 TEST(MediaCodecBridgeTest, InvalidVorbisHeader) { 222 TEST(MediaCodecBridgeTest, InvalidVorbisHeader) {
224 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); 223 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
225 224
226 scoped_ptr<media::AudioCodecBridge> media_codec; 225 scoped_ptr<media::AudioCodecBridge> media_codec;
227 media_codec.reset(AudioCodecBridge::Create(kCodecVorbis)); 226 media_codec.reset(AudioCodecBridge::Create(kCodecVorbis));
228 227
229 // The first byte of the header is not 0x02. 228 // The first byte of the header is not 0x02.
230 uint8 invalid_first_byte[] = { 0x00, 0xff, 0xff, 0xff, 0xff }; 229 uint8 invalid_first_byte[] = { 0x00, 0xff, 0xff, 0xff, 0xff };
231 EXPECT_FALSE(media_codec->Start( 230 EXPECT_FALSE(media_codec->Start(
232 kCodecVorbis, 44100, 2, invalid_first_byte, sizeof(invalid_first_byte), 231 kCodecVorbis, 44100, 2, invalid_first_byte, sizeof(invalid_first_byte),
233 0, 0, false, NULL)); 232 false, NULL));
234 233
235 // Size of the header does not match with the data we passed in. 234 // Size of the header does not match with the data we passed in.
236 uint8 invalid_size[] = { 0x02, 0x01, 0xff, 0x01, 0xff }; 235 uint8 invalid_size[] = { 0x02, 0x01, 0xff, 0x01, 0xff };
237 EXPECT_FALSE(media_codec->Start( 236 EXPECT_FALSE(media_codec->Start(
238 kCodecVorbis, 44100, 2, invalid_size, sizeof(invalid_size), 237 kCodecVorbis, 44100, 2, invalid_size, sizeof(invalid_size), false, NULL));
239 0, 0, false, NULL));
240 238
241 // Size of the header is too large. 239 // Size of the header is too large.
242 size_t large_size = 8 * 1024 * 1024 + 2; 240 size_t large_size = 8 * 1024 * 1024 + 2;
243 uint8* very_large_header = new uint8[large_size]; 241 uint8* very_large_header = new uint8[large_size];
244 very_large_header[0] = 0x02; 242 very_large_header[0] = 0x02;
245 for (size_t i = 1; i < large_size - 1; ++i) 243 for (size_t i = 1; i < large_size - 1; ++i)
246 very_large_header[i] = 0xff; 244 very_large_header[i] = 0xff;
247 very_large_header[large_size - 1] = 0xfe; 245 very_large_header[large_size - 1] = 0xfe;
248 EXPECT_FALSE(media_codec->Start( 246 EXPECT_FALSE(media_codec->Start(
249 kCodecVorbis, 44100, 2, very_large_header, 0x80000000, 247 kCodecVorbis, 44100, 2, very_large_header, 0x80000000, false, NULL));
250 0, 0, false, NULL));
251 delete[] very_large_header; 248 delete[] very_large_header;
252 } 249 }
253 250
254 TEST(MediaCodecBridgeTest, InvalidOpusHeader) {
255 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
256
257 scoped_ptr<media::AudioCodecBridge> media_codec;
258 media_codec.reset(AudioCodecBridge::Create(kCodecOpus));
259 uint8 dummy_extra_data[] = { 0, 0 };
260
261 // Extra Data is NULL.
262 EXPECT_FALSE(media_codec->Start(
263 kCodecOpus, 48000, 2, NULL, 0, -1, 0, false, NULL));
264
265 // Codec Delay is < 0.
266 EXPECT_FALSE(media_codec->Start(
267 kCodecOpus, 48000, 2, dummy_extra_data, sizeof(dummy_extra_data),
268 -1, 0, false, NULL));
269
270 // Seek Preroll is < 0.
271 EXPECT_FALSE(media_codec->Start(
272 kCodecOpus, 48000, 2, dummy_extra_data, sizeof(dummy_extra_data),
273 0, -1, false, NULL));
274 }
275
276 TEST(MediaCodecBridgeTest, PresentationTimestampsDoNotDecrease) { 251 TEST(MediaCodecBridgeTest, PresentationTimestampsDoNotDecrease) {
277 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); 252 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
278 253
279 scoped_ptr<VideoCodecBridge> media_codec(VideoCodecBridge::CreateDecoder( 254 scoped_ptr<VideoCodecBridge> media_codec(VideoCodecBridge::CreateDecoder(
280 kCodecVP8, false, gfx::Size(320, 240), NULL, NULL)); 255 kCodecVP8, false, gfx::Size(320, 240), NULL, NULL));
281 EXPECT_TRUE(media_codec.get()); 256 EXPECT_TRUE(media_codec.get());
282 scoped_refptr<DecoderBuffer> buffer = 257 scoped_refptr<DecoderBuffer> buffer =
283 ReadTestDataFile("vp8-I-frame-320x240"); 258 ReadTestDataFile("vp8-I-frame-320x240");
284 DecodeMediaFrame(media_codec.get(), 259 DecodeMediaFrame(media_codec.get(),
285 buffer->data(), 260 buffer->data(),
(...skipping 24 matching lines...) Expand all
310 285
311 TEST(MediaCodecBridgeTest, CreateUnsupportedCodec) { 286 TEST(MediaCodecBridgeTest, CreateUnsupportedCodec) {
312 EXPECT_EQ(NULL, AudioCodecBridge::Create(kUnknownAudioCodec)); 287 EXPECT_EQ(NULL, AudioCodecBridge::Create(kUnknownAudioCodec));
313 EXPECT_EQ( 288 EXPECT_EQ(
314 NULL, 289 NULL,
315 VideoCodecBridge::CreateDecoder( 290 VideoCodecBridge::CreateDecoder(
316 kUnknownVideoCodec, false, gfx::Size(320, 240), NULL, NULL)); 291 kUnknownVideoCodec, false, gfx::Size(320, 240), NULL, NULL));
317 } 292 }
318 293
319 } // namespace media 294 } // namespace media
OLDNEW
« no previous file with comments | « media/base/android/media_codec_bridge.cc ('k') | media/filters/stream_parser_factory.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698