diff --git a/src/client/videomanager.cpp b/src/client/videomanager.cpp index 696c4048ce994096bb4e04f18737098a601019be..bdeba60ee4856d87fb20ed3fa3e535b100d0598c 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(); }