56 lines · 2.0 KB · Lua
RawDownload
-- This script cycles between deinterlacing, pullup (inverse-- telecine), and both filters off. It uses the "deinterlace" property-- so that a hardware deinterlacer will be used if available.---- It overrides the default deinterlace toggle keybinding "D"-- (shift+d), so that rather than merely cycling the "deinterlace" property-- between on and off, it adds a "pullup" step to the cycle.---- It provides OSD feedback as to the actual state of the two filters-- after each cycle step/keypress.---- Note: if hardware decoding is enabled, pullup filter will likely-- fail to insert.---- TODO: It might make sense to use hardware assisted vdpaupp=pullup,-- if available, but I don't have hardware to test it. Patch welcome. local script_name = mp.get_script_name()local pullup_label = string.format("%s-pullup", script_name) local function pullup_on()    for _, vf in pairs(mp.get_property_native('vf')) do        if vf['label'] == pullup_label then            return "yes"        end    end    return "no"end local function do_cycle()    if pullup_on() == "yes" then        -- if pullup is on remove it        mp.command(string.format("vf remove @%s:pullup", pullup_label))        return    elseif mp.get_property("deinterlace") == "yes" then        -- if deinterlace is on, turn it off and insert pullup filter        mp.set_property("deinterlace", "no")        mp.command(string.format("vf add @%s:pullup", pullup_label))        return    else        -- if neither is on, turn on deinterlace        mp.set_property("deinterlace", "yes")        return    endend local function cycle_deinterlace_pullup_handler()    do_cycle()    -- independently determine current state and give user feedback    mp.osd_message(string.format("deinterlace: %s\n"..                                     "pullup: %s",                                 mp.get_property("deinterlace"),                                 pullup_on()))end mp.add_key_binding("D", "cycle-deinterlace-pullup", cycle_deinterlace_pullup_handler)

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t