diff --git a/modules/highgui/src/cap_dshow.cpp b/modules/highgui/src/cap_dshow.cpp index b7cfbd94b3..3f364edb2c 100644 --- a/modules/highgui/src/cap_dshow.cpp +++ b/modules/highgui/src/cap_dshow.cpp @@ -3164,18 +3164,18 @@ void CvCaptureCAM_DShow::close() // Initialize camera input bool CvCaptureCAM_DShow::open( int _index ) { - int try_index = _index; int devices = 0; close(); devices = VI.listDevices(true); if (devices == 0) return false; - try_index = try_index < 0 ? 0 : (try_index > devices-1 ? devices-1 : try_index); - VI.setupDevice(try_index); - if( !VI.isDeviceSetup(try_index) ) + if (_index < 0 || index > devices-1) + return false; + VI.setupDevice(_index); + if( !VI.isDeviceSetup(_index) ) return false; - index = try_index; + index = _index; return true; }