diff options
author | Liong Sauw Ming <ming@teluu.com> | 2016-10-07 05:58:54 +0000 |
---|---|---|
committer | Liong Sauw Ming <ming@teluu.com> | 2016-10-07 05:58:54 +0000 |
commit | badfbf1e8124c2ca56b196a182d740e03958e51b (patch) | |
tree | 202208b1006c42ce57413ff55fdcf2b46c858969 /pjmedia | |
parent | 3136a14e5dceee95ccf59d5f6dc07dfa31b3b178 (diff) |
Re #1941: Support for AVCaptureDeviceDiscoverySession to replace the deprecated [AVCaptureDevice devices] in iOS 10.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@5454 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia')
-rw-r--r-- | pjmedia/src/pjmedia-videodev/darwin_dev.m | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/pjmedia/src/pjmedia-videodev/darwin_dev.m b/pjmedia/src/pjmedia-videodev/darwin_dev.m index 74d96da5..08053b9d 100644 --- a/pjmedia/src/pjmedia-videodev/darwin_dev.m +++ b/pjmedia/src/pjmedia-videodev/darwin_dev.m @@ -293,7 +293,33 @@ static pj_status_t darwin_factory_init(pjmedia_vid_dev_factory *f) /* Init input device */ first_idx = qf->dev_count; if (NSClassFromString(@"AVCaptureSession")) { - for (AVCaptureDevice *device in [AVCaptureDevice devices]) { + NSArray<AVCaptureDevice *> *dev_list; + +#if TARGET_OS_IPHONE && defined(__IPHONE_10_0) + if (NSClassFromString(@"AVCaptureDeviceTypeBuiltInWideAngleCamera")) { + /* Starting in iOS 10, [AVCaptureDevice devices] is deprecated + * and replaced by AVCaptureDeviceDiscoverySession. + */ + AVCaptureDeviceDiscoverySession *dds; + NSArray<AVCaptureDeviceType> *dev_types = + @[AVCaptureDeviceTypeBuiltInWideAngleCamera, + AVCaptureDeviceTypeBuiltInDuoCamera, + AVCaptureDeviceTypeBuiltInTelephotoCamera]; + + dds = [AVCaptureDeviceDiscoverySession + discoverySessionWithDeviceTypes:dev_types + mediaType:AVMediaTypeVideo + position:AVCaptureDevicePositionUnspecified]; + + dev_list = [dds devices]; + } else { + dev_list = [AVCaptureDevice devices]; + } +#else + dev_list = [AVCaptureDevice devices]; +#endif + + for (AVCaptureDevice *device in dev_list) { if (![device hasMediaType:AVMediaTypeVideo] || qf->dev_count >= MAX_DEV_COUNT) { |