diff --git a/app/streaming/video/ffmpeg-renderers/sdlvid.cpp b/app/streaming/video/ffmpeg-renderers/sdlvid.cpp index dc9588a2..2e7c7ed2 100644 --- a/app/streaming/video/ffmpeg-renderers/sdlvid.cpp +++ b/app/streaming/video/ffmpeg-renderers/sdlvid.cpp @@ -329,10 +329,10 @@ AVFrame* SdlRenderer::getSwFrameFromHwFrame(AVFrame* hwFrame) return nullptr; } - // av_hwframe_transfer_data() can nuke frame metadata, - // so anything other than width, height, and format must - // be set *after* calling av_hwframe_transfer_data(). - swFrame->colorspace = hwFrame->colorspace; + // av_hwframe_transfer_data() doesn't transfer metadata + // (and can even nuke existing metadata in dst), so we + // will propagate metadata manually afterwards. + av_frame_copy_props(swFrame, hwFrame); } return swFrame;