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

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

Issue 26883002: Introduce base::TestSuite::DisableTests(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 2 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 | Annotate | Revision Log
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 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 if (status == MEDIA_CODEC_OK && output_buf_index > 0) 125 if (status == MEDIA_CODEC_OK && output_buf_index > 0)
126 media_codec->ReleaseOutputBuffer(output_buf_index, false); 126 media_codec->ReleaseOutputBuffer(output_buf_index, false);
127 // Output time stamp should not be smaller than old timestamp. 127 // Output time stamp should not be smaller than old timestamp.
128 ASSERT_TRUE(new_timestamp >= timestamp); 128 ASSERT_TRUE(new_timestamp >= timestamp);
129 input_pts += base::TimeDelta::FromMicroseconds(33000); 129 input_pts += base::TimeDelta::FromMicroseconds(33000);
130 timestamp = new_timestamp; 130 timestamp = new_timestamp;
131 } 131 }
132 } 132 }
133 133
134 TEST(MediaCodecBridgeTest, Initialize) { 134 TEST(MediaCodecBridgeTest, Initialize) {
135 if (!MediaCodecBridge::IsAvailable())
136 return;
137
138 scoped_ptr<media::MediaCodecBridge> media_codec; 135 scoped_ptr<media::MediaCodecBridge> media_codec;
139 media_codec.reset(VideoCodecBridge::Create(kCodecH264, false)); 136 media_codec.reset(VideoCodecBridge::Create(kCodecH264, false));
140 } 137 }
141 138
142 TEST(MediaCodecBridgeTest, DoNormal) { 139 TEST(MediaCodecBridgeTest, DoNormal) {
143 if (!MediaCodecBridge::IsAvailable())
144 return;
145
146 scoped_ptr<media::AudioCodecBridge> media_codec; 140 scoped_ptr<media::AudioCodecBridge> media_codec;
147 media_codec.reset(AudioCodecBridge::Create(kCodecMP3)); 141 media_codec.reset(AudioCodecBridge::Create(kCodecMP3));
148 142
149 media_codec->Start(kCodecMP3, 44100, 2, NULL, 0, false, NULL); 143 media_codec->Start(kCodecMP3, 44100, 2, NULL, 0, false, NULL);
150 144
151 int input_buf_index = -1; 145 int input_buf_index = -1;
152 MediaCodecStatus status = 146 MediaCodecStatus status =
153 media_codec->DequeueInputBuffer(InfiniteTimeOut(), &input_buf_index); 147 media_codec->DequeueInputBuffer(InfiniteTimeOut(), &input_buf_index);
154 ASSERT_EQ(MEDIA_CODEC_OK, status); 148 ASSERT_EQ(MEDIA_CODEC_OK, status);
155 ASSERT_GE(input_buf_index, 0); 149 ASSERT_GE(input_buf_index, 0);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 ASSERT_GE(output_buf_index, 0); 188 ASSERT_GE(output_buf_index, 0);
195 EXPECT_LE(1u, size); 189 EXPECT_LE(1u, size);
196 if (!eos) 190 if (!eos)
197 EXPECT_EQ(++input_pts, timestamp.InMicroseconds()); 191 EXPECT_EQ(++input_pts, timestamp.InMicroseconds());
198 ASSERT_LE(input_pts, kPresentationTimeBase + 2); 192 ASSERT_LE(input_pts, kPresentationTimeBase + 2);
199 } 193 }
200 ASSERT_EQ(input_pts, kPresentationTimeBase + 2); 194 ASSERT_EQ(input_pts, kPresentationTimeBase + 2);
201 } 195 }
202 196
203 TEST(MediaCodecBridgeTest, InvalidVorbisHeader) { 197 TEST(MediaCodecBridgeTest, InvalidVorbisHeader) {
204 if (!MediaCodecBridge::IsAvailable())
205 return;
206
207 scoped_ptr<media::AudioCodecBridge> media_codec; 198 scoped_ptr<media::AudioCodecBridge> media_codec;
208 media_codec.reset(AudioCodecBridge::Create(kCodecVorbis)); 199 media_codec.reset(AudioCodecBridge::Create(kCodecVorbis));
209 200
210 // The first byte of the header is not 0x02. 201 // The first byte of the header is not 0x02.
211 uint8 invalid_first_byte[] = { 0x00, 0xff, 0xff, 0xff, 0xff }; 202 uint8 invalid_first_byte[] = { 0x00, 0xff, 0xff, 0xff, 0xff };
212 EXPECT_FALSE(media_codec->Start( 203 EXPECT_FALSE(media_codec->Start(
213 kCodecVorbis, 44100, 2, invalid_first_byte, sizeof(invalid_first_byte), 204 kCodecVorbis, 44100, 2, invalid_first_byte, sizeof(invalid_first_byte),
214 false, NULL)); 205 false, NULL));
215 206
216 // Size of the header does not match with the data we passed in. 207 // Size of the header does not match with the data we passed in.
217 uint8 invalid_size[] = { 0x02, 0x01, 0xff, 0x01, 0xff }; 208 uint8 invalid_size[] = { 0x02, 0x01, 0xff, 0x01, 0xff };
218 EXPECT_FALSE(media_codec->Start( 209 EXPECT_FALSE(media_codec->Start(
219 kCodecVorbis, 44100, 2, invalid_size, sizeof(invalid_size), false, NULL)); 210 kCodecVorbis, 44100, 2, invalid_size, sizeof(invalid_size), false, NULL));
220 211
221 // Size of the header is too large. 212 // Size of the header is too large.
222 size_t large_size = 8 * 1024 * 1024 + 2; 213 size_t large_size = 8 * 1024 * 1024 + 2;
223 uint8* very_large_header = new uint8[large_size]; 214 uint8* very_large_header = new uint8[large_size];
224 very_large_header[0] = 0x02; 215 very_large_header[0] = 0x02;
225 for (size_t i = 1; i < large_size - 1; ++i) 216 for (size_t i = 1; i < large_size - 1; ++i)
226 very_large_header[i] = 0xff; 217 very_large_header[i] = 0xff;
227 very_large_header[large_size - 1] = 0xfe; 218 very_large_header[large_size - 1] = 0xfe;
228 EXPECT_FALSE(media_codec->Start( 219 EXPECT_FALSE(media_codec->Start(
229 kCodecVorbis, 44100, 2, very_large_header, 0x80000000, false, NULL)); 220 kCodecVorbis, 44100, 2, very_large_header, 0x80000000, false, NULL));
230 delete[] very_large_header; 221 delete[] very_large_header;
231 } 222 }
232 223
233 TEST(MediaCodecBridgeTest, PresentationTimestampsDoNotDecrease) { 224 TEST(MediaCodecBridgeTest, PresentationTimestampsDoNotDecrease) {
234 if (!MediaCodecBridge::IsAvailable())
235 return;
236
237 scoped_ptr<VideoCodecBridge> media_codec; 225 scoped_ptr<VideoCodecBridge> media_codec;
238 media_codec.reset(VideoCodecBridge::Create(kCodecVP8, false)); 226 media_codec.reset(VideoCodecBridge::Create(kCodecVP8, false));
239 EXPECT_TRUE(media_codec->Start( 227 EXPECT_TRUE(media_codec->Start(
240 kCodecVP8, gfx::Size(320, 240), NULL, NULL)); 228 kCodecVP8, gfx::Size(320, 240), NULL, NULL));
241 scoped_refptr<DecoderBuffer> buffer = 229 scoped_refptr<DecoderBuffer> buffer =
242 ReadTestDataFile("vp8-I-frame-320x240"); 230 ReadTestDataFile("vp8-I-frame-320x240");
243 DecodeMediaFrame( 231 DecodeMediaFrame(
244 media_codec.get(), buffer->data(), buffer->data_size(), 232 media_codec.get(), buffer->data(), buffer->data_size(),
245 base::TimeDelta(), base::TimeDelta()); 233 base::TimeDelta(), base::TimeDelta());
246 234
(...skipping 13 matching lines...) Expand all
260 base::TimeDelta::FromMicroseconds(5000000), 248 base::TimeDelta::FromMicroseconds(5000000),
261 base::TimeDelta::FromMicroseconds(4900000)); 249 base::TimeDelta::FromMicroseconds(4900000));
262 } 250 }
263 251
264 TEST(MediaCodecBridgeTest, CreateUnsupportedCodec) { 252 TEST(MediaCodecBridgeTest, CreateUnsupportedCodec) {
265 EXPECT_EQ(NULL, AudioCodecBridge::Create(kUnknownAudioCodec)); 253 EXPECT_EQ(NULL, AudioCodecBridge::Create(kUnknownAudioCodec));
266 EXPECT_EQ(NULL, VideoCodecBridge::Create(kUnknownVideoCodec, false)); 254 EXPECT_EQ(NULL, VideoCodecBridge::Create(kUnknownVideoCodec, false));
267 } 255 }
268 256
269 } // namespace media 257 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698