1
mirror of https://github.com/mpv-player/mpv synced 2024-11-14 22:48:35 +01:00

stats: fix crash if both plot_vsync_* options are disabled

In this case, init_buffers() was not called, and the unrelated cache
sample buffers were not initialized. It appears they are indeed
completely unrelated, so move their initialization away. Not sure what
exactly the purpose of calling init_buffers() is, maybe clearing old
data when displaying stats again. The new place for initializing the
cache sample buffers should achieve the same anyway.

Fixes: #7597
This commit is contained in:
wm4 2020-04-09 15:03:17 +02:00
parent 7df9f81d22
commit 73e565dc0f

View File

@ -95,13 +95,12 @@ local ass_stop = mp.get_property_osd("osd-ass-cc/1")
-- Ring buffers for the values used to construct a graph.
-- .pos denotes the current position, .len the buffer length
-- .max is the max value in the corresponding buffer
local vsratio_buf, vsjitter_buf, cache_ahead_buf, cache_speed_buf
local vsratio_buf, vsjitter_buf
local function init_buffers()
vsratio_buf = {0, pos = 1, len = 50, max = 0}
vsjitter_buf = {0, pos = 1, len = 50, max = 0}
cache_ahead_buf = {0, pos = 1, len = 50, max = 0}
cache_speed_buf = {0, pos = 1, len = 50, max = 0}
end
local cache_ahead_buf, cache_speed_buf
local perf_buffers = {}
-- Save all properties known to this version of mpv
local property_list = {}
@ -854,6 +853,10 @@ local function process_key_binding(oneshot)
-- Will stop working if "vsync-jitter" property change notification
-- changes, but it's fine for an internal script.
mp.observe_property("vsync-jitter", "none", recorder)
end
if not oneshot then
cache_ahead_buf = {0, pos = 1, len = 50, max = 0}
cache_speed_buf = {0, pos = 1, len = 50, max = 0}
cache_recorder_timer:resume()
end
display_timer:kill()