diff --git a/app/codec/oiio/oiiodecoder.cpp b/app/codec/oiio/oiiodecoder.cpp index d3d455b1f..c01e20e4a 100644 --- a/app/codec/oiio/oiiodecoder.cpp +++ b/app/codec/oiio/oiiodecoder.cpp @@ -139,6 +139,9 @@ void OIIODecoder::Close() { if (image_ != nullptr) { image_->close(); +#if OIIO_VERSION < 10903 + OIIO::ImageInput::destroy(image_); +#endif image_ = nullptr; } diff --git a/app/codec/oiio/oiiodecoder.h b/app/codec/oiio/oiiodecoder.h index ae99bf78e..3d392071f 100644 --- a/app/codec/oiio/oiiodecoder.h +++ b/app/codec/oiio/oiiodecoder.h @@ -46,7 +46,11 @@ public: virtual bool SupportsVideo() override; private: +#if OIIO_VERSION < 10903 + OIIO::ImageInput* image_; +#else std::unique_ptr image_; +#endif int width_; diff --git a/app/render/backend/videorenderbackend.cpp b/app/render/backend/videorenderbackend.cpp index 3bb9349ea..117023634 100644 --- a/app/render/backend/videorenderbackend.cpp +++ b/app/render/backend/videorenderbackend.cpp @@ -211,6 +211,10 @@ const char *VideoRenderBackend::GetCachedFrame(const rational &time) in->close(); +#if OIIO_VERSION < 10903 + OIIO::ImageInput::destroy(in); +#endif + return cache_frame_load_buffer_.constData(); } else { qWarning() << "OIIO Error:" << OIIO::geterror().c_str(); diff --git a/app/render/backend/videorenderworker.cpp b/app/render/backend/videorenderworker.cpp index b50279ee4..dd8f6b1ee 100644 --- a/app/render/backend/videorenderworker.cpp +++ b/app/render/backend/videorenderworker.cpp @@ -226,12 +226,16 @@ void VideoRenderWorker::Download(QVariant texture, QString filename) std::string working_fn_std = filename.toStdString(); - std::unique_ptr out = OIIO::ImageOutput::create(working_fn_std); + auto out = OIIO::ImageOutput::create(working_fn_std); if (out) { out->open(working_fn_std, spec); out->write_image(format_info.oiio_desc, download_buffer_.data()); out->close(); + +#if OIIO_VERSION < 10903 + OIIO::ImageOutput::destroy(out); +#endif } else { qWarning() << "Failed to open output file:" << filename; }