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

Side by Side Diff: content/renderer/media/video_capture_impl_unittest.cc

Issue 2583883003: Rebase of Removing gpu::SyncToken usage from video capture pipeline (Closed)
Patch Set: Rebase. Created 3 years, 11 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 | « content/renderer/media/video_capture_impl_manager_unittest.cc ('k') | no next file » | 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) 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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "base/memory/shared_memory.h" 8 #include "base/memory/shared_memory.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "content/child/child_process.h" 10 #include "content/child/child_process.h"
(...skipping 19 matching lines...) Expand all
30 } 30 }
31 31
32 // Mock implementation of the Mojo Host service. 32 // Mock implementation of the Mojo Host service.
33 class MockMojoVideoCaptureHost : public mojom::VideoCaptureHost { 33 class MockMojoVideoCaptureHost : public mojom::VideoCaptureHost {
34 public: 34 public:
35 MockMojoVideoCaptureHost() : released_buffer_count_(0) { 35 MockMojoVideoCaptureHost() : released_buffer_count_(0) {
36 ON_CALL(*this, GetDeviceSupportedFormats(_, _, _)) 36 ON_CALL(*this, GetDeviceSupportedFormats(_, _, _))
37 .WillByDefault(WithArgs<2>(Invoke(RunEmptyFormatsCallback))); 37 .WillByDefault(WithArgs<2>(Invoke(RunEmptyFormatsCallback)));
38 ON_CALL(*this, GetDeviceFormatsInUse(_, _, _)) 38 ON_CALL(*this, GetDeviceFormatsInUse(_, _, _))
39 .WillByDefault(WithArgs<2>(Invoke(RunEmptyFormatsCallback))); 39 .WillByDefault(WithArgs<2>(Invoke(RunEmptyFormatsCallback)));
40 ON_CALL(*this, ReleaseBuffer(_, _, _, _)) 40 ON_CALL(*this, ReleaseBuffer(_, _, _))
41 .WillByDefault(InvokeWithoutArgs( 41 .WillByDefault(InvokeWithoutArgs(
42 this, &MockMojoVideoCaptureHost::increase_released_buffer_count)); 42 this, &MockMojoVideoCaptureHost::increase_released_buffer_count));
43 } 43 }
44 44
45 // Start() can't be mocked directly due to move-only |observer|. 45 // Start() can't be mocked directly due to move-only |observer|.
46 void Start(int32_t device_id, 46 void Start(int32_t device_id,
47 int32_t session_id, 47 int32_t session_id,
48 const media::VideoCaptureParams& params, 48 const media::VideoCaptureParams& params,
49 mojom::VideoCaptureObserverPtr observer) override { 49 mojom::VideoCaptureObserverPtr observer) override {
50 DoStart(device_id, session_id, params); 50 DoStart(device_id, session_id, params);
51 } 51 }
52 MOCK_METHOD3(DoStart, 52 MOCK_METHOD3(DoStart,
53 void(int32_t, int32_t, const media::VideoCaptureParams&)); 53 void(int32_t, int32_t, const media::VideoCaptureParams&));
54 MOCK_METHOD1(Stop, void(int32_t)); 54 MOCK_METHOD1(Stop, void(int32_t));
55 MOCK_METHOD1(Pause, void(int32_t)); 55 MOCK_METHOD1(Pause, void(int32_t));
56 MOCK_METHOD3(Resume, 56 MOCK_METHOD3(Resume,
57 void(int32_t, int32_t, const media::VideoCaptureParams&)); 57 void(int32_t, int32_t, const media::VideoCaptureParams&));
58 MOCK_METHOD1(RequestRefreshFrame, void(int32_t)); 58 MOCK_METHOD1(RequestRefreshFrame, void(int32_t));
59 MOCK_METHOD4(ReleaseBuffer, 59 MOCK_METHOD3(ReleaseBuffer, void(int32_t, int32_t, double));
60 void(int32_t, int32_t, const gpu::SyncToken&, double));
61 MOCK_METHOD3(GetDeviceSupportedFormats, 60 MOCK_METHOD3(GetDeviceSupportedFormats,
62 void(int32_t, 61 void(int32_t,
63 int32_t, 62 int32_t,
64 const GetDeviceSupportedFormatsCallback&)); 63 const GetDeviceSupportedFormatsCallback&));
65 MOCK_METHOD3(GetDeviceFormatsInUse, 64 MOCK_METHOD3(GetDeviceFormatsInUse,
66 void(int32_t, int32_t, const GetDeviceFormatsInUseCallback&)); 65 void(int32_t, int32_t, const GetDeviceFormatsInUseCallback&));
67 66
68 int released_buffer_count() const { return released_buffer_count_; } 67 int released_buffer_count() const { return released_buffer_count_; }
69 void increase_released_buffer_count() { released_buffer_count_++; } 68 void increase_released_buffer_count() { released_buffer_count_++; }
70 69
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 base::SharedMemory shm; 257 base::SharedMemory shm;
259 const size_t frame_size = media::VideoFrame::AllocationSize( 258 const size_t frame_size = media::VideoFrame::AllocationSize(
260 media::PIXEL_FORMAT_I420, params_small_.requested_format.frame_size); 259 media::PIXEL_FORMAT_I420, params_small_.requested_format.frame_size);
261 ASSERT_TRUE(shm.CreateAndMapAnonymous(frame_size)); 260 ASSERT_TRUE(shm.CreateAndMapAnonymous(frame_size));
262 261
263 EXPECT_CALL(*this, OnStateUpdate(VIDEO_CAPTURE_STATE_STARTED)); 262 EXPECT_CALL(*this, OnStateUpdate(VIDEO_CAPTURE_STATE_STARTED));
264 EXPECT_CALL(*this, OnStateUpdate(VIDEO_CAPTURE_STATE_STOPPED)); 263 EXPECT_CALL(*this, OnStateUpdate(VIDEO_CAPTURE_STATE_STOPPED));
265 EXPECT_CALL(*this, OnFrameReady(_, _)); 264 EXPECT_CALL(*this, OnFrameReady(_, _));
266 EXPECT_CALL(mock_video_capture_host_, DoStart(_, kSessionId, params_small_)); 265 EXPECT_CALL(mock_video_capture_host_, DoStart(_, kSessionId, params_small_));
267 EXPECT_CALL(mock_video_capture_host_, Stop(_)); 266 EXPECT_CALL(mock_video_capture_host_, Stop(_));
268 EXPECT_CALL(mock_video_capture_host_, ReleaseBuffer(_, kBufferId, _, _)) 267 EXPECT_CALL(mock_video_capture_host_, ReleaseBuffer(_, kBufferId, _))
269 .Times(0); 268 .Times(0);
270 269
271 StartCapture(0, params_small_); 270 StartCapture(0, params_small_);
272 SimulateOnBufferCreated(kBufferId, shm); 271 SimulateOnBufferCreated(kBufferId, shm);
273 SimulateBufferReceived(kBufferId, params_small_.requested_format.frame_size); 272 SimulateBufferReceived(kBufferId, params_small_.requested_format.frame_size);
274 StopCapture(0); 273 StopCapture(0);
275 SimulateBufferDestroyed(kBufferId); 274 SimulateBufferDestroyed(kBufferId);
276 275
277 EXPECT_EQ(mock_video_capture_host_.released_buffer_count(), 0); 276 EXPECT_EQ(mock_video_capture_host_.released_buffer_count(), 0);
278 } 277 }
279 278
280 TEST_F(VideoCaptureImplTest, BufferReceivedAfterStop) { 279 TEST_F(VideoCaptureImplTest, BufferReceivedAfterStop) {
281 const int kBufferId = 12; 280 const int kBufferId = 12;
282 281
283 base::SharedMemory shm; 282 base::SharedMemory shm;
284 const size_t frame_size = media::VideoFrame::AllocationSize( 283 const size_t frame_size = media::VideoFrame::AllocationSize(
285 media::PIXEL_FORMAT_I420, params_large_.requested_format.frame_size); 284 media::PIXEL_FORMAT_I420, params_large_.requested_format.frame_size);
286 ASSERT_TRUE(shm.CreateAndMapAnonymous(frame_size)); 285 ASSERT_TRUE(shm.CreateAndMapAnonymous(frame_size));
287 286
288 EXPECT_CALL(*this, OnStateUpdate(VIDEO_CAPTURE_STATE_STARTED)); 287 EXPECT_CALL(*this, OnStateUpdate(VIDEO_CAPTURE_STATE_STARTED));
289 EXPECT_CALL(*this, OnStateUpdate(VIDEO_CAPTURE_STATE_STOPPED)); 288 EXPECT_CALL(*this, OnStateUpdate(VIDEO_CAPTURE_STATE_STOPPED));
290 EXPECT_CALL(*this, OnFrameReady(_, _)).Times(0); 289 EXPECT_CALL(*this, OnFrameReady(_, _)).Times(0);
291 EXPECT_CALL(mock_video_capture_host_, DoStart(_, kSessionId, params_large_)); 290 EXPECT_CALL(mock_video_capture_host_, DoStart(_, kSessionId, params_large_));
292 EXPECT_CALL(mock_video_capture_host_, Stop(_)); 291 EXPECT_CALL(mock_video_capture_host_, Stop(_));
293 EXPECT_CALL(mock_video_capture_host_, ReleaseBuffer(_, kBufferId, _, _)); 292 EXPECT_CALL(mock_video_capture_host_, ReleaseBuffer(_, kBufferId, _));
294 293
295 StartCapture(0, params_large_); 294 StartCapture(0, params_large_);
296 SimulateOnBufferCreated(kBufferId, shm); 295 SimulateOnBufferCreated(kBufferId, shm);
297 StopCapture(0); 296 StopCapture(0);
298 // A buffer received after StopCapture() triggers an instant ReleaseBuffer(). 297 // A buffer received after StopCapture() triggers an instant ReleaseBuffer().
299 SimulateBufferReceived(kBufferId, params_large_.requested_format.frame_size); 298 SimulateBufferReceived(kBufferId, params_large_.requested_format.frame_size);
300 SimulateBufferDestroyed(kBufferId); 299 SimulateBufferDestroyed(kBufferId);
301 300
302 EXPECT_EQ(mock_video_capture_host_.released_buffer_count(), 1); 301 EXPECT_EQ(mock_video_capture_host_.released_buffer_count(), 1);
303 } 302 }
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 EXPECT_CALL(mock_video_capture_host_, DoStart(_, kSessionId, params_small_)); 334 EXPECT_CALL(mock_video_capture_host_, DoStart(_, kSessionId, params_small_));
336 335
337 StartCapture(0, params_small_); 336 StartCapture(0, params_small_);
338 337
339 OnStateChanged(mojom::VideoCaptureState::FAILED); 338 OnStateChanged(mojom::VideoCaptureState::FAILED);
340 339
341 StopCapture(0); 340 StopCapture(0);
342 } 341 }
343 342
344 } // namespace content 343 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/video_capture_impl_manager_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698