Page MenuHomeSolus

Update mpv to 0.33.0

Authored by aleksvor on Nov 22 2020, 6:06 PM.




  • Features:
    • Added:
      • scripting: load scripts from directories.
      • ytdl_hook.lua: delay load subtitles.
      • sub: add an option to filter subtitles by regex.
      • scripting: add a way to run subprocesses as "scripts".
      • command: implement asynchronous commands and support for named arguments.
      • player: add optional separate video decoding thread.
      • vo_x11: add 10 bit support.
      • vo_gpu: add BT.2390 tone-mapping.
      • client API: add software rendering API.
      • audio: add scaletempo2 filter based on Chromium.
      • auto_profiles: add auto_profiles script.
      • stream: implement slice:// for reading slices of streams.
      • player: add automatic loading of external cover art files.
    • Changed:
      • sws_utils: use zimg by default if available.
      • player: stricter filename matching for external subtitle auto-loading.
      • lua: support Unicode paths in script loading and IO library.
      • audio: rewrite internal audio handling and AO API.
      • build: disable GLX by default.
  • Options and commands:
    • Added:
      • demux: add option to disable cache "sharing" between back and forward buffers.
      • player: add ab-loop-count option/property.
      • ytdl_hook: add a way to use ytdl's default formats.
      • ytdl_hook: add all_formats option that loads all formats that were found.
      • demux_mkv: document probe-start-time option and enable it by default.
      • command: extend osd-overlay command with bounds reporting.
      • options: add option to control display-sync factor.
      • vo_gpu: add better gamut clipping option.
      • vo_gpu: vulkan: add ability to disable events.
      • x11: add option to make window appear on a specific workspace.
      • player: add --subs-with-matching-audio option.
      • command: add read-only focused property.
      • screenshot: option to use software rendering for screenshots.
      • command: add delete-watch-later-config.
      • command: new property mouse-pos with current position and hover state.

Full changelog here.

Test Plan
  1. Played back local video file.
  2. Played back VOD and livestream from YouTube to check yt-dlc-related functionality.
  3. Learned some Anki cards to check that sound still works.
  4. Rebuilt mpc-qt, vidcutter and gnome-mpv against new libmpv. mpv backend in subtitlecomposer is no longer buildable and will be removed.

Diff Detail

R2107 mpv
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

aleksvor created this revision.Nov 22 2020, 6:06 PM
aleksvor requested review of this revision.Nov 22 2020, 6:06 PM

To anyone reviewing this: please pay attention to removed in abi_used_libs - this happens because upstream disabled building of legacy GLX backend by default, but option for enabling it back still remains.
From my research: this change can be breaking for users with old Nvidia GPUs (the ones without support for Nvidia Video Codec) - apparently, zero-copy VDPAU decoding can only work with legacy GLX, but not with modern EGL backend. For users of Intel, AMD and modern Nvidia GPUs this change won't be noticeable since mpv's EGL backend works well with VAAPI on Intel and AMD GPUs and NVDEC on modern Nvidia GPUs (which they should use instead of legacy VDPAU).
However, users of legacy Nvidia cards can also use software decoding or VDPAU with copyback, so they will still be able to decode and watch any video. So, in my personal opinion we can proceed without GLX backend, but I can enable it if reviewer thinks that proper zero-copy HW decoding on legacy GPUs is still needed.

JoshStrobl requested changes to this revision.Nov 23 2020, 2:57 PM
JoshStrobl added a subscriber: JoshStrobl.

proper zero-copy HW decoding on legacy GPUs is still needed

Yes. Until we have some sort of open source, opt-in telemetry that would enable us to determine how many users are using older NVIDIA cards and what the fallout would be for disabling functionality catered to their cards, functionality which caters to those cards should be retained / enabled.

This revision now requires changes to proceed.Nov 23 2020, 2:57 PM
aleksvor updated this revision to Diff 24076.Nov 23 2020, 3:15 PM

Re-enable GLX backend.

JoshStrobl accepted this revision.Nov 23 2020, 4:32 PM

LGTM, thanks!

This revision is now accepted and ready to land.Nov 23 2020, 4:32 PM
This revision was automatically updated to reflect the committed changes.