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

Side by Side Diff: media/capture/video/mac/video_capture_device_avfoundation_mac.mm

Issue 2169013002: Change class VideoCaptureDevice::Name to struct VideoCaptureDeviceDescriptor (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix build errors Created 4 years, 4 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "media/capture/video/mac/video_capture_device_avfoundation_mac.h" 5 #import "media/capture/video/mac/video_capture_device_avfoundation_mac.h"
6 6
7 #import <CoreMedia/CoreMedia.h> 7 #import <CoreMedia/CoreMedia.h>
8 #import <CoreVideo/CoreVideo.h> 8 #import <CoreVideo/CoreVideo.h>
9 #include <stddef.h> 9 #include <stddef.h>
10 #include <stdint.h> 10 #include <stdint.h>
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 158
159 + (NSDictionary*)deviceNames { 159 + (NSDictionary*)deviceNames {
160 NSMutableDictionary* deviceNames = 160 NSMutableDictionary* deviceNames =
161 [[[NSMutableDictionary alloc] init] autorelease]; 161 [[[NSMutableDictionary alloc] init] autorelease];
162 // The device name retrieval is not going to happen in the main thread, and 162 // The device name retrieval is not going to happen in the main thread, and
163 // this might cause instabilities (it did in QTKit), so keep an eye here. 163 // this might cause instabilities (it did in QTKit), so keep an eye here.
164 [self getDeviceNames:deviceNames]; 164 [self getDeviceNames:deviceNames];
165 return deviceNames; 165 return deviceNames;
166 } 166 }
167 167
168 + (void)getDevice:(const media::VideoCaptureDevice::Name&)name 168 + (void)getDevice:(const media::VideoCaptureDeviceDescriptor&)descriptor
169 supportedFormats:(media::VideoCaptureFormats*)formats { 169 supportedFormats:(media::VideoCaptureFormats*)formats {
170 NSArray* devices = [AVCaptureDeviceGlue devices]; 170 NSArray* devices = [AVCaptureDeviceGlue devices];
171 CrAVCaptureDevice* device = nil; 171 CrAVCaptureDevice* device = nil;
172 for (device in devices) { 172 for (device in devices) {
173 if ([[device uniqueID] UTF8String] == name.id()) 173 if ([[device uniqueID] UTF8String] == descriptor.device_id)
174 break; 174 break;
175 } 175 }
176 if (device == nil) 176 if (device == nil)
177 return; 177 return;
178 for (CrAVCaptureDeviceFormat* format in device.formats) { 178 for (CrAVCaptureDeviceFormat* format in device.formats) {
179 // MediaSubType is a CMPixelFormatType but can be used as CVPixelFormatType 179 // MediaSubType is a CMPixelFormatType but can be used as CVPixelFormatType
180 // as well according to CMFormatDescription.h 180 // as well according to CMFormatDescription.h
181 const media::VideoPixelFormat pixelFormat = FourCCToChromiumPixelFormat( 181 const media::VideoPixelFormat pixelFormat = FourCCToChromiumPixelFormat(
182 CoreMediaGlue::CMFormatDescriptionGetMediaSubType( 182 CoreMediaGlue::CMFormatDescriptionGetMediaSubType(
183 [format formatDescription])); 183 [format formatDescription]));
184 184
185 CoreMediaGlue::CMVideoDimensions dimensions = 185 CoreMediaGlue::CMVideoDimensions dimensions =
186 CoreMediaGlue::CMVideoFormatDescriptionGetDimensions( 186 CoreMediaGlue::CMVideoFormatDescriptionGetDimensions(
187 [format formatDescription]); 187 [format formatDescription]);
188 188
189 for (CrAVFrameRateRange* frameRate in 189 for (CrAVFrameRateRange* frameRate in
190 [format videoSupportedFrameRateRanges]) { 190 [format videoSupportedFrameRateRanges]) {
191 media::VideoCaptureFormat format( 191 media::VideoCaptureFormat format(
192 gfx::Size(dimensions.width, dimensions.height), 192 gfx::Size(dimensions.width, dimensions.height),
193 frameRate.maxFrameRate, pixelFormat); 193 frameRate.maxFrameRate, pixelFormat);
194 formats->push_back(format); 194 formats->push_back(format);
195 DVLOG(2) << name.name() << " " 195 DVLOG(2) << descriptor.display_name << " "
196 << media::VideoCaptureFormat::ToString(format); 196 << media::VideoCaptureFormat::ToString(format);
197 } 197 }
198 } 198 }
199 } 199 }
200 200
201 #pragma mark Public methods 201 #pragma mark Public methods
202 202
203 - (id)initWithFrameReceiver:(media::VideoCaptureDeviceMac*)frameReceiver { 203 - (id)initWithFrameReceiver:(media::VideoCaptureDeviceMac*)frameReceiver {
204 if ((self = [super init])) { 204 if ((self = [super init])) {
205 DCHECK(main_thread_checker_.CalledOnValidThread()); 205 DCHECK(main_thread_checker_.CalledOnValidThread());
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 } 503 }
504 504
505 - (void)sendErrorString:(NSString*)error { 505 - (void)sendErrorString:(NSString*)error {
506 DLOG(ERROR) << [error UTF8String]; 506 DLOG(ERROR) << [error UTF8String];
507 base::AutoLock lock(lock_); 507 base::AutoLock lock(lock_);
508 if (frameReceiver_) 508 if (frameReceiver_)
509 frameReceiver_->ReceiveError(FROM_HERE, [error UTF8String]); 509 frameReceiver_->ReceiveError(FROM_HERE, [error UTF8String]);
510 } 510 }
511 511
512 @end 512 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698