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