summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiong Sauw Ming <ming@teluu.com>2014-08-19 01:37:12 +0000
committerLiong Sauw Ming <ming@teluu.com>2014-08-19 01:37:12 +0000
commitd536d4dffae8895d80a4c4865c548699e32a6ed4 (patch)
tree150f702713feb36e119a0d12f66913d10087f918
parentf0bd6df8b27496f713d570de7e09bf6c503d2cad (diff)
Re #1762: Related to r4838, check whether the device supports the capture size before deciding to use it
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4891 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjmedia/src/pjmedia-videodev/ios_dev.m9
1 files changed, 6 insertions, 3 deletions
diff --git a/pjmedia/src/pjmedia-videodev/ios_dev.m b/pjmedia/src/pjmedia-videodev/ios_dev.m
index 50283bf9..aa1ab11d 100644
--- a/pjmedia/src/pjmedia-videodev/ios_dev.m
+++ b/pjmedia/src/pjmedia-videodev/ios_dev.m
@@ -567,9 +567,13 @@ static pj_status_t ios_factory_create_stream(
goto on_error;
}
+ AVCaptureDevice *dev = qf->dev_info[param->cap_id].dev;
+
/* Find the closest supported size */
- for(i = 0; i < PJ_ARRAY_SIZE(supported_size)-1; ++i) {
- if (supported_size[i] >= requested_size)
+ for(i = PJ_ARRAY_SIZE(supported_size)-1; i > 0; --i) {
+ if (![dev supportsAVCaptureSessionPreset: size_preset_str[i]])
+ continue;
+ if (supported_size[i-1] < requested_size)
break;
}
strm->cap_session.sessionPreset = size_preset_str[i];
@@ -583,7 +587,6 @@ static pj_status_t ios_factory_create_stream(
param->fmt = strm->param.fmt;
/* Set frame rate, this may only work on iOS 7 or later */
- AVCaptureDevice *dev = qf->dev_info[param->cap_id].dev;
if ([dev respondsToSelector:@selector(activeVideoMinFrameDuration)] &&
[dev lockForConfiguration:NULL])
{