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

Side by Side Diff: media/video/capture/video_capture_device_unittest.cc

Issue 22876027: Consolidate duplicated frame / capability structures in video_capture_types.h (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased: changed media::VideoCaptureCapability::kI420 -> media::PIXEL_FORMAT_I420 etc. Created 7 years, 3 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
OLDNEW
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 #include "base/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "base/message_loop/message_loop.h" 6 #include "base/message_loop/message_loop.h"
7 #include "base/synchronization/waitable_event.h" 7 #include "base/synchronization/waitable_event.h"
8 #include "base/test/test_timeouts.h" 8 #include "base/test/test_timeouts.h"
9 #include "base/threading/thread.h" 9 #include "base/threading/thread.h"
10 #include "media/video/capture/fake_video_capture_device.h" 10 #include "media/video/capture/fake_video_capture_device.h"
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 VideoCaptureCapability rx_capability; 152 VideoCaptureCapability rx_capability;
153 EXPECT_CALL(*frame_observer_, OnFrameInfo(_)) 153 EXPECT_CALL(*frame_observer_, OnFrameInfo(_))
154 .Times(1).WillOnce(SaveArg<0>(&rx_capability)); 154 .Times(1).WillOnce(SaveArg<0>(&rx_capability));
155 155
156 EXPECT_CALL(*frame_observer_, OnErr()) 156 EXPECT_CALL(*frame_observer_, OnErr())
157 .Times(0); 157 .Times(0);
158 158
159 VideoCaptureCapability capture_format(640, 159 VideoCaptureCapability capture_format(640,
160 480, 160 480,
161 30, 161 30,
162 VideoCaptureCapability::kI420, 162 PIXEL_FORMAT_I420,
163 0, 163 0,
164 false, 164 false,
165 ConstantResolutionVideoCaptureDevice); 165 ConstantResolutionVideoCaptureDevice);
166 device->Allocate(capture_format, frame_observer_.get()); 166 device->Allocate(capture_format, frame_observer_.get());
167 device->Start(); 167 device->Start();
168 // Get captured video frames. 168 // Get captured video frames.
169 PostQuitTask(); 169 PostQuitTask();
170 EXPECT_TRUE(wait_event_.TimedWait(TestTimeouts::action_max_timeout())); 170 EXPECT_TRUE(wait_event_.TimedWait(TestTimeouts::action_max_timeout()));
171 EXPECT_EQ(rx_capability.width, 640); 171 EXPECT_EQ(rx_capability.width, 640);
172 EXPECT_EQ(rx_capability.height, 480); 172 EXPECT_EQ(rx_capability.height, 480);
(...skipping 17 matching lines...) Expand all
190 // be different from one machine to the next. 190 // be different from one machine to the next.
191 EXPECT_CALL(*frame_observer_, OnFrameInfo(_)) 191 EXPECT_CALL(*frame_observer_, OnFrameInfo(_))
192 .Times(1); 192 .Times(1);
193 193
194 EXPECT_CALL(*frame_observer_, OnErr()) 194 EXPECT_CALL(*frame_observer_, OnErr())
195 .Times(0); 195 .Times(0);
196 196
197 VideoCaptureCapability capture_format(1280, 197 VideoCaptureCapability capture_format(1280,
198 720, 198 720,
199 30, 199 30,
200 VideoCaptureCapability::kI420, 200 PIXEL_FORMAT_I420,
201 0, 201 0,
202 false, 202 false,
203 ConstantResolutionVideoCaptureDevice); 203 ConstantResolutionVideoCaptureDevice);
204 device->Allocate(capture_format, frame_observer_.get()); 204 device->Allocate(capture_format, frame_observer_.get());
205 device->Start(); 205 device->Start();
206 // Get captured video frames. 206 // Get captured video frames.
207 PostQuitTask(); 207 PostQuitTask();
208 EXPECT_TRUE(wait_event_.TimedWait(TestTimeouts::action_max_timeout())); 208 EXPECT_TRUE(wait_event_.TimedWait(TestTimeouts::action_max_timeout()));
209 device->Stop(); 209 device->Stop();
210 device->DeAllocate(); 210 device->DeAllocate();
(...skipping 13 matching lines...) Expand all
224 .Times(0); 224 .Times(0);
225 225
226 // Get info about the new resolution. 226 // Get info about the new resolution.
227 VideoCaptureCapability rx_capability; 227 VideoCaptureCapability rx_capability;
228 EXPECT_CALL(*frame_observer_, OnFrameInfo(_)) 228 EXPECT_CALL(*frame_observer_, OnFrameInfo(_))
229 .Times(AtLeast(1)).WillOnce(SaveArg<0>(&rx_capability)); 229 .Times(AtLeast(1)).WillOnce(SaveArg<0>(&rx_capability));
230 230
231 VideoCaptureCapability capture_format(637, 231 VideoCaptureCapability capture_format(637,
232 472, 232 472,
233 35, 233 35,
234 VideoCaptureCapability::kI420, 234 PIXEL_FORMAT_I420,
235 0, 235 0,
236 false, 236 false,
237 ConstantResolutionVideoCaptureDevice); 237 ConstantResolutionVideoCaptureDevice);
238 device->Allocate(capture_format, frame_observer_.get()); 238 device->Allocate(capture_format, frame_observer_.get());
239 device->DeAllocate(); 239 device->DeAllocate();
240 EXPECT_EQ(rx_capability.width, 640); 240 EXPECT_EQ(rx_capability.width, 640);
241 EXPECT_EQ(rx_capability.height, 480); 241 EXPECT_EQ(rx_capability.height, 480);
242 } 242 }
243 243
244 TEST_F(VideoCaptureDeviceTest, ReAllocateCamera) { 244 TEST_F(VideoCaptureDeviceTest, ReAllocateCamera) {
245 VideoCaptureDevice::GetDeviceNames(&names_); 245 VideoCaptureDevice::GetDeviceNames(&names_);
246 if (!names_.size()) { 246 if (!names_.size()) {
247 DVLOG(1) << "No camera available. Exiting test."; 247 DVLOG(1) << "No camera available. Exiting test.";
248 return; 248 return;
249 } 249 }
250 scoped_ptr<VideoCaptureDevice> device( 250 scoped_ptr<VideoCaptureDevice> device(
251 VideoCaptureDevice::Create(names_.front())); 251 VideoCaptureDevice::Create(names_.front()));
252 ASSERT_TRUE(device.get() != NULL); 252 ASSERT_TRUE(device.get() != NULL);
253 EXPECT_CALL(*frame_observer_, OnErr()) 253 EXPECT_CALL(*frame_observer_, OnErr())
254 .Times(0); 254 .Times(0);
255 // Get info about the new resolution. 255 // Get info about the new resolution.
256 VideoCaptureCapability rx_capability_1; 256 VideoCaptureCapability rx_capability_1;
257 VideoCaptureCapability rx_capability_2; 257 VideoCaptureCapability rx_capability_2;
258 VideoCaptureCapability capture_format_1(640, 258 VideoCaptureCapability capture_format_1(640,
259 480, 259 480,
260 30, 260 30,
261 VideoCaptureCapability::kI420, 261 PIXEL_FORMAT_I420,
262 0, 262 0,
263 false, 263 false,
264 ConstantResolutionVideoCaptureDevice); 264 ConstantResolutionVideoCaptureDevice);
265 VideoCaptureCapability capture_format_2(1280, 265 VideoCaptureCapability capture_format_2(1280,
266 1024, 266 1024,
267 30, 267 30,
268 VideoCaptureCapability::kI420, 268 PIXEL_FORMAT_I420,
269 0, 269 0,
270 false, 270 false,
271 ConstantResolutionVideoCaptureDevice); 271 ConstantResolutionVideoCaptureDevice);
272 VideoCaptureCapability capture_format_3(320, 272 VideoCaptureCapability capture_format_3(320,
273 240, 273 240,
274 30, 274 30,
275 VideoCaptureCapability::kI420, 275 PIXEL_FORMAT_I420,
276 0, 276 0,
277 false, 277 false,
278 ConstantResolutionVideoCaptureDevice); 278 ConstantResolutionVideoCaptureDevice);
279 279
280 EXPECT_CALL(*frame_observer_, OnFrameInfo(_)) 280 EXPECT_CALL(*frame_observer_, OnFrameInfo(_))
281 .WillOnce(SaveArg<0>(&rx_capability_1)); 281 .WillOnce(SaveArg<0>(&rx_capability_1));
282 device->Allocate(capture_format_1, frame_observer_.get()); 282 device->Allocate(capture_format_1, frame_observer_.get());
283 device->Start(); 283 device->Start();
284 // Nothing shall happen. 284 // Nothing shall happen.
285 device->Allocate(capture_format_2, frame_observer_.get()); 285 device->Allocate(capture_format_2, frame_observer_.get());
(...skipping 28 matching lines...) Expand all
314 EXPECT_CALL(*frame_observer_, OnErr()) 314 EXPECT_CALL(*frame_observer_, OnErr())
315 .Times(0); 315 .Times(0);
316 // Get info about the new resolution. 316 // Get info about the new resolution.
317 VideoCaptureCapability rx_capability; 317 VideoCaptureCapability rx_capability;
318 EXPECT_CALL(*frame_observer_, OnFrameInfo(_)) 318 EXPECT_CALL(*frame_observer_, OnFrameInfo(_))
319 .WillOnce(SaveArg<0>(&rx_capability)); 319 .WillOnce(SaveArg<0>(&rx_capability));
320 320
321 VideoCaptureCapability capture_format(640, 321 VideoCaptureCapability capture_format(640,
322 480, 322 480,
323 30, 323 30,
324 VideoCaptureCapability::kI420, 324 PIXEL_FORMAT_I420,
325 0, 325 0,
326 false, 326 false,
327 ConstantResolutionVideoCaptureDevice); 327 ConstantResolutionVideoCaptureDevice);
328 device->Allocate(capture_format, frame_observer_.get()); 328 device->Allocate(capture_format, frame_observer_.get());
329 329
330 device->Start(); 330 device->Start();
331 // Get captured video frames. 331 // Get captured video frames.
332 PostQuitTask(); 332 PostQuitTask();
333 EXPECT_TRUE(wait_event_.TimedWait(TestTimeouts::action_max_timeout())); 333 EXPECT_TRUE(wait_event_.TimedWait(TestTimeouts::action_max_timeout()));
334 EXPECT_EQ(rx_capability.width, 640); 334 EXPECT_EQ(rx_capability.width, 640);
(...skipping 17 matching lines...) Expand all
352 VideoCaptureCapability rx_capability; 352 VideoCaptureCapability rx_capability;
353 EXPECT_CALL(*frame_observer_, OnFrameInfo(_)) 353 EXPECT_CALL(*frame_observer_, OnFrameInfo(_))
354 .Times(1).WillOnce(SaveArg<0>(&rx_capability)); 354 .Times(1).WillOnce(SaveArg<0>(&rx_capability));
355 355
356 EXPECT_CALL(*frame_observer_, OnErr()) 356 EXPECT_CALL(*frame_observer_, OnErr())
357 .Times(0); 357 .Times(0);
358 358
359 VideoCaptureCapability capture_format(640, 359 VideoCaptureCapability capture_format(640,
360 480, 360 480,
361 30, 361 30,
362 VideoCaptureCapability::kI420, 362 PIXEL_FORMAT_I420,
363 0, 363 0,
364 false, 364 false,
365 ConstantResolutionVideoCaptureDevice); 365 ConstantResolutionVideoCaptureDevice);
366 device->Allocate(capture_format, frame_observer_.get()); 366 device->Allocate(capture_format, frame_observer_.get());
367 367
368 device->Start(); 368 device->Start();
369 EXPECT_TRUE(wait_event_.TimedWait(TestTimeouts::action_max_timeout())); 369 EXPECT_TRUE(wait_event_.TimedWait(TestTimeouts::action_max_timeout()));
370 EXPECT_EQ(rx_capability.width, 640); 370 EXPECT_EQ(rx_capability.width, 640);
371 EXPECT_EQ(rx_capability.height, 480); 371 EXPECT_EQ(rx_capability.height, 480);
372 EXPECT_EQ(rx_capability.frame_rate, 30); 372 EXPECT_EQ(rx_capability.frame_rate, 30);
(...skipping 16 matching lines...) Expand all
389 .Times(0); 389 .Times(0);
390 // Verify we get MJPEG from the device. Not all devices can capture 1280x720 390 // Verify we get MJPEG from the device. Not all devices can capture 1280x720
391 // @ 30 fps, so we don't care about the exact resolution we get. 391 // @ 30 fps, so we don't care about the exact resolution we get.
392 VideoCaptureCapability rx_capability; 392 VideoCaptureCapability rx_capability;
393 EXPECT_CALL(*frame_observer_, OnFrameInfo(_)) 393 EXPECT_CALL(*frame_observer_, OnFrameInfo(_))
394 .WillOnce(SaveArg<0>(&rx_capability)); 394 .WillOnce(SaveArg<0>(&rx_capability));
395 395
396 VideoCaptureCapability capture_format(1280, 396 VideoCaptureCapability capture_format(1280,
397 720, 397 720,
398 30, 398 30,
399 VideoCaptureCapability::kMJPEG, 399 PIXEL_FORMAT_MJPEG,
400 0, 400 0,
401 false, 401 false,
402 ConstantResolutionVideoCaptureDevice); 402 ConstantResolutionVideoCaptureDevice);
403 device->Allocate(capture_format, frame_observer_.get()); 403 device->Allocate(capture_format, frame_observer_.get());
404 404
405 device->Start(); 405 device->Start();
406 // Get captured video frames. 406 // Get captured video frames.
407 PostQuitTask(); 407 PostQuitTask();
408 EXPECT_TRUE(wait_event_.TimedWait(TestTimeouts::action_max_timeout())); 408 EXPECT_TRUE(wait_event_.TimedWait(TestTimeouts::action_max_timeout()));
409 EXPECT_EQ(rx_capability.color, VideoCaptureCapability::kMJPEG); 409 EXPECT_EQ(rx_capability.color, PIXEL_FORMAT_MJPEG);
410 device->DeAllocate(); 410 device->DeAllocate();
411 } 411 }
412 412
413 TEST_F(VideoCaptureDeviceTest, FakeCaptureVariableResolution) { 413 TEST_F(VideoCaptureDeviceTest, FakeCaptureVariableResolution) {
414 VideoCaptureDevice::Names names; 414 VideoCaptureDevice::Names names;
415 415
416 FakeVideoCaptureDevice::GetDeviceNames(&names); 416 FakeVideoCaptureDevice::GetDeviceNames(&names);
417 media::VideoCaptureCapability capture_format; 417 media::VideoCaptureCapability capture_format;
418 capture_format.width = 640; 418 capture_format.width = 640;
419 capture_format.height = 480; 419 capture_format.height = 480;
(...skipping 24 matching lines...) Expand all
444 .Times(AtLeast(action_count / 30)); 444 .Times(AtLeast(action_count / 30));
445 device->Start(); 445 device->Start();
446 for (int i = 0; i < action_count; ++i) { 446 for (int i = 0; i < action_count; ++i) {
447 EXPECT_TRUE(wait_event_.TimedWait(TestTimeouts::action_timeout())); 447 EXPECT_TRUE(wait_event_.TimedWait(TestTimeouts::action_timeout()));
448 } 448 }
449 device->Stop(); 449 device->Stop();
450 device->DeAllocate(); 450 device->DeAllocate();
451 } 451 }
452 452
453 }; // namespace media 453 }; // namespace media
OLDNEW
« no previous file with comments | « media/video/capture/mac/video_capture_device_qtkit_mac.mm ('k') | media/video/capture/video_capture_types.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698