aegisub-scripts/macros/scenebleed.lua

36 lines
1.3 KiB
Lua

script_name="Scenebleed Detector"
script_description="marks possible scenebleeds with an effect"
script_author="garret"
script_version="2021-07-14"
function main(sub, sel)
local thresh = aegisub.frame_from_ms(500)
local bleedstring = "bleed"
-- tried to make config file work, failed, so shit's hardcoded
local keyframes = aegisub.keyframes()
local bleed_count = 0
for j,i in ipairs(sel) do
line = sub[i]
local start_frame = aegisub.frame_from_ms(line.start_time)
local end_frame = aegisub.frame_from_ms(line.end_time)
for index, frame in ipairs(keyframes) do
if end_frame > frame and end_frame < frame + thresh or start_frame < frame and start_frame >= frame - thresh then
-- off the kf, but not by more than the threshold
if line.effect == "" then
line.effect = bleedstring
else
line.effect = line.effect.."; "..bleedstring
end
bleed_count = bleed_count + 1
sub[i] = line
end
end
end
aegisub.log(bleed_count.." scenebleeds found.")
aegisub.set_undo_point(script_name)
return sel
end
aegisub.register_macro(script_name, script_description, main)