summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDudemanguy <random342@airmail.cc>2024-01-26 22:56:50 -0600
committerDudemanguy <random342@airmail.cc>2024-01-26 22:56:50 -0600
commit99d387bbc81e36f60da26d63b96736e2461bcd2e (patch)
tree68a1212d78f702e6622edc5762a134a43a0b9ed5
parente9076896cda821b74eab08d2128790c0d03ea906 (diff)
downloadmpv-99d387bbc81e36f60da26d63b96736e2461bcd2e.tar.bz2
mpv-99d387bbc81e36f60da26d63b96736e2461bcd2e.tar.xz
vo: ensure a dropped frame is always freed
7b8a30fc8132203bc93d35ac887682d2044ad5a9 made it possible for a VO to have direct ownership of frame objects since the it may be beneficial for the frame to follow the lifecycle of that particular VO instead (i.e. the wayland compositor for dmabuf-wayland). But when frames are dropped, this always has to be unconditionally freed since the VO isn't aware of it. Fixes #13364.
-rw-r--r--video/out/vo.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/video/out/vo.c b/video/out/vo.c
index 7581d9680e..1a385f8285 100644
--- a/video/out/vo.c
+++ b/video/out/vo.c
@@ -1003,7 +1003,7 @@ static bool render_frame(struct vo *vo)
wakeup_core(vo);
done:
- if (!vo->driver->frame_owner)
+ if (!vo->driver->frame_owner || in->dropped_frame)
talloc_free(frame);
mp_mutex_unlock(&in->lock);