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

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

Issue 1064703002: VideoCaptureBufferPool: Refactor to allow support of non-ShMem backed buffers (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_device_client.cc
diff --git a/content/browser/renderer_host/media/video_capture_device_client.cc b/content/browser/renderer_host/media/video_capture_device_client.cc
index 63345fb1b5457df828f2c380dd3521f7a60c72d5..aa44bd1b9e2895c3a785d44bc1646f4e035d9fad 100644
--- a/content/browser/renderer_host/media/video_capture_device_client.cc
+++ b/content/browser/renderer_host/media/video_capture_device_client.cc
@@ -105,8 +105,8 @@ void VideoCaptureDeviceClient::OnIncomingCapturedData(
return;
}
- scoped_refptr<Buffer> buffer = ReserveOutputBuffer(VideoFrame::I420,
- dimensions);
+ const VideoCaptureFormat format(dimensions, 0.0, media::PIXEL_FORMAT_I420);
+ scoped_refptr<Buffer> buffer = ReserveOutputBuffer(format);
if (!buffer.get())
return;
@@ -243,8 +243,7 @@ VideoCaptureDeviceClient::OnIncomingCapturedYuvData(
DCHECK_EQ(frame_format.pixel_format, media::PIXEL_FORMAT_I420);
DCHECK_EQ(clockwise_rotation, 0) << "Rotation not supported";
- scoped_refptr<Buffer> buffer = ReserveOutputBuffer(VideoFrame::I420,
- frame_format.frame_size);
+ scoped_refptr<Buffer> buffer = ReserveOutputBuffer(frame_format);
if (!buffer.get())
return;
@@ -301,19 +300,21 @@ VideoCaptureDeviceClient::OnIncomingCapturedYuvData(
};
scoped_refptr<media::VideoCaptureDevice::Client::Buffer>
-VideoCaptureDeviceClient::ReserveOutputBuffer(VideoFrame::Format format,
- const gfx::Size& dimensions) {
- const size_t frame_bytes = VideoFrame::AllocationSize(format, dimensions);
- if (format == VideoFrame::NATIVE_TEXTURE) {
- DCHECK_EQ(dimensions.width(), 0);
- DCHECK_EQ(dimensions.height(), 0);
+VideoCaptureDeviceClient::ReserveOutputBuffer(
+ const media::VideoCaptureFormat& format) {
+ DCHECK(format.pixel_format == media::PIXEL_FORMAT_TEXTURE ||
+ format.pixel_format == media::PIXEL_FORMAT_I420);
+ if (format.pixel_format == media::PIXEL_FORMAT_TEXTURE) {
miu 2015/04/08 01:20:00 IMO, you should just delete lines 307-313 and repl
mcasas 2015/04/08 22:07:06 Done.
+ DCHECK_EQ(format.frame_size.width(), 0);
+ DCHECK_EQ(format.frame_size.height(), 0);
} else {
- DLOG_IF(ERROR, frame_bytes == 0) << "Error calculating allocation size";
+ DLOG_IF(ERROR, format.ImageAllocationSize() == 0)
+ << "Error calculating allocation size";
}
int buffer_id_to_drop = VideoCaptureBufferPool::kInvalidId;
- const int buffer_id =
- buffer_pool_->ReserveForProducer(frame_bytes, &buffer_id_to_drop);
+ const int buffer_id = buffer_pool_->ReserveForProducer(
+ format, &buffer_id_to_drop);
if (buffer_id == VideoCaptureBufferPool::kInvalidId)
return NULL;
void* data;

Powered by Google App Engine
This is Rietveld 408576698