fix: AVFoundation inconsistent camera indices

This commit is contained in:
Vadim Levin 2022-12-12 10:41:39 +03:00
parent ebaee3ea21
commit 727feda935

View File

@ -376,6 +376,15 @@ int CvCaptureCAM::startCaptureDevice(int cameraNum) {
return 0; return 0;
} }
// Preserve devices ordering on the system
// see AVCaptureDevice::uniqueID property documentation for more info
devices = [devices
sortedArrayUsingComparator:^NSComparisonResult(AVCaptureDevice *d1,
AVCaptureDevice *d2) {
return [d1.uniqueID compare:d2.uniqueID];
}
];
mCaptureDevice = devices[cameraNum]; mCaptureDevice = devices[cameraNum];
if ( ! mCaptureDevice ) { if ( ! mCaptureDevice ) {