diff --git a/src/client/videomanager.cpp b/src/client/videomanager.cpp index 672283b8c1ec8992a5a80b17003f2694df1001c1..7f7f5a21457abe342baa4289e71eeb5049ff6145 100644 --- a/src/client/videomanager.cpp +++ b/src/client/videomanager.cpp @@ -67,8 +67,11 @@ void MediaFrame::copyFrom(const MediaFrame& o) { reset(); - if (o.frame_) + if (o.frame_) { av_frame_ref(frame_.get(), o.frame_.get()); + av_frame_copy_props(frame_.get(), o.frame_.get()); + } + if (o.packet_) { packet_.reset(av_packet_alloc()); av_packet_ref(packet_.get(), o.packet_.get()); diff --git a/src/media/video/video_scaler.cpp b/src/media/video/video_scaler.cpp index 66fa2c42d7dde1a14137782c8997190f78faaf9a..19ee85a579341391631c9275f8dd12d2a314a514 100644 --- a/src/media/video/video_scaler.cpp +++ b/src/media/video/video_scaler.cpp @@ -150,6 +150,7 @@ VideoScaler::convertFormat(const VideoFrame& input, AVPixelFormat pix) auto output = std::make_unique<VideoFrame>(); output->reserve(pix, input.width(), input.height()); scale(input, *output); + av_frame_copy_props(output->pointer(), input.pointer()); return output; }