mirror of
https://github.com/opencv/opencv.git
synced 2026-07-30 15:53:03 +04:00
imgcodecs: disable OpenEXR in runtime for 3rdparty source code
- builtin OpenEXR source code is outdated - external OpenEXR distributions are allowed
This commit is contained in:
@@ -44,6 +44,9 @@
|
||||
|
||||
#ifdef HAVE_OPENEXR
|
||||
|
||||
#include <opencv2/core/utils/configuration.private.hpp>
|
||||
#include <opencv2/core/utils/logger.hpp>
|
||||
|
||||
#if defined _MSC_VER && _MSC_VER >= 1200
|
||||
# pragma warning( disable: 4100 4244 4267 )
|
||||
#endif
|
||||
@@ -78,6 +81,27 @@
|
||||
namespace cv
|
||||
{
|
||||
|
||||
static bool isOpenEXREnabled()
|
||||
{
|
||||
static const bool PARAM_ENABLE_OPENEXR = utils::getConfigurationParameterBool("OPENCV_IO_ENABLE_OPENEXR",
|
||||
#ifdef OPENCV_IMGCODECS_USE_OPENEXR
|
||||
true
|
||||
#else
|
||||
false
|
||||
#endif
|
||||
);
|
||||
return PARAM_ENABLE_OPENEXR;
|
||||
}
|
||||
static void initOpenEXR()
|
||||
{
|
||||
if (!isOpenEXREnabled())
|
||||
{
|
||||
const char* message = "imgcodecs: OpenEXR codec is disabled. You can enable it via 'OPENCV_IO_ENABLE_OPENEXR' option. Refer for details and cautions here: https://github.com/opencv/opencv/issues/21326";
|
||||
CV_LOG_WARNING(NULL, message);
|
||||
CV_Error(Error::StsNotImplemented, message);
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////// ExrDecoder ///////////////////
|
||||
|
||||
ExrDecoder::ExrDecoder()
|
||||
@@ -575,6 +599,7 @@ void ExrDecoder::RGBToGray( float *in, float *out )
|
||||
|
||||
ImageDecoder ExrDecoder::newDecoder() const
|
||||
{
|
||||
initOpenEXR();
|
||||
return makePtr<ExrDecoder>();
|
||||
}
|
||||
|
||||
@@ -698,6 +723,7 @@ bool ExrEncoder::write( const Mat& img, const std::vector<int>& params )
|
||||
|
||||
ImageEncoder ExrEncoder::newEncoder() const
|
||||
{
|
||||
initOpenEXR();
|
||||
return makePtr<ExrEncoder>();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user