diff options
Diffstat (limited to 'macros/scenebleed.lua')
| -rw-r--r-- | macros/scenebleed.lua | 35 | 
1 files changed, 35 insertions, 0 deletions
diff --git a/macros/scenebleed.lua b/macros/scenebleed.lua new file mode 100644 index 0000000..c0d3908 --- /dev/null +++ b/macros/scenebleed.lua @@ -0,0 +1,35 @@ +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)
  |