diff --git a/modules/cudacodec/src/cuvid_video_source.cpp b/modules/cudacodec/src/cuvid_video_source.cpp index f3c7ef7c6..0ca0b2d9b 100644 --- a/modules/cudacodec/src/cuvid_video_source.cpp +++ b/modules/cudacodec/src/cuvid_video_source.cpp @@ -62,7 +62,7 @@ cv::cudacodec::detail::CuvidVideoSource::CuvidVideoSource(const String& fname) // now create the actual source CUresult cuRes = cuvidCreateVideoSource(&videoSource_, fname.c_str(), ¶ms); if (cuRes == CUDA_ERROR_INVALID_SOURCE) - throw std::runtime_error(""); + CV_Error(Error::StsUnsupportedFormat, "Unsupported video source"); cuSafeCall( cuRes ); CUVIDEOFORMAT vidfmt; diff --git a/modules/cudacodec/src/video_parser.cpp b/modules/cudacodec/src/video_parser.cpp index dd373270e..e75a7bb9b 100644 --- a/modules/cudacodec/src/video_parser.cpp +++ b/modules/cudacodec/src/video_parser.cpp @@ -118,6 +118,7 @@ int CUDAAPI cv::cudacodec::detail::VideoParser::HandleVideoSequence(void* userDa try { + thiz->videoDecoder_->release(); thiz->videoDecoder_->create(newFormat); } catch (const cv::Exception&)