diff --git a/src/plugins/avfoundation/camera/avfvideodevicecontrol.mm b/src/plugins/avfoundation/camera/avfvideodevicecontrol.mm index d049859c30e8855a8d365b480b1d3afaa90b874a..03736c395cdd818eaeecfb1b03b440683ce0ea3d 100644 --- a/src/plugins/avfoundation/camera/avfvideodevicecontrol.mm +++ b/src/plugins/avfoundation/camera/avfvideodevicecontrol.mm @@ -66,7 +66,7 @@ int AVFVideoDeviceControl::deviceCount() const QString AVFVideoDeviceControl::deviceName(int index) const { const QList<QByteArray> &devices = AVFCameraSession::availableCameraDevices(); - if (index >= devices.count()) + if (index < 0 || index >= devices.count()) return QString(); return QString::fromUtf8(devices.at(index)); @@ -75,7 +75,7 @@ QString AVFVideoDeviceControl::deviceName(int index) const QString AVFVideoDeviceControl::deviceDescription(int index) const { const QList<QByteArray> &devices = AVFCameraSession::availableCameraDevices(); - if (index >= devices.count()) + if (index < 0 || index >= devices.count()) return QString(); return AVFCameraSession::cameraDeviceInfo(devices.at(index)).description; @@ -93,7 +93,9 @@ int AVFVideoDeviceControl::selectedDevice() const void AVFVideoDeviceControl::setSelectedDevice(int index) { - if (index != m_selectedDevice) { + if (index >= 0 && + index < deviceCount() && + index != m_selectedDevice) { m_dirty = true; m_selectedDevice = index; Q_EMIT selectedDeviceChanged(index);