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