From 35a2f2fef911af0cd0eafd855754ea6e5ce2da90 Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Sat, 24 Jun 2017 11:07:57 +0300 Subject: [PATCH] videoio(macosx): fix array access exception in AVFoundation --- modules/videoio/src/cap_avfoundation_mac.mm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/modules/videoio/src/cap_avfoundation_mac.mm b/modules/videoio/src/cap_avfoundation_mac.mm index 07aac1af9c..0ef461c8a9 100644 --- a/modules/videoio/src/cap_avfoundation_mac.mm +++ b/modules/videoio/src/cap_avfoundation_mac.mm @@ -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);