diff options
author | Liong Sauw Ming <ming@teluu.com> | 2014-08-19 01:37:12 +0000 |
---|---|---|
committer | Liong Sauw Ming <ming@teluu.com> | 2014-08-19 01:37:12 +0000 |
commit | d536d4dffae8895d80a4c4865c548699e32a6ed4 (patch) | |
tree | 150f702713feb36e119a0d12f66913d10087f918 /pjmedia | |
parent | f0bd6df8b27496f713d570de7e09bf6c503d2cad (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
Diffstat (limited to 'pjmedia')
-rw-r--r-- | pjmedia/src/pjmedia-videodev/ios_dev.m | 9 |
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]) { |