diff --git a/src/media/video/accel.cpp b/src/media/video/accel.cpp
index 45a730d4c6909ed79e9e625decb2a2f2b676c892..69a1b1f14d825e64c9e34cca523609477c62b430 100644
--- a/src/media/video/accel.cpp
+++ b/src/media/video/accel.cpp
@@ -374,6 +374,8 @@ std::unique_ptr<VideoFrame>
 HardwareAccel::transferToMainMemory(const VideoFrame& frame, AVPixelFormat desiredFormat)
 {
     auto input = frame.pointer();
+    if (not input)
+        throw std::runtime_error("Cannot transfer null frame");
     auto out = std::make_unique<VideoFrame>();
 
     auto desc = av_pix_fmt_desc_get(static_cast<AVPixelFormat>(input->format));
diff --git a/src/media/video/video_mixer.cpp b/src/media/video/video_mixer.cpp
index 7d121365a9dd64a0ed7257cf9afaf1083866eed3..3964e1076dea32be33319ce50c5157ae7b593890 100644
--- a/src/media/video/video_mixer.cpp
+++ b/src/media/video/video_mixer.cpp
@@ -231,11 +231,11 @@ VideoMixer::update(Observable<std::shared_ptr<MediaFrame>>* ob,
             std::shared_ptr<VideoFrame> frame;
             try {
                 frame = HardwareAccel::transferToMainMemory(*std::static_pointer_cast<VideoFrame>(frame_p), AV_PIX_FMT_NV12);
+                x->atomic_copy(*std::static_pointer_cast<VideoFrame>(frame));
             } catch (const std::runtime_error& e) {
                 JAMI_ERR("Accel failure: %s", e.what());
                 return;
             }
-            x->atomic_copy(*std::static_pointer_cast<VideoFrame>(frame));
 #else
             x->atomic_copy(*std::static_pointer_cast<VideoFrame>(frame_p));
 #endif