Index: content/browser/renderer_host/media/video_capture_controller_unittest.cc |
diff --git a/content/browser/renderer_host/media/video_capture_controller_unittest.cc b/content/browser/renderer_host/media/video_capture_controller_unittest.cc |
index 091a288285c9aeab9d18aa385c8f34566f277929..0a7ef21b0c45def5bfc3ab17f04263cceeff95cd 100644 |
--- a/content/browser/renderer_host/media/video_capture_controller_unittest.cc |
+++ b/content/browser/renderer_host/media/video_capture_controller_unittest.cc |
@@ -632,4 +632,40 @@ TEST_F(VideoCaptureControllerTest, ErrorAfterDeviceCreation) { |
Mock::VerifyAndClearExpectations(client_b_.get()); |
} |
+TEST_F(VideoCaptureControllerTest, DataCaptureInEachVideoFormatInSequence) { |
+ // This Test will skip PIXEL_FORMAT_TEXTURE and PIXEL_FORMAT_UNKNOWN |
+ for (int format = 0; format < media::PIXEL_FORMAT_TEXTURE; ++format) { |
+ media::VideoCaptureParams params; |
+ params.requested_format = media::VideoCaptureFormat( |
+ gfx::Size(320, 240), 30, media::VideoPixelFormat(format)); |
+ |
+ const gfx::Size capture_resolution(320, 240); |
+ |
+ const VideoCaptureControllerID route(0x99); |
+ |
+ // Start with one client. |
+ controller_->AddClient(route, |
+ client_a_.get(), |
+ base::kNullProcessHandle, |
+ 100, |
+ params); |
+ ASSERT_EQ(1, controller_->GetClientCount()); |
+ |
+ // Now, simulate an incoming captured buffer from the capture device. |
+ scoped_refptr<media::VideoCaptureDevice::Client::Buffer> buffer; |
+ buffer = |
+ device_->ReserveOutputBuffer(media::VideoFrame::I420, |
+ capture_resolution); |
+ ASSERT_TRUE(buffer.get()); |
+ |
+ // Captured a new video frame. |
+ device_->OnIncomingCapturedData( |
+ static_cast<unsigned char*>(buffer.get()->data()), |
+ buffer.get()->size(), |
+ params.requested_format, |
+ 0, |
+ base::TimeTicks()); |
+ } |
+} |
+ |
} // namespace content |