From 54b05c6d9d34340b131a67dd48f14f4fdda2f0b0 Mon Sep 17 00:00:00 2001 From: BlackSpirits Date: Sun, 13 Sep 2026 19:51:48 +0200 Subject: [PATCH 1/2] FFmpeg: release detached seek frame on video-loop exit --- src/ui/Logic/VideoPlayers/Ffmpeg/FfmpegPlayer.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ui/Logic/VideoPlayers/Ffmpeg/FfmpegPlayer.cs b/src/ui/Logic/VideoPlayers/Ffmpeg/FfmpegPlayer.cs index fa70455f00..fc9b9a9b31 100644 --- a/src/ui/Logic/VideoPlayers/Ffmpeg/FfmpegPlayer.cs +++ b/src/ui/Logic/VideoPlayers/Ffmpeg/FfmpegPlayer.cs @@ -801,6 +801,7 @@ private void VideoLoop() var swsSourceFormat = AVPixelFormat.AV_PIX_FMT_NONE; var outputWidth = 0; var outputHeight = 0; + VideoFrame? lastDropped = null; // detached from the queue while seeking; must be returned on every exit try { @@ -817,8 +818,7 @@ private void VideoLoop() var serial = -1; var dropUntil = -1.0; - var presentedForSerial = false; - VideoFrame? lastDropped = null; // kept so a target past the last picture still shows something + var presentedForSerial = false while (!_closing) { @@ -988,6 +988,8 @@ private void VideoLoop() } finally { + _videoFrames.Return(lastDropped); + if (sws != null) { ffmpeg.sws_freeContext(sws); From e040cfafc433cbbed6c8f51e529080279f3778ae Mon Sep 17 00:00:00 2001 From: BlackSpirits Date: Sun, 13 Sep 2026 19:51:57 +0200 Subject: [PATCH 2/2] Fix video-loop local declaration --- src/ui/Logic/VideoPlayers/Ffmpeg/FfmpegPlayer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui/Logic/VideoPlayers/Ffmpeg/FfmpegPlayer.cs b/src/ui/Logic/VideoPlayers/Ffmpeg/FfmpegPlayer.cs index fc9b9a9b31..6481d267f9 100644 --- a/src/ui/Logic/VideoPlayers/Ffmpeg/FfmpegPlayer.cs +++ b/src/ui/Logic/VideoPlayers/Ffmpeg/FfmpegPlayer.cs @@ -818,7 +818,7 @@ private void VideoLoop() var serial = -1; var dropUntil = -1.0; - var presentedForSerial = false + var presentedForSerial = false; while (!_closing) {