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

Unified Diff: trunk/src/content/browser/renderer_host/media/video_capture_controller.cc

Issue 84393002: Revert 236927 "Reorganize media::VideoCapture* types" (Closed) Base URL: svn://svn.chromium.org/chrome/
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
Index: trunk/src/content/browser/renderer_host/media/video_capture_controller.cc
===================================================================
--- trunk/src/content/browser/renderer_host/media/video_capture_controller.cc (revision 236934)
+++ trunk/src/content/browser/renderer_host/media/video_capture_controller.cc (working copy)
@@ -20,7 +20,7 @@
#include "third_party/libyuv/include/libyuv.h"
#endif
-using media::VideoCaptureFormat;
+using media::VideoCaptureCapability;
namespace content {
@@ -48,28 +48,27 @@
} // anonymous namespace
struct VideoCaptureController::ControllerClient {
- ControllerClient(const VideoCaptureControllerID& id,
- VideoCaptureControllerEventHandler* handler,
- base::ProcessHandle render_process,
- media::VideoCaptureSessionId session_id,
- const media::VideoCaptureParams& params)
+ ControllerClient(
+ const VideoCaptureControllerID& id,
+ VideoCaptureControllerEventHandler* handler,
+ base::ProcessHandle render_process,
+ const media::VideoCaptureParams& params)
: controller_id(id),
event_handler(handler),
render_process_handle(render_process),
- session_id(session_id),
parameters(params),
- session_closed(false) {}
+ session_closed(false) {
+ }
~ControllerClient() {}
// ID used for identifying this object.
- const VideoCaptureControllerID controller_id;
- VideoCaptureControllerEventHandler* const event_handler;
+ VideoCaptureControllerID controller_id;
+ VideoCaptureControllerEventHandler* event_handler;
// Handle to the render process that will receive the capture buffers.
- const base::ProcessHandle render_process_handle;
- const media::VideoCaptureSessionId session_id;
- const media::VideoCaptureParams parameters;
+ base::ProcessHandle render_process_handle;
+ media::VideoCaptureParams parameters;
// Buffers that are currently known to this client.
std::set<int> known_buffers;
@@ -116,7 +115,7 @@
int rotation,
bool flip_vert,
bool flip_horiz,
- const VideoCaptureFormat& frame_format)
+ const VideoCaptureCapability& frame_info)
OVERRIDE;
virtual void OnIncomingCapturedBuffer(const scoped_refptr<Buffer>& buffer,
media::VideoFrame::Format format,
@@ -168,13 +167,13 @@
const VideoCaptureControllerID& id,
VideoCaptureControllerEventHandler* event_handler,
base::ProcessHandle render_process,
- media::VideoCaptureSessionId session_id,
const media::VideoCaptureParams& params) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
DVLOG(1) << "VideoCaptureController::AddClient, id " << id.device_id
- << ", " << params.requested_format.frame_size.ToString()
+ << ", (" << params.requested_format.width
+ << ", " << params.requested_format.height
<< ", " << params.requested_format.frame_rate
- << ", " << session_id
+ << ", " << params.session_id
<< ")";
// Signal error in case device is already in error state.
@@ -187,8 +186,8 @@
if (FindClient(id, event_handler, controller_clients_))
return;
- ControllerClient* client = new ControllerClient(
- id, event_handler, render_process, session_id, params);
+ ControllerClient* client = new ControllerClient(id, event_handler,
+ render_process, params);
// If we already have gotten frame_info from the device, repeat it to the new
// client.
if (state_ == VIDEO_CAPTURE_STATE_STARTED) {
@@ -216,7 +215,7 @@
}
client->active_buffers.clear();
- int session_id = client->session_id;
+ int session_id = client->parameters.session_id;
controller_clients_.remove(client);
delete client;
@@ -267,24 +266,24 @@
int rotation,
bool flip_vert,
bool flip_horiz,
- const VideoCaptureFormat& frame_format) {
+ const VideoCaptureCapability& frame_info) {
TRACE_EVENT0("video", "VideoCaptureController::OnIncomingCapturedFrame");
- if (!frame_format.IsValid())
+ if (!frame_info.IsValid())
return;
// Chopped pixels in width/height in case video capture device has odd
// numbers for width/height.
int chopped_width = 0;
int chopped_height = 0;
- int new_width = frame_format.frame_size.width();
- int new_height = frame_format.frame_size.height();
+ int new_width = frame_info.width;
+ int new_height = frame_info.height;
- if (new_width & 1) {
+ if (frame_info.width & 1) {
--new_width;
chopped_width = 1;
}
- if (new_height & 1) {
+ if (frame_info.height & 1) {
--new_height;
chopped_height = 1;
}
@@ -325,7 +324,7 @@
else if (new_rotation_angle == 270)
rotation_mode = libyuv::kRotate270;
- switch (frame_format.pixel_format) {
+ switch (frame_info.color) {
case media::PIXEL_FORMAT_UNKNOWN: // Color format not set.
break;
case media::PIXEL_FORMAT_I420:
@@ -365,7 +364,7 @@
#if defined(OS_WIN)
// kRGB24 on Windows start at the bottom line and has a negative stride. This
// is not supported by libyuv, so the media API is used instead.
- if (frame_format.pixel_format == media::PIXEL_FORMAT_RGB24) {
+ if (frame_info.color == media::PIXEL_FORMAT_RGB24) {
// Rotation and flipping is not supported in kRGB24 and OS_WIN case.
DCHECK(!rotation && !flip_vert && !flip_horiz);
need_convert_rgb24_on_win = true;
@@ -435,7 +434,7 @@
controller_,
buffer,
dimensions,
- frame_format.frame_rate,
+ frame_info.frame_rate,
timestamp));
}
@@ -525,8 +524,11 @@
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
DCHECK_NE(buffer->id(), VideoCaptureBufferPool::kInvalidId);
- VideoCaptureFormat frame_format(
- dimensions, frame_rate, media::PIXEL_FORMAT_I420);
+ media::VideoCaptureFormat frame_format(
+ dimensions.width(),
+ dimensions.height(),
+ frame_rate,
+ media::VariableResolutionVideoCaptureDevice);
int count = 0;
if (state_ == VIDEO_CAPTURE_STATE_STARTED) {
@@ -609,7 +611,7 @@
const ControllerClients& clients) {
for (ControllerClients::const_iterator client_it = clients.begin();
client_it != clients.end(); ++client_it) {
- if ((*client_it)->session_id == session_id) {
+ if ((*client_it)->parameters.session_id == session_id) {
return *client_it;
}
}

Powered by Google App Engine
This is Rietveld 408576698