summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiong Sauw Ming <ming@teluu.com>2016-10-07 05:58:54 +0000
committerLiong Sauw Ming <ming@teluu.com>2016-10-07 05:58:54 +0000
commitbadfbf1e8124c2ca56b196a182d740e03958e51b (patch)
tree202208b1006c42ce57413ff55fdcf2b46c858969
parent3136a14e5dceee95ccf59d5f6dc07dfa31b3b178 (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
-rw-r--r--pjmedia/src/pjmedia-videodev/darwin_dev.m28
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)
{