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

Unified Diff: content/browser/renderer_host/media/video_capture_controller_unittest.cc

Issue 2583603002: [Mojo Video Capture] Split OnIncomingCapturedVideoFrame() to OnNewBuffer() + OnFrameReadyInBuffer() (Closed)
Patch Set: Improve naming and fix Android background issue Created 4 years 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 side-by-side diff with in-line comments
Download patch
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 4ec783496b92a55620902d9cb6339ac238decd7b..be46ed3149dd50bdcd979185fae529bbdb3d3b63 100644
--- a/content/browser/renderer_host/media/video_capture_controller_unittest.cc
+++ b/content/browser/renderer_host/media/video_capture_controller_unittest.cc
@@ -78,12 +78,14 @@ class MockVideoCaptureControllerEventHandler
}
void OnBufferReady(VideoCaptureControllerID id,
int buffer_id,
- const scoped_refptr<media::VideoFrame>& frame) override {
- EXPECT_EQ(expected_pixel_format_, frame->format());
+ media::mojom::VideoFrameInfoPtr frame_info) override {
+ EXPECT_EQ(expected_pixel_format_, frame_info->pixel_format);
+ media::VideoFrameMetadata metadata;
+ metadata.MergeInternalValuesFrom(*frame_info->metadata);
base::TimeTicks reference_time;
- EXPECT_TRUE(frame->metadata()->GetTimeTicks(
- media::VideoFrameMetadata::REFERENCE_TIME, &reference_time));
- DoBufferReady(id, frame->coded_size());
+ EXPECT_TRUE(metadata.GetTimeTicks(media::VideoFrameMetadata::REFERENCE_TIME,
+ &reference_time));
+ DoBufferReady(id, frame_info->coded_size);
base::ThreadTaskRunnerHandle::Get()->PostTask(
FROM_HERE,
base::Bind(&VideoCaptureController::ReturnBuffer,
@@ -111,12 +113,6 @@ class MockConsumerFeedbackObserver
void(int frame_feedback_id, double utilization));
};
-class MockFrameBufferPool : public media::FrameBufferPool {
- public:
- MOCK_METHOD1(SetBufferHold, void(int buffer_id));
- MOCK_METHOD1(ReleaseBufferHold, void(int buffer_id));
-};
-
// Test class.
class VideoCaptureControllerTest
: public testing::Test,
@@ -138,13 +134,9 @@ class VideoCaptureControllerTest
base::MakeUnique<VideoFrameReceiverOnIOThread>(
controller_->GetWeakPtrForIOThread()),
buffer_pool,
- base::Bind(
- &CreateGpuJpegDecoder,
- base::Bind(&media::VideoFrameReceiver::OnIncomingCapturedVideoFrame,
- controller_->GetWeakPtrForIOThread()))));
- auto frame_receiver_observer = base::MakeUnique<MockFrameBufferPool>();
- mock_frame_receiver_observer_ = frame_receiver_observer.get();
- controller_->SetFrameBufferPool(std::move(frame_receiver_observer));
+ base::Bind(&CreateGpuJpegDecoder,
+ base::Bind(&media::VideoFrameReceiver::OnFrameReadyInBuffer,
+ controller_->GetWeakPtrForIOThread()))));
auto consumer_feedback_observer =
base::MakeUnique<MockConsumerFeedbackObserver>();
mock_consumer_feedback_observer_ = consumer_feedback_observer.get();
@@ -163,7 +155,6 @@ class VideoCaptureControllerTest
std::unique_ptr<MockVideoCaptureControllerEventHandler> client_b_;
std::unique_ptr<VideoCaptureController> controller_;
std::unique_ptr<media::VideoCaptureDevice::Client> device_client_;
- MockFrameBufferPool* mock_frame_receiver_observer_;
MockConsumerFeedbackObserver* mock_consumer_feedback_observer_;
const float arbitrary_frame_rate_ = 10.0f;
const base::TimeTicks arbitrary_reference_time_ = base::TimeTicks();
@@ -344,18 +335,11 @@ TEST_P(VideoCaptureControllerTest, NormalCaptureMultipleClients) {
}
client_a_->resource_utilization_ = 0.5;
client_b_->resource_utilization_ = -1.0;
- {
- InSequence s;
- EXPECT_CALL(*mock_frame_receiver_observer_, SetBufferHold(buffer.id()))
- .Times(1);
- // Expect VideoCaptureController to call the load observer with a
- // resource utilization of 0.5 (the largest of all reported values).
- EXPECT_CALL(*mock_consumer_feedback_observer_,
- OnUtilizationReport(arbitrary_frame_feedback_id, 0.5))
- .Times(1);
- EXPECT_CALL(*mock_frame_receiver_observer_, ReleaseBufferHold(buffer.id()))
- .Times(1);
- }
+ // Expect VideoCaptureController to call the load observer with a
+ // resource utilization of 0.5 (the largest of all reported values).
+ EXPECT_CALL(*mock_consumer_feedback_observer_,
+ OnUtilizationReport(arbitrary_frame_feedback_id, 0.5))
+ .Times(1);
device_client_->OnIncomingCapturedBuffer(std::move(buffer),
device_format,
@@ -366,7 +350,6 @@ TEST_P(VideoCaptureControllerTest, NormalCaptureMultipleClients) {
Mock::VerifyAndClearExpectations(client_a_.get());
Mock::VerifyAndClearExpectations(client_b_.get());
Mock::VerifyAndClearExpectations(mock_consumer_feedback_observer_);
- Mock::VerifyAndClearExpectations(mock_frame_receiver_observer_);
// Second buffer which ought to use the same shared memory buffer. In this
// case pretend that the Buffer pointer is held by the device for a long
@@ -383,18 +366,9 @@ TEST_P(VideoCaptureControllerTest, NormalCaptureMultipleClients) {
client_b_->resource_utilization_ = 3.14;
// Expect VideoCaptureController to call the load observer with a
// resource utilization of 3.14 (the largest of all reported values).
- {
- InSequence s;
- EXPECT_CALL(*mock_frame_receiver_observer_, SetBufferHold(buffer2.id()))
- .Times(1);
- // Expect VideoCaptureController to call the load observer with a
- // resource utilization of 3.14 (the largest of all reported values).
- EXPECT_CALL(*mock_consumer_feedback_observer_,
- OnUtilizationReport(arbitrary_frame_feedback_id_2, 3.14))
- .Times(1);
- EXPECT_CALL(*mock_frame_receiver_observer_, ReleaseBufferHold(buffer2.id()))
- .Times(1);
- }
+ EXPECT_CALL(*mock_consumer_feedback_observer_,
+ OnUtilizationReport(arbitrary_frame_feedback_id_2, 3.14))
+ .Times(1);
device_client_->OnIncomingCapturedBuffer(std::move(buffer2),
device_format,
@@ -427,7 +401,6 @@ TEST_P(VideoCaptureControllerTest, NormalCaptureMultipleClients) {
Mock::VerifyAndClearExpectations(client_a_.get());
Mock::VerifyAndClearExpectations(client_b_.get());
Mock::VerifyAndClearExpectations(mock_consumer_feedback_observer_);
- Mock::VerifyAndClearExpectations(mock_frame_receiver_observer_);
// Add a fourth client now that some buffers have come through.
controller_->AddClient(client_b_route_2,

Powered by Google App Engine
This is Rietveld 408576698