From 821ec73a3d9dc617de4236e2013735cea8e95eb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Fri, 26 Feb 2021 11:59:49 -0500 Subject: [PATCH] accel: don't try to transfer null frame Change-Id: Ia9cf5638678c0e92127ec9bf3631235a2827d49d --- src/media/video/accel.cpp | 2 ++ src/media/video/video_mixer.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/media/video/accel.cpp b/src/media/video/accel.cpp index 45a730d4c6..69a1b1f14d 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 7d121365a9..3964e1076d 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 -- GitLab