| OLD | NEW |
| 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 "content/browser/media/capture/desktop_capture_device.h" | 5 #include "content/browser/media/capture/desktop_capture_device.h" |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/synchronization/waitable_event.h" | 8 #include "base/synchronization/waitable_event.h" |
| 9 #include "base/test/test_timeouts.h" | 9 #include "base/test/test_timeouts.h" |
| 10 #include "base/time/time.h" | 10 #include "base/time/time.h" |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 165 EXPECT_CALL(*client, OnError(_)).Times(0); | 165 EXPECT_CALL(*client, OnError(_)).Times(0); |
| 166 EXPECT_CALL(*client, OnIncomingCapturedData(_, _, _, _, _)).WillRepeatedly( | 166 EXPECT_CALL(*client, OnIncomingCapturedData(_, _, _, _, _)).WillRepeatedly( |
| 167 DoAll(SaveArg<1>(&frame_size), | 167 DoAll(SaveArg<1>(&frame_size), |
| 168 SaveArg<2>(&format), | 168 SaveArg<2>(&format), |
| 169 InvokeWithoutArgs(&done_event, &base::WaitableEvent::Signal))); | 169 InvokeWithoutArgs(&done_event, &base::WaitableEvent::Signal))); |
| 170 | 170 |
| 171 media::VideoCaptureParams capture_params; | 171 media::VideoCaptureParams capture_params; |
| 172 capture_params.requested_format.frame_size.SetSize(640, 480); | 172 capture_params.requested_format.frame_size.SetSize(640, 480); |
| 173 capture_params.requested_format.frame_rate = kFrameRate; | 173 capture_params.requested_format.frame_rate = kFrameRate; |
| 174 capture_params.requested_format.pixel_format = media::PIXEL_FORMAT_I420; | 174 capture_params.requested_format.pixel_format = media::PIXEL_FORMAT_I420; |
| 175 capture_params.allow_resolution_change = false; | |
| 176 capture_device_->AllocateAndStart( | 175 capture_device_->AllocateAndStart( |
| 177 capture_params, client.PassAs<media::VideoCaptureDevice::Client>()); | 176 capture_params, client.PassAs<media::VideoCaptureDevice::Client>()); |
| 178 EXPECT_TRUE(done_event.TimedWait(TestTimeouts::action_max_timeout())); | 177 EXPECT_TRUE(done_event.TimedWait(TestTimeouts::action_max_timeout())); |
| 179 capture_device_->StopAndDeAllocate(); | 178 capture_device_->StopAndDeAllocate(); |
| 180 | 179 |
| 181 EXPECT_GT(format.frame_size.width(), 0); | 180 EXPECT_GT(format.frame_size.width(), 0); |
| 182 EXPECT_GT(format.frame_size.height(), 0); | 181 EXPECT_GT(format.frame_size.height(), 0); |
| 183 EXPECT_EQ(kFrameRate, format.frame_rate); | 182 EXPECT_EQ(kFrameRate, format.frame_rate); |
| 184 EXPECT_EQ(media::PIXEL_FORMAT_ARGB, format.pixel_format); | 183 EXPECT_EQ(media::PIXEL_FORMAT_ARGB, format.pixel_format); |
| 185 | 184 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 202 EXPECT_CALL(*client, OnIncomingCapturedData(_, _, _, _, _)).WillRepeatedly( | 201 EXPECT_CALL(*client, OnIncomingCapturedData(_, _, _, _, _)).WillRepeatedly( |
| 203 DoAll(SaveArg<1>(&frame_size), | 202 DoAll(SaveArg<1>(&frame_size), |
| 204 SaveArg<2>(&format), | 203 SaveArg<2>(&format), |
| 205 InvokeWithoutArgs(&done_event, &base::WaitableEvent::Signal))); | 204 InvokeWithoutArgs(&done_event, &base::WaitableEvent::Signal))); |
| 206 | 205 |
| 207 media::VideoCaptureParams capture_params; | 206 media::VideoCaptureParams capture_params; |
| 208 capture_params.requested_format.frame_size.SetSize(kTestFrameWidth1, | 207 capture_params.requested_format.frame_size.SetSize(kTestFrameWidth1, |
| 209 kTestFrameHeight1); | 208 kTestFrameHeight1); |
| 210 capture_params.requested_format.frame_rate = kFrameRate; | 209 capture_params.requested_format.frame_rate = kFrameRate; |
| 211 capture_params.requested_format.pixel_format = media::PIXEL_FORMAT_I420; | 210 capture_params.requested_format.pixel_format = media::PIXEL_FORMAT_I420; |
| 212 capture_params.allow_resolution_change = false; | |
| 213 | 211 |
| 214 capture_device_->AllocateAndStart( | 212 capture_device_->AllocateAndStart( |
| 215 capture_params, client.PassAs<media::VideoCaptureDevice::Client>()); | 213 capture_params, client.PassAs<media::VideoCaptureDevice::Client>()); |
| 216 | 214 |
| 217 // Capture at least two frames, to ensure that the source frame size has | 215 // Capture at least two frames, to ensure that the source frame size has |
| 218 // changed while capturing. | 216 // changed while capturing. |
| 219 EXPECT_TRUE(done_event.TimedWait(TestTimeouts::action_max_timeout())); | 217 EXPECT_TRUE(done_event.TimedWait(TestTimeouts::action_max_timeout())); |
| 220 done_event.Reset(); | 218 done_event.Reset(); |
| 221 EXPECT_TRUE(done_event.TimedWait(TestTimeouts::action_max_timeout())); | 219 EXPECT_TRUE(done_event.TimedWait(TestTimeouts::action_max_timeout())); |
| 222 | 220 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 244 EXPECT_CALL(*client, OnError(_)).Times(0); | 242 EXPECT_CALL(*client, OnError(_)).Times(0); |
| 245 EXPECT_CALL(*client, OnIncomingCapturedData(_, _, _, _, _)).WillRepeatedly( | 243 EXPECT_CALL(*client, OnIncomingCapturedData(_, _, _, _, _)).WillRepeatedly( |
| 246 DoAll(SaveArg<2>(&format), | 244 DoAll(SaveArg<2>(&format), |
| 247 InvokeWithoutArgs(&done_event, &base::WaitableEvent::Signal))); | 245 InvokeWithoutArgs(&done_event, &base::WaitableEvent::Signal))); |
| 248 | 246 |
| 249 media::VideoCaptureParams capture_params; | 247 media::VideoCaptureParams capture_params; |
| 250 capture_params.requested_format.frame_size.SetSize(kTestFrameWidth2, | 248 capture_params.requested_format.frame_size.SetSize(kTestFrameWidth2, |
| 251 kTestFrameHeight2); | 249 kTestFrameHeight2); |
| 252 capture_params.requested_format.frame_rate = kFrameRate; | 250 capture_params.requested_format.frame_rate = kFrameRate; |
| 253 capture_params.requested_format.pixel_format = media::PIXEL_FORMAT_I420; | 251 capture_params.requested_format.pixel_format = media::PIXEL_FORMAT_I420; |
| 254 capture_params.allow_resolution_change = false; | |
| 255 | 252 |
| 256 capture_device_->AllocateAndStart( | 253 capture_device_->AllocateAndStart( |
| 257 capture_params, client.PassAs<media::VideoCaptureDevice::Client>()); | 254 capture_params, client.PassAs<media::VideoCaptureDevice::Client>()); |
| 258 | 255 |
| 259 // Capture at least three frames, to ensure that the source frame size has | 256 // Capture at least three frames, to ensure that the source frame size has |
| 260 // changed at least twice while capturing. | 257 // changed at least twice while capturing. |
| 261 EXPECT_TRUE(done_event.TimedWait(TestTimeouts::action_max_timeout())); | 258 EXPECT_TRUE(done_event.TimedWait(TestTimeouts::action_max_timeout())); |
| 262 done_event.Reset(); | 259 done_event.Reset(); |
| 263 EXPECT_TRUE(done_event.TimedWait(TestTimeouts::action_max_timeout())); | 260 EXPECT_TRUE(done_event.TimedWait(TestTimeouts::action_max_timeout())); |
| 264 done_event.Reset(); | 261 done_event.Reset(); |
| 265 EXPECT_TRUE(done_event.TimedWait(TestTimeouts::action_max_timeout())); | 262 EXPECT_TRUE(done_event.TimedWait(TestTimeouts::action_max_timeout())); |
| 266 | 263 |
| 267 capture_device_->StopAndDeAllocate(); | 264 capture_device_->StopAndDeAllocate(); |
| 268 | 265 |
| 269 EXPECT_EQ(kTestFrameWidth1, format.frame_size.width()); | 266 EXPECT_EQ(kTestFrameWidth1, format.frame_size.width()); |
| 270 EXPECT_EQ(kTestFrameHeight1, format.frame_size.height()); | 267 EXPECT_EQ(kTestFrameHeight1, format.frame_size.height()); |
| 271 EXPECT_EQ(kFrameRate, format.frame_rate); | 268 EXPECT_EQ(kFrameRate, format.frame_rate); |
| 272 EXPECT_EQ(media::PIXEL_FORMAT_ARGB, format.pixel_format); | 269 EXPECT_EQ(media::PIXEL_FORMAT_ARGB, format.pixel_format); |
| 273 } | 270 } |
| 274 | 271 |
| 275 } // namespace content | 272 } // namespace content |
| OLD | NEW |