videoio(macosx): fix array access exception in AVFoundation

This commit is contained in:
Alexander Alekhin 2017-06-24 11:07:57 +03:00
parent 51e16bbe81
commit 35a2f2fef9

View File

@ -694,7 +694,15 @@ CvCaptureFile::CvCaptureFile(const char* filename) {
return;
}
mAssetTrack = [[mAsset tracksWithMediaType: AVMediaTypeVideo][0] retain];
NSArray *tracks = [mAsset tracksWithMediaType:AVMediaTypeVideo];
if ([tracks count] == 0) {
fprintf(stderr, "OpenCV: Couldn't read video stream from file \"%s\"\n", filename);
[localpool drain];
started = 0;
return;
}
mAssetTrack = [tracks[0] retain];
if ( ! setupReadingAt(kCMTimeZero) ) {
fprintf(stderr, "OpenCV: Couldn't read movie file \"%s\"\n", filename);