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

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

Issue 1064963002: VideoCapture: add support for GpuMemoryBuffer allocation and lifetime mgmt in VideoCaptureBufferPool (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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 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 1cbd287a1ff9c879f9aa88d74765107b54d1c49d..ff37e6816a75afec1f067177c69a89f1fb891eb7 100644
--- a/content/browser/renderer_host/media/video_capture_controller_unittest.cc
+++ b/content/browser/renderer_host/media/video_capture_controller_unittest.cc
@@ -132,15 +132,14 @@ class VideoCaptureControllerTest : public testing::Test {
void TearDown() override { base::RunLoop().RunUntilIdle(); }
- scoped_refptr<media::VideoFrame> WrapI420Buffer(
- const scoped_refptr<media::VideoCaptureDevice::Client::Buffer>& buffer,
- gfx::Size dimensions) {
+ scoped_refptr<media::VideoFrame> WrapI420Buffer(gfx::Size dimensions,
+ uint8* data) {
return media::VideoFrame::WrapExternalPackedMemory(
media::VideoFrame::I420,
dimensions,
gfx::Rect(dimensions),
dimensions,
- reinterpret_cast<uint8*>(buffer->data()),
+ data,
media::VideoFrame::AllocationSize(media::VideoFrame::I420, dimensions),
base::SharedMemory::NULLHandle(),
0,
@@ -329,7 +328,8 @@ TEST_F(VideoCaptureControllerTest, NormalCaptureMultipleClients) {
buffer = device_->ReserveOutputBuffer(media::PIXEL_FORMAT_I420,
capture_resolution);
ASSERT_TRUE(buffer.get());
- memset(buffer->data(), buffer_no++, buffer->size());
+ scoped_ptr<media::DataHandle> scoped_data_handle(buffer->GetDataHandle());
+ memset(scoped_data_handle->data(), buffer_no++, buffer->size());
{
InSequence s;
EXPECT_CALL(*client_a_, DoBufferCreated(client_a_route_1)).Times(1);
@@ -346,8 +346,8 @@ TEST_F(VideoCaptureControllerTest, NormalCaptureMultipleClients) {
EXPECT_CALL(*client_a_, DoBufferReady(client_a_route_2,_)).Times(1);
}
device_->OnIncomingCapturedVideoFrame(
- buffer,
- WrapI420Buffer(buffer, capture_resolution),
+ buffer, WrapI420Buffer(capture_resolution,
+ static_cast<uint8*>(scoped_data_handle->data())),
base::TimeTicks());
buffer = NULL;
@@ -360,11 +360,12 @@ TEST_F(VideoCaptureControllerTest, NormalCaptureMultipleClients) {
// delay. This shouldn't affect anything.
buffer = device_->ReserveOutputBuffer(media::PIXEL_FORMAT_I420,
capture_resolution);
+ scoped_data_handle = buffer->GetDataHandle().Pass();
ASSERT_TRUE(buffer.get());
- memset(buffer->data(), buffer_no++, buffer->size());
+ memset(scoped_data_handle->data(), buffer_no++, buffer->size());
device_->OnIncomingCapturedVideoFrame(
- buffer,
- WrapI420Buffer(buffer, capture_resolution),
+ buffer, WrapI420Buffer(capture_resolution,
+ static_cast<uint8*>(scoped_data_handle->data())),
base::TimeTicks());
buffer = NULL;
@@ -389,10 +390,11 @@ TEST_F(VideoCaptureControllerTest, NormalCaptureMultipleClients) {
buffer = device_->ReserveOutputBuffer(media::PIXEL_FORMAT_I420,
capture_resolution);
ASSERT_TRUE(buffer.get());
- memset(buffer->data(), buffer_no++, buffer->size());
+ scoped_data_handle = buffer->GetDataHandle().Pass();
+ memset(scoped_data_handle->data(), buffer_no++, buffer->size());
device_->OnIncomingCapturedVideoFrame(
- buffer,
- WrapI420Buffer(buffer, capture_resolution),
+ buffer, WrapI420Buffer(capture_resolution,
+ static_cast<uint8*>(scoped_data_handle->data())),
base::TimeTicks());
buffer = NULL;
}
@@ -426,10 +428,11 @@ TEST_F(VideoCaptureControllerTest, NormalCaptureMultipleClients) {
buffer = device_->ReserveOutputBuffer(media::PIXEL_FORMAT_I420,
capture_resolution);
ASSERT_TRUE(buffer.get());
- memset(buffer->data(), buffer_no++, buffer->size());
+ scoped_data_handle = buffer->GetDataHandle().Pass();
+ memset(scoped_data_handle->data(), buffer_no++, buffer->size());
device_->OnIncomingCapturedVideoFrame(
- buffer,
- WrapI420Buffer(buffer, capture_resolution),
+ buffer, WrapI420Buffer(capture_resolution,
+ static_cast<uint8*>(scoped_data_handle->data())),
base::TimeTicks());
buffer = NULL;
buffer = device_->ReserveOutputBuffer(media::PIXEL_FORMAT_I420,
@@ -441,10 +444,10 @@ TEST_F(VideoCaptureControllerTest, NormalCaptureMultipleClients) {
controller_->StopSession(200);
}
ASSERT_TRUE(buffer.get());
- memset(buffer->data(), buffer_no++, buffer->size());
+ memset(scoped_data_handle->data(), buffer_no++, buffer->size());
device_->OnIncomingCapturedVideoFrame(
- buffer,
- WrapI420Buffer(buffer, capture_resolution),
+ buffer, WrapI420Buffer(capture_resolution,
+ static_cast<uint8*>(scoped_data_handle->data())),
base::TimeTicks());
buffer = NULL;
// B2 is the only client left, and is the only one that should
@@ -472,9 +475,10 @@ TEST_F(VideoCaptureControllerTest, NormalCaptureMultipleClients) {
buffer = device_->ReserveOutputBuffer(media::PIXEL_FORMAT_I420,
capture_resolution);
ASSERT_TRUE(buffer.get());
+ scoped_data_handle = buffer->GetDataHandle().Pass();
device_->OnIncomingCapturedVideoFrame(
- buffer,
- WrapI420Buffer(buffer, capture_resolution),
+ buffer, WrapI420Buffer(capture_resolution,
+ static_cast<uint8*>(scoped_data_handle->data())),
base::TimeTicks());
buffer = NULL;
}
@@ -484,6 +488,7 @@ TEST_F(VideoCaptureControllerTest, NormalCaptureMultipleClients) {
buffer = device_->ReserveOutputBuffer(media::PIXEL_FORMAT_TEXTURE,
capture_resolution);
ASSERT_TRUE(buffer.get());
+ scoped_data_handle = buffer->GetDataHandle().Pass();
#if !defined(OS_ANDROID)
mailbox_syncpoints[i] = gl_helper->InsertSyncPoint();
#endif
@@ -553,10 +558,11 @@ TEST_F(VideoCaptureControllerTest, ErrorBeforeDeviceCreation) {
device_->ReserveOutputBuffer(media::PIXEL_FORMAT_I420,
capture_resolution);
ASSERT_TRUE(buffer.get());
+ scoped_ptr<media::DataHandle> scoped_data_handle(buffer->GetDataHandle());
device_->OnIncomingCapturedVideoFrame(
- buffer,
- WrapI420Buffer(buffer, capture_resolution),
+ buffer, WrapI420Buffer(capture_resolution,
+ static_cast<uint8*>(scoped_data_handle->data())),
base::TimeTicks());
buffer = NULL;
@@ -590,11 +596,12 @@ TEST_F(VideoCaptureControllerTest, ErrorAfterDeviceCreation) {
scoped_refptr<media::VideoCaptureDevice::Client::Buffer> buffer =
device_->ReserveOutputBuffer(media::PIXEL_FORMAT_I420, dims);
ASSERT_TRUE(buffer.get());
+ scoped_ptr<media::DataHandle> scoped_data_handle(buffer->GetDataHandle());
device_->OnError("Test error");
device_->OnIncomingCapturedVideoFrame(
buffer,
- WrapI420Buffer(buffer, dims),
+ WrapI420Buffer(dims, static_cast<uint8*>(scoped_data_handle->data())),
base::TimeTicks());
buffer = NULL;

Powered by Google App Engine
This is Rietveld 408576698