diff --git a/src/Lib/AbstractMediaContext.hh b/src/Lib/AbstractMediaContext.hh
index 35ada2ed4bf2193d0083d4ffe166f4f4b76ee720..1e113c455eae064d9c2304f01e03341800a04563 100644
--- a/src/Lib/AbstractMediaContext.hh
+++ b/src/Lib/AbstractMediaContext.hh
@@ -17,20 +17,28 @@ extern "C" {
 
 namespace Vivy
 {
-static inline Utils::DeleterFunctionType<double> dataDeleter =
-    std::bind_front(Utils::freePtrIfNotNull<double>, av_free);
-
-static inline Utils::DeleterFunctionType<AVCodecContext> codecContexteleter =
-    std::bind_front(Utils::freePPtrIfNotNull<AVCodecContext>, avcodec_free_context);
-
-static inline Utils::DeleterFunctionType<AVFrame> avFrameDeleter =
-    std::bind_front(Utils::freePPtrIfNotNull<AVFrame>, av_frame_free);
+static inline constexpr auto codecContexteleter = [](AVCodecContext *ptr) noexcept -> void {
+    if (ptr)
+        avcodec_free_context(&ptr);
+};
+static constexpr inline auto dataDeleter = [](double *ptr) noexcept -> void {
+    if (ptr)
+        av_free(ptr);
+};
+static constexpr inline auto avFrameDeleter = [](AVFrame *ptr) noexcept -> void {
+    if (ptr)
+        av_frame_free(&ptr);
+};
 
-static inline Utils::DeleterFunctionType<SwrContext> swrContenxtDeleter =
-    std::bind_front(Utils::freePPtrIfNotNull<SwrContext>, swr_free);
+static constexpr inline auto swrContenxtDeleter = [](SwrContext *swr) noexcept -> void {
+    if (swr)
+        swr_free(&swr);
+};
 
-static inline Utils::DeleterFunctionType<AVFormatContext> avFormatContextDeleter =
-    std::bind_front(Utils::freePtrIfNotNull<AVFormatContext>, avformat_free_context);
+static inline constexpr auto avFormatContextDeleter = [](AVFormatContext *ptr) noexcept -> void {
+    if (ptr)
+        avformat_free_context(ptr);
+};
 
 using AVFormatContextPtr = std::unique_ptr<AVFormatContext, decltype(avFormatContextDeleter)>;
 using AVCodecContextPtr  = std::unique_ptr<AVCodecContext, decltype(codecContexteleter)>;
diff --git a/src/Lib/Audio.hh b/src/Lib/Audio.hh
index a87e3dc2547e0bb3d38e0650ee09a7ac4f7e3e0e..36cc5519ea42b5b3c73c3f655e2ed082bed4d7da 100644
--- a/src/Lib/Audio.hh
+++ b/src/Lib/Audio.hh
@@ -68,9 +68,6 @@ public:
 
 private:
     // Regarding the format
-    static inline Utils::DeleterFunctionType<AVFormatContext> avFormatContextDeleter =
-        std::bind_front(Utils::freePtrIfNotNull<AVFormatContext>, avformat_free_context);
-
     using AVFormatContextPtr = std::unique_ptr<AVFormatContext, decltype(avFormatContextDeleter)>;
     AVFormatContextPtr format{ avformat_alloc_context(), avFormatContextDeleter };
 };
diff --git a/src/Lib/Utils.hh b/src/Lib/Utils.hh
index 97b0771f890f53a0a1489b0e3df6466436a78817..f121cdc40ae3b7bbd48cc7ec58e90e095558e43c 100644
--- a/src/Lib/Utils.hh
+++ b/src/Lib/Utils.hh
@@ -162,22 +162,6 @@ QString getBaseName(const QString &) noexcept;
 
 void writeAssertLocation(const char *msg);
 
-template <typename T> using DeleterFunctionType = const std::function<void(T *)>;
-
-template <typename Type> static inline void
-freePtrIfNotNull(DeleterFunctionType<Type> callback, Type *ptr) noexcept
-{
-    if (ptr != nullptr)
-        callback(ptr);
-}
-
-template <typename Type> static inline void
-freePPtrIfNotNull(DeleterFunctionType<Type *> callback, Type *ptr) noexcept
-{
-    if (ptr != nullptr)
-        callback(&ptr);
-}
-
 struct OsSpecificAspects final {
 private:
     OsSpecificAspects() {}
diff --git a/src/Lib/Video.hh b/src/Lib/Video.hh
index 2d3c60549582f4db661fc8b54f0545288961ef87..400feb30480d89cae9741a98c5cd9b2d7edabe2d 100644
--- a/src/Lib/Video.hh
+++ b/src/Lib/Video.hh
@@ -23,11 +23,6 @@ public:
     double getFramesPerSecond() const noexcept;
 
     QJsonObject getProperties() const noexcept override;
-
-    static inline Utils::DeleterFunctionType<AVCodecContext> codecContexteleter =
-        std::bind_front(Utils::freePPtrIfNotNull<AVCodecContext>, avcodec_free_context);
-
-private:
 };
 
 // Like an audio context, but for videos.