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

Unified Diff: media/video/capture/win/video_capture_device_win.cc

Issue 691143002: Revert of Windows video capture: Remove duplicated code from GetDeviceSupportedFormats* (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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
« no previous file with comments | « media/video/capture/win/video_capture_device_win.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/video/capture/win/video_capture_device_win.cc
diff --git a/media/video/capture/win/video_capture_device_win.cc b/media/video/capture/win/video_capture_device_win.cc
index de2130097ad69ba2a888136c9233ac1de67a8139..83e1bd3919a3c240b5754884572eaeb228f6049f 100644
--- a/media/video/capture/win/video_capture_device_win.cc
+++ b/media/video/capture/win/video_capture_device_win.cc
@@ -306,8 +306,7 @@
return false;
}
- return CreateCapabilityMap(
- output_capture_pin_, capture_filter_, &capabilities_);
+ return CreateCapabilityMap();
}
void VideoCaptureDeviceWin::AllocateAndStart(
@@ -474,12 +473,11 @@
buffer, length, capture_format_, 0, base::TimeTicks::Now());
}
-bool VideoCaptureDeviceWin::CreateCapabilityMap(IPin* output_capture_pin,
- IBaseFilter* capture_filter,
- CapabilityList* capabilities) {
+bool VideoCaptureDeviceWin::CreateCapabilityMap() {
+ DCHECK(CalledOnValidThread());
ScopedComPtr<IAMStreamConfig> stream_config;
- HRESULT hr = output_capture_pin->QueryInterface(stream_config.Receive());
- if (FAILED(hr) || !stream_config) {
+ HRESULT hr = output_capture_pin_.QueryInterface(stream_config.Receive());
+ if (FAILED(hr)) {
DPLOG(ERROR) << "Failed to get IAMStreamConfig interface from "
"capture device: " << logging::SystemErrorCodeToString(hr);
return false;
@@ -487,10 +485,9 @@
// Get interface used for getting the frame rate.
ScopedComPtr<IAMVideoControl> video_control;
- hr = capture_filter->QueryInterface(video_control.Receive());
- DLOG_IF(WARNING, FAILED(hr) || !video_control)
- << "IAMVideoControl Interface NOT SUPPORTED: "
- << logging::SystemErrorCodeToString(hr);
+ hr = capture_filter_.QueryInterface(video_control.Receive());
+ DLOG_IF(WARNING, FAILED(hr)) << "IAMVideoControl Interface NOT SUPPORTED: "
+ << logging::SystemErrorCodeToString(hr);
int count = 0, size = 0;
hr = stream_config->GetNumberOfCapabilities(&count, &size);
@@ -507,7 +504,7 @@
stream_index, media_type.Receive(), caps.get());
// GetStreamCaps() may return S_FALSE, so don't use FAILED() or SUCCEED()
// macros here since they'll trigger incorrectly.
- if (hr != S_OK || !media_type.get()) {
+ if (hr != S_OK) {
DLOG(ERROR) << "Failed to GetStreamCaps: "
<< logging::SystemErrorCodeToString(hr);
return false;
@@ -523,10 +520,6 @@
VIDEOINFOHEADER* h =
reinterpret_cast<VIDEOINFOHEADER*>(media_type->pbFormat);
- if (!h) {
- DLOG(ERROR) << "VIDEOINFOHEADER is NULL";
- continue;
- }
format.frame_size.SetSize(h->bmiHeader.biWidth, h->bmiHeader.biHeight);
// Try to get a better |time_per_frame| from IAMVideoControl. If not, use
@@ -538,7 +531,7 @@
const SIZE size = {format.frame_size.width(),
format.frame_size.height()};
hr = video_control->GetFrameRateList(
- output_capture_pin, stream_index, size, &list_size, &max_fps);
+ output_capture_pin_, stream_index, size, &list_size, &max_fps);
// Can't assume the first value will return the max fps.
// Sometimes |list_size| will be > 0, but max_fps will be NULL. Some
// drivers may return an HRESULT of S_FALSE which SUCCEEDED() translates
@@ -554,11 +547,11 @@
? (kSecondsToReferenceTime / static_cast<float>(time_per_frame))
: 0.0;
- capabilities->emplace_back(stream_index, format);
- }
- }
-
- return !capabilities->empty();
+ capabilities_.emplace_back(stream_index, format);
+ }
+ }
+
+ return !capabilities_.empty();
}
// Set the power line frequency removal in |capture_filter_| if available.
« no previous file with comments | « media/video/capture/win/video_capture_device_win.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698