Skip to content

Commit a0db1cb

Browse files
committed
Display in-progress thumbnails in progress display
1 parent 48b77dd commit a0db1cb

3 files changed

Lines changed: 29 additions & 6 deletions

File tree

src/patched_osc.lua

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,12 +158,26 @@ function display_thumbnail(pos, value, ass)
158158

159159
-- Draw the generation progress
160160
local block_w = (thumb_size.w / thumbs_total) * msy
161+
162+
-- Draw finished thumbnail blocks (white)
161163
ass:new_event()
162164
ass:pos(bg_left, framegraph_top)
163165
ass:append(("{\\bord0\\1c&HFFFFFF&\\1a&H%X&"):format(0))
164166
ass:draw_start(2)
165-
for i in pairs(Thumbnailer.state.thumbnails) do
166-
if i ~= closest_index then
167+
for i, v in pairs(Thumbnailer.state.thumbnails) do
168+
if i ~= closest_index and v then
169+
ass:rect_cw(i*block_w, 0, (i+1)*block_w, framegraph_h)
170+
end
171+
end
172+
ass:draw_stop()
173+
174+
-- Draw in-progress thumbnail blocks (grayish green)
175+
ass:new_event()
176+
ass:pos(bg_left, framegraph_top)
177+
ass:append(("{\\bord0\\1c&H44AA44&\\1a&H%X&"):format(0))
178+
ass:draw_start(2)
179+
for i, v in pairs(Thumbnailer.state.thumbnails) do
180+
if i ~= closest_index and v == false then
167181
ass:rect_cw(i*block_w, 0, (i+1)*block_w, framegraph_h)
168182
end
169183
end

src/thumbnailer_server.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,8 @@ function generate_thumbnails(from_keypress)
133133
mp.commandv("script-message", "mpv_thumbnail_script-enabled")
134134

135135
local generate_thumbnail_for_index = function(thumbnail_index)
136-
local thumbnail_path = file_template:format(thumbnail_index)
137-
local timestamp = math.min(file_duration, thumbnail_index * thumbnail_delta)
136+
137+
mp.commandv("script-message", "mpv_thumbnail_script-progress", tostring(thumbnail_index))
138138

139139
-- The expected size (raw BGRA image)
140140
local thumbnail_raw_size = (thumbnail_size.w * thumbnail_size.h * 4)

src/thumbnailer_shared.lua

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ function Thumbnailer:on_thumb_ready(index)
4141
end
4242
end
4343

44+
function Thumbnailer:on_thumb_progress(index)
45+
self.state.thumbnails[index] = self.state.thumbnails[index] or false
46+
end
47+
4448
function Thumbnailer:on_video_change(params)
4549
self:clear_state()
4650
if params ~= nil then
@@ -172,7 +176,7 @@ function Thumbnailer:get_closest(thumbnail_index)
172176

173177
for index, value in pairs(self.state.thumbnails) do
174178
local distance = math.abs(index - thumbnail_index)
175-
if distance < min_distance then
179+
if distance < min_distance and value then
176180
min_distance = distance
177181
closest = index
178182
end
@@ -193,9 +197,14 @@ function Thumbnailer:get_thumbnail_path(time_position)
193197
end
194198

195199
function Thumbnailer:register_client()
196-
mp.register_script_message("mpv_thumbnail_script-ready", function(index, path) self:on_thumb_ready(tonumber(index), path) end)
197200
-- Wait for server to tell us we're live
198201
mp.register_script_message("mpv_thumbnail_script-enabled", function() self.state.enabled = true end)
202+
mp.register_script_message("mpv_thumbnail_script-ready", function(index, path)
203+
self:on_thumb_ready(tonumber(index), path)
204+
end)
205+
mp.register_script_message("mpv_thumbnail_script-progress", function(index, path)
206+
self:on_thumb_progress(tonumber(index), path)
207+
end)
199208

200209
-- Notify server to generate thumbnails when video loads/changes
201210
mp.observe_property("video-dec-params", "native", function()

0 commit comments

Comments
 (0)