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

Unified Diff: content/renderer/media/video_capture_impl.cc

Issue 83633008: Reland: Reorganize media::VideoCapture* types (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month 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
« no previous file with comments | « content/renderer/media/rtc_video_capturer.cc ('k') | content/renderer/media/video_capture_impl_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/media/video_capture_impl.cc
diff --git a/content/renderer/media/video_capture_impl.cc b/content/renderer/media/video_capture_impl.cc
index 8fd24f86b39fa08a7d6d23573af1607e3a6bb226..30b43ddfcf4d41c46782c4b7229a354ab60218b4 100644
--- a/content/renderer/media/video_capture_impl.cc
+++ b/content/renderer/media/video_capture_impl.cc
@@ -10,6 +10,7 @@
#include "content/common/media/video_capture_messages.h"
#include "media/base/bind_to_loop.h"
#include "media/base/limits.h"
+#include "media/base/video_frame.h"
namespace content {
@@ -159,24 +160,23 @@ void VideoCaptureImpl::DoStartCaptureOnCaptureThread(
clients_[handler] = params;
} else if (state_ == VIDEO_CAPTURE_STATE_STOPPING) {
clients_pending_on_restart_[handler] = params;
- DVLOG(1) << "StartCapture: Got new resolution ("
- << params.requested_format.width << ", "
- << params.requested_format.height << ") "
- << ", during stopping.";
+ DVLOG(1) << "StartCapture: Got new resolution "
+ << params.requested_format.frame_size.ToString()
+ << " during stopping.";
} else {
- DCHECK_EQ(params.session_id, 0);
+ // TODO(sheu): Allowing resolution change will require that all
+ // outstanding clients of a capture session support resolution change.
+ DCHECK(!params.allow_resolution_change);
clients_[handler] = params;
DCHECK_EQ(1ul, clients_.size());
params_ = params;
- params_.session_id = session_id_;
if (params_.requested_format.frame_rate >
media::limits::kMaxFramesPerSecond) {
params_.requested_format.frame_rate =
media::limits::kMaxFramesPerSecond;
}
- DVLOG(1) << "StartCapture: starting with first resolution ("
- << params_.requested_format.width << ","
- << params_.requested_format.height << ")";
+ DVLOG(1) << "StartCapture: starting with first resolution "
+ << params_.requested_format.frame_size.ToString();
StartCaptureInternal();
}
@@ -252,7 +252,6 @@ void VideoCaptureImpl::DoBufferReceivedOnCaptureThread(
}
last_frame_format_ = format;
- gfx::Size size(format.width, format.height);
ClientBufferMap::iterator iter = client_buffers_.find(buffer_id);
DCHECK(iter != client_buffers_.end());
@@ -260,9 +259,9 @@ void VideoCaptureImpl::DoBufferReceivedOnCaptureThread(
scoped_refptr<media::VideoFrame> frame =
media::VideoFrame::WrapExternalPackedMemory(
media::VideoFrame::I420,
- size,
- gfx::Rect(size),
- size,
+ last_frame_format_.frame_size,
+ gfx::Rect(last_frame_format_.frame_size),
+ last_frame_format_.frame_size,
reinterpret_cast<uint8*>(buffer->buffer->memory()),
buffer->buffer_size,
buffer->buffer->handle(),
@@ -360,7 +359,7 @@ void VideoCaptureImpl::StopDevice() {
if (state_ == VIDEO_CAPTURE_STATE_STARTED) {
state_ = VIDEO_CAPTURE_STATE_STOPPING;
Send(new VideoCaptureHostMsg_Stop(device_id_));
- params_.requested_format.width = params_.requested_format.height = 0;
+ params_.requested_format.frame_size.SetSize(0, 0);
}
}
@@ -372,20 +371,19 @@ void VideoCaptureImpl::RestartCapture() {
int height = 0;
for (ClientInfo::iterator it = clients_.begin();
it != clients_.end(); ++it) {
- width = std::max(width, it->second.requested_format.width);
- height = std::max(height, it->second.requested_format.height);
+ width = std::max(width, it->second.requested_format.frame_size.width());
+ height = std::max(height, it->second.requested_format.frame_size.height());
}
for (ClientInfo::iterator it = clients_pending_on_restart_.begin();
it != clients_pending_on_restart_.end(); ) {
- width = std::max(width, it->second.requested_format.width);
- height = std::max(height, it->second.requested_format.height);
+ width = std::max(width, it->second.requested_format.frame_size.width());
+ height = std::max(height, it->second.requested_format.frame_size.height());
clients_[it->first] = it->second;
clients_pending_on_restart_.erase(it++);
}
- params_.requested_format.width = width;
- params_.requested_format.height = height;
- DVLOG(1) << "RestartCapture, " << params_.requested_format.width << ", "
- << params_.requested_format.height;
+ params_.requested_format.frame_size.SetSize(width, height);
+ DVLOG(1) << "RestartCapture, "
+ << params_.requested_format.frame_size.ToString();
StartCaptureInternal();
}
@@ -393,7 +391,7 @@ void VideoCaptureImpl::StartCaptureInternal() {
DCHECK(capture_message_loop_proxy_->BelongsToCurrentThread());
DCHECK(device_id_);
- Send(new VideoCaptureHostMsg_Start(device_id_, params_));
+ Send(new VideoCaptureHostMsg_Start(device_id_, session_id_, params_));
state_ = VIDEO_CAPTURE_STATE_STARTED;
}
« no previous file with comments | « content/renderer/media/rtc_video_capturer.cc ('k') | content/renderer/media/video_capture_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698