From ef4e6fa89a4eca87c17e5cb8ee55d8c0adef3247 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Mon, 4 Nov 2019 16:28:20 -0500 Subject: [PATCH] videomanager: handle null frame Handles case (and avoids crash) when copying a hw-encoded frame from Android. Change-Id: I266afe86018b0d2f6c944314397115cf01c6af04 --- src/client/videomanager.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/client/videomanager.cpp b/src/client/videomanager.cpp index 696c4048ce..bdeba60ee4 100644 --- a/src/client/videomanager.cpp +++ b/src/client/videomanager.cpp @@ -66,13 +66,19 @@ void MediaFrame::copyFrom(const MediaFrame& o) { reset(); - av_frame_ref(frame_.get(), o.frame_.get()); + if (o.frame_) + av_frame_ref(frame_.get(), o.frame_.get()); + if (o.packet_) { + packet_.reset(av_packet_alloc()); + av_packet_ref(packet_.get(), o.packet_.get()); + } } void MediaFrame::reset() noexcept { - av_frame_unref(frame_.get()); + if (frame_) + av_frame_unref(frame_.get()); packet_.reset(); } -- GitLab