Guest User

Untitled

a guest
Jul 17th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. -- Allow changing a property with by zoom-adjusted amount
  2. function zoom_invariant_add(prop, amt)
  3. amt = amt / 2 ^ mp.get_property_number("video-zoom")
  4. mp.set_property_number(prop, mp.get_property_number(prop) + amt)
  5. end
  6.  
  7. -- Resets the pan if the entire image would be visible
  8. function zoom_check_center()
  9. local zoom = mp.get_property_number("video-zoom")
  10. local rot = mp.get_property_number("video-rotate") * math.pi / 180
  11. local scaled = not mp.get_property_bool("video-unscaled")
  12. local dw = mp.get_property_number("dwidth") * 2 ^ zoom
  13. local dh = mp.get_property_number("dheight") * 2 ^ zoom
  14.  
  15. -- Adjust for rotation
  16. local asr = math.abs(math.sin(rot)); acr = math.abs(math.cos(rot))
  17. dw, dh = dw*acr + dh*asr, dh*acr + dw*asr
  18.  
  19. -- No property seems to exist for the actual window size, try this instead
  20. local ow = mp.get_property_number("osd-width")
  21. local oh = mp.get_property_number("osd-height")
  22.  
  23. if (dw <= ow and dh <= oh) or (scaled and zoom <= 0.0) then
  24. mp.set_property_number("video-pan-x", 0)
  25. mp.set_property_number("video-pan-y", 0)
  26. end
  27. end
  28.  
  29. -- Rotates the video while maintaining 0 <= prop < 360
  30. function rotate_video(amt)
  31. local rot = mp.get_property_number("video-rotate")
  32. rot = (rot + amt) % 360
  33. mp.set_property_number("video-rotate", rot)
  34. end
  35.  
  36. mp.add_key_binding(nil, "zoom-invariant-add", zoom_invariant_add)
  37. mp.add_key_binding(nil, "zoom-check-center", zoom_check_center)
  38. mp.add_key_binding(nil, "rotate-video", rotate_video)
Add Comment
Please, Sign In to add comment