🎥 mpv is a free (as in freedom) media player for the command line.

Overview

mpv logo

mpv

External links

Overview

mpv is a free (as in freedom) media player for the command line. It supports a wide variety of media file formats, audio and video codecs, and subtitle types.

There is a FAQ.

Releases can be found on the release list.

System requirements

  • A not too ancient Linux, Windows 7 or later, or OSX 10.8 or later.
  • A somewhat capable CPU. Hardware decoding might help if the CPU is too slow to decode video in realtime, but must be explicitly enabled with the --hwdec option.
  • A not too crappy GPU. mpv's focus is not on power-efficient playback on embedded or integrated GPUs (for example, hardware decoding is not even enabled by default). Low power GPUs may cause issues like tearing, stutter, etc. The main video output uses shaders for video rendering and scaling, rather than GPU fixed function hardware. On Windows, you might want to make sure the graphics drivers are current. In some cases, ancient fallback video output methods can help (such as --vo=xv on Linux), but this use is not recommended or supported.

Downloads

For semi-official builds and third-party packages please see mpv.io/installation.

Changelog

There is no complete changelog; however, changes to the player core interface are listed in the interface changelog.

Changes to the C API are documented in the client API changelog.

The release list has a summary of most of the important changes on every release.

Changes to the default key bindings are indicated in restore-old-bindings.conf.

Compilation

Compiling with full features requires development files for several external libraries. Below is a list of some important requirements.

The mpv build system uses waf, but we don't store it in the repository. The ./bootstrap.py script will download the latest version of waf that was tested with the build system.

For a list of the available build options use ./waf configure --help. If you think you have support for some feature installed but configure fails to detect it, the file build/config.log may contain information about the reasons for the failure.

NOTE: To avoid cluttering the output with unreadable spam, --help only shows one of the two switches for each option. If the option is autodetected by default, the --disable-*** switch is printed; if the option is disabled by default, the --enable-*** switch is printed. Either way, you can use --enable-*** or --disable-** regardless of what is printed by --help.

To build the software you can use ./waf build: the result of the compilation will be located in build/mpv. You can use ./waf install to install mpv to the prefix after it is compiled.

Example:

./bootstrap.py
./waf configure
./waf
./waf install

Essential dependencies (incomplete list):

  • gcc or clang
  • X development headers (xlib, xrandr, xext, xscrnsaver, xinerama, libvdpau, libGL, GLX, EGL, xv, ...)
  • Audio output development headers (libasound/ALSA, pulseaudio)
  • FFmpeg libraries (libavutil libavcodec libavformat libswscale libavfilter and either libswresample or libavresample)
  • zlib
  • iconv (normally provided by the system libc)
  • libass (OSD, OSC, text subtitles)
  • Lua (optional, required for the OSC pseudo-GUI and youtube-dl integration)
  • libjpeg (optional, used for screenshots only)
  • uchardet (optional, for subtitle charset detection)
  • nvdec and vaapi libraries for hardware decoding on Linux (optional)

Libass dependencies (when building libass):

  • gcc or clang, yasm on x86 and x86_64
  • fribidi, freetype, fontconfig development headers (for libass)
  • harfbuzz (required for correct rendering of combining characters, particularly for correct rendering of non-English text on OSX, and Arabic/Indic scripts on any platform)

FFmpeg dependencies (when building FFmpeg):

  • gcc or clang, yasm on x86 and x86_64
  • OpenSSL or GnuTLS (have to be explicitly enabled when compiling FFmpeg)
  • libx264/libmp3lame/libfdk-aac if you want to use encoding (have to be explicitly enabled when compiling FFmpeg)
  • For native DASH playback, FFmpeg needs to be built with --enable-libxml2 (although there are security implications, and DASH support has lots of bugs).
  • AV1 decoding support requires dav1d.
  • For good nvidia support on Linux, make sure nv-codec-headers is installed and can be found by configure.

Most of the above libraries are available in suitable versions on normal Linux distributions. For ease of compiling the latest git master of everything, you may wish to use the separately available build wrapper (mpv-build) which first compiles FFmpeg libraries and libass, and then compiles the player statically linked against those.

If you want to build a Windows binary, you either have to use MSYS2 and MinGW, or cross-compile from Linux with MinGW. See Windows compilation.

Release cycle

Every other month, an arbitrary git snapshot is made, and is assigned a 0.X.0 version number. No further maintenance is done.

The goal of releases is to make Linux distributions happy. Linux distributions are also expected to apply their own patches in case of bugs and security issues.

Releases other than the latest release are unsupported and unmaintained.

See the release policy document for more information.

Bug reports

Please use the issue tracker provided by GitHub to send us bug reports or feature requests. Follow the template's instructions or the issue will likely be ignored or closed as invalid.

Using the bug tracker as place for simple questions is fine but IRC is recommended (see Contact below).

Contributing

Please read contribute.md.

For small changes you can just send us pull requests through GitHub. For bigger changes come and talk to us on IRC before you start working on them. It will make code review easier for both parties later on.

You can check the wiki or the issue tracker for ideas on what you could contribute with.

License

GPLv2 "or later" by default, LGPLv2.1 "or later" with --enable-lgpl. See details.

History

This software is based on the MPlayer project. Before mpv existed as a project, the code base was briefly developed under the mplayer2 project. For details, see the FAQ.

Contact

Most activity happens on the IRC channel and the github issue tracker.

  • GitHub issue tracker: issue tracker (report bugs here)
  • User IRC Channel: #mpv on irc.freenode.net
  • Developer IRC Channel: #mpv-devel on irc.freenode.net
Comments
  • LGPL relicensing

    LGPL relicensing

    FAQ

    • What, why?

      The mpv project (a MPlayer and mplayer2 fork) is relicensing its code base from GPLv2 or later to LGPLv 2.1 or later. For that, we're asking MPlayer, mplayer2, and mpv contributors to give us permission. This includes occasional or one-time contributors. For reasons why we are doing this and for details on the relicensing process see the sections below.

    • How do I give my permission?

      Posting something informal like

      I agree that my past contributions to mpv, mplayer2, or MPlayer are relicensed to 
      the GNU Lesser General Public License (LGPL) version 2.1 or later
      

      in this github issue or per email to wm4 ([email protected]) should be sufficient. (I've also sent a lot of mails via a private mail account, because the gmail one looks like it could be dismissed as spam too easily.)

      If you post on a github issue, and your github account doesn't show your real name or an email address you used for MPlayer development, please make sure to identify yourself so that we can link you to specific MPlayer contributions!

      If you don't want to give permission to relicense some specific parts, but don't mind that the core is relicensed in general, it's possible that we negotiate a list of files or a list of commits we're allowed to relicense. This could explicitly exclude parts you want to keep GPL. You could also choose to state that relicensing any code still remaining in mpv is fine (this would exclude anything that is still in MPlayer, but not mpv).

    • I never contributed much and I don't even know if my code is still there. Why did I get email about this / why was I pinged on github? Do I even have to give my permission?

      Some people say that their contribution was too minor and uncopyrightable, or that their code was replaced or refactored. This could be true. But we are not lawyers. It's not always sure what constitutes a minor/uncopyrightable change, or when new code is considered to be derived from some piece of replaced/refactored code. So getting as many agreements as possible is very helpful for us, even if the original authors of a patch think it doesn't matter, or it was a minor patch many years ago. Please respond to relicensing requests, even if you think it's not necessary!

      It's also possible that you were asked, even though you did not contribute to MPlayer directly. For example you could have contributed to a different project, and MPlayer incorporated some of its code. That code would still be copyrighted by you (at least partially), so we need to ask for relicensing permission.

    • Were the email for relicensing requests sent automatically?

      No. Every single of them was sent manually. They were sent only to people for which there was at least a chance that their agreement would be required.

    • Did the MPlayer project agree with this?

      Most of the MPlayer developers agreed (including original and current developers). Most contributors who have been asked so far agreed as well. See the status of MPlayer contributors.

    • Do you assume non-replies mean agreement (OpenSSL style relicensing)?

      No. Copyright law doesn't work this way. If someone doesn't reply, and he has copyright on parts we want to relicense, we will have to remove their code to succeed.

    • What happens if I don't agree?

      Then the entire relicensing of mpv will fail. If there are only some cases, we'll probably try to remove the code of contributors who have not agreed (if possible). My plan B would be writing a new player from scratch.

      Note that it might be fine to agree to relicensing of only some parts. We're mostly interested in relicensing the core, so a LGPL libmpv is possible. Also see the next FAQ entry below.

    • Will all of mpv be relicensed?

      Most likely only the core and components required for libmpv. For example, it's unlikely that the X11 windowing code, the V4L TV code, or the DVD code get relicensed. These parts will remain GPL, and will not be compiled in LGPL configurations. On the other hand, many patches touching X11 also added code to other parts of the player, such as adding new options (which would later be supported by other windowing code) - we'd still want to relicense those changes.

      Due to the aforementioned messy licensing state of the VO windowing backends, it looks like mpv CLI LGPL will be unusable on some systems (e.g. X11), while LGPL libmpv will hopefully be useful.

      In addition, the following parts were removed from mpv, and we won't ask for relicensing those parts: mencoder, the GUI, Linux 2.4 kernel drivers (!), dozens of decoder library wrappers, the win32 codec loader, ancient video outputs, filters, the build system, documentation in general, and imported libraries such as a bunch of mpeg decoders. Some libraries were moved to separate projects and have already been relicensed a long time ago, like libswscale and libass. mpv is highly reliant on FFmpeg for decoders and demuxers, which probably accounts for most of the core code removed.

    • Will the license of MPlayer change?

      Definitely not. To make it easier for us, we're skipping a lot of MPlayer code in the relicensing that is not used by mpv anymore (and that was not used to derive new mpv code from it). This is possible because mpv dropped large parts of MPlayer code (see previous question). All this means that even if you'd apply the relicensing agreements to MPlayer, you wouldn't get anything working out of it.

    • Do I lose the rights to my code?

      No, you retain copyright and own your code. The effect is merely that others (the mpv project) can use your code under LGPL instead of only the GPL.

    • I made contributions to MPlayer, but I wasn't contacted?

      Please reply to this github issue or send email to give your agreement/disagreement.

    See also VLC's LGPL relicensing FAQ.

    Reasons

    The reason is mostly that the player got turned into a library (libmpv), and the associated problems of a GPL lib for a library user. Here's a detailed list of reasons why this is desirable, alternatives, and some discussion:

    • The main reason is easily the fact that mpv prefers embedding video by accessing the host application's OpenGL context. This means the host application has to link to libmpv directly and run in the same process as mpv, just for the GL context. This is called the opengl-cb API in libmpv. While technically possible in many cases, sharing some sort of video context (like an OpenGL context) over process boundaries is fragile and complex, so linking to libmpv is required.

      MPlayer on the other hand embeds an OS window over process boundaries (with the -wid option). This is becoming technically unfeasible, and the libmpv opengl-cb API sidesteps many issues with it.

      While mpv can still be embedded using the "old" method (and by using e.g. the JSON API), we prefer the opengl-cb, and don't want license issues to hamper this. Nor do we want the rendering method to have an influence on the application's license.

    • MPlayer always provided the slave mode, which allows closed source application to use MPlayer's playback capabilities. And there are even examples of this happening (MPlayerX). So MPlayer being GPL did not prevent it to be used from non-GPL applications. It follows that the MPlayer projects and its developers at least tolerate slave mode being used from non-GPL applications. I see no reason why this difference should be made just with the technical difference of in-process vs. out-of-process and C API vs. text protocol. Thus allowing libmpv to be used from non-GPL application is just natural. Relicensing to LGPL would achieve this.

    • GPL-incompatible dependencies such as OpenSSL are a big issue for library users, even if the library user is ok with the GPL. OpenSSL specifically is not compatible with the GPL, unless all involved GPL projects include an OpenSSL exception (but this is equivalent to a license change, so why not just use the less problematic LGPL). Note that not-GPL does not mean closed-source. There are many potential users who want to stick to other open source licenses that are not GPL.

    • Even many GNU libraries don't force GPL on the user (consider glibc, Guile, gettext, GNU lightning, GNU pth).

    • LGPL is almost like GPL, except it gives more freedom to the library user. This should be a rather inoffensive change (compared to e.g. changing it to BSD). Since (lib)mpv is a complete player, rather than something like a multimedia library, the "freedom" of libmpv isn't in danger either. For example, if you wanted to add a filter or a decoder to your playback chain, you would have to do that in libmpv itself (licensing the addition as LGPL), rather than making it a closed-source part of your evil proprietary application.

    • Even if libmpv were to stay GPL, it would not necessarily lead to more applications going open source. It's far more likely such an application would choose something like libvlc or gstreamer as backend instead. This could even happen with potential libmpv users which are open source, but not GPL, as its authors might want to escape from the complications of the GPL license. Likewise, existing non-GPL applications, which just want to integrate video playback as another feature, would obviously not be able to pick a GPL libmpv (libmpv isn't that attractive as they would relicense to GPL just to use it). My conclusion is that libmpv going LGPL would give back more to the open source community than a GPL libmpv.

    • VLC did it too, and nothing bad happened.

    • Parts of MPlayer code have been relicensed/"extracted" under more liberal licenses before: libswscale (LGPL), libass (ISC)

    • An exception for non-GPL libmpv usage might work. This would be a GPL linking exception. It'd require as much effort as a switch to LGPL, so we might as well change to LGPL.

    • Some libmpv user opinions: https://github.com/mpv-player/mpv/issues/2033#issuecomment-249429195 and https://github.com/mpv-player/mpv/issues/2033#issuecomment-249426616

    Relicensing process

    We will ask mpv, MPlayer, and mplayer2 developers for their agreement. We will probably skip contributors who contributed documentation or website changes only (MPlayer has extensive documentation in multiple languages, all in the main code repository). We will also skip developers who have contributed only to now-removed code (such as vo_svga.c or libswscale).

    We will also ask people who have contributed single patches a long time ago, as long as their code was used as base for further developments. It's important and appreciated that these people give their agreement as well.

    So far I think it's ok to relicense a source file if:

    • all current contents of the file are written by authors who agreed with the LGPL switch

    • removed contents do not count, as long as new code was not "derived" from it (such as simple refactoring)

    • care has to be taken that lines, which merely went through cosmetic changes or refactoring, are considered as "current content" (i.e. mere git blame output is not necessarily meaningful)

    • Authors which only did minor cosmetic changes of some sort do not have a copyright on the file (consider code reindenting). Extreme care has to be taken here - copyright always sticks, even with simple changes. It's not clear when a change is uncopyrightable. Most seem to agree that entirely cosmetic changes, e.g. pure whitespace changes, are not copyrightable. Some set the bar for copyrightable much higher.

    Further, some projects which have gone through relicensing claim there is a threshold above which relicensing can be done without the rest of the developers agreeing:

    • VLC thinks 99.99% of the code must be covered and 99% of all developers (https://mailman.videolan.org/pipermail/vlc-commits/2011-November/010353.html)
    • Dolphin and Mozilla think only 95% of all contributors must have agreed (https://dolphin-emu.org/blog/2015/05/25/relicensing-dolphin/ http://blogs.fsfe.org/ciaran/?p=58)

    Relicensing plan

    The actual relicensing will be done as follows:

    • Phase 1: broadly probe for consent (done)
      • ask everyone who submitted a patch to mpv
      • contact everyone who wrote a major piece of code and ask for permission
    • Phase 2: ask every contributor (mostly done, waiting for potential late replies)
      • go through the commit list, and look at every single of those ~44k commits
      • if the commit message says the patch was by someone else (or we know it was by someone else or copied from somewhere else), contact that external controbutor as well
      • if the code is most likely still present in mpv (directly or refactored), and not in code we don't want to relicense, make sure that person was contacted
    • Phase 3: actual relicensing (mostly done)
      • try to relicense each source file
      • go through every change to that file, and make sure that for each change (unless it was completely removed) the author was contacted and agreed
      • if that is not the case, do one of those things, depending on what's possible:
        • guard the code as GPL-only (so it won't be compiled for LGPL binaries)
        • remove/replace the code
        • declare the change as trivial
        • fail the relicensing and go with plan B, and write a new player
      • in some cases, code might have been copied from other source files or projects, which complicates this step
    • Phase 4: verification and finishing up (done, relicensing of some optional parts is still pending)
      • add a preliminary --enable-preliminary-lgpl3 configure option (done)
      • post to mplayer-dev-eng mailing list for anyone who wants to verify (done)
      • let it sit for a few weeks or so (done)
      • make the LGPL change final by renaming the configure option to --enable-lgpl and updating the main copyright notice (done)

    More information

    Other arguments pro-LGPL: https://github.com/mpv-player/mpv/issues/2033#issuecomment-249429195 https://github.com/mpv-player/mpv/issues/2033#issuecomment-249426616

    MPlayer developers status: https://github.com/mpv-player/mpv/issues/2033#issuecomment-249416217

    MPlayer thread: http://lists-archives.com/mplayer-dev-eng/39326-relicensing-mplayer-or-parts-of-it-to-lgpl.html

    VLC LGPL switch reasons & FAQ (yes, they mostly apply to us too): https://www.videolan.org/press/lgpl.html

    VLC reasons against GPLv3 (also mostly applies to us): http://www.videolan.org/press/2007-1.html

    meta:rfc 
    opened by ghost 411
  • Color Management (OS X): Image is too dark

    Color Management (OS X): Image is too dark

    I have compared the icc-profile= setting of mpv to Apple’s native QuickTime Player X on OS X 10.9.1 and found that the resulting colors are basically correct, but the image is too dark.

    The following images are from a scene from Lars von Trier’s Melancholia. The first image is from QuickTime Player X:

    quicktime

    This image is from a h.264 file (in an mp4 container) extracted from the BluRay version of the movie. I have compared it to the DVD version (played in Apple’s DVD Player) and to the version from the iTunes store, and the colors are exactly the same in these three versions and also match high quality still images I have from this movie.

    So this image is arguably the reference and shows how the colors should look like.

    The next image is from the same mp4 file, played in mpv without color management:

    mpvnoprofile

    This image makes it very obvious why color management is a must; aesthetically, it’s basically another image (technically, it’s too red and too saturated).

    The third image is again from the same mp4 file, played in mpv with color management (using the default rendering intent, which is absolute – choosing another intent does not fix the problem discussed here):

    mpvprofile

    As you can see, compared to the QuickTime version, the colors seem to be more or less correct now, but the image is obviously too dark.

    Now I wonder if this is a deficiency of the liblcms2.2.dylib library that mpv uses, or if it's just that mpv uses liblcms2.2.dylib with incorrect or suboptimal parameters?

    Could somebody familiar with this part of the mpv code base comment?

    opened by UliZappe 320
  • HDR tonemapping producing subpar results with default config

    HDR tonemapping producing subpar results with default config

    mpv version and platform

    Windows 10 1809

    mpv 0.29.0-107-gd6d6da4711 Copyright © 2000-2018 mpv/MPlayer/mplayer2 projects built on Sun Dec 16 00:57:00 UTC 2018 ffmpeg library versions: libavutil 56.24.101 libavcodec 58.42.102 libavformat 58.24.101 libswscale 5.4.100 libavfilter 7.46.101 libswresample 3.4.100 ffmpeg version: git-2018-12-15-be60dc21

    Reproduction steps

    Attempt to watch HDR content on SDR monitor

    Expected behavior

    Accurate reproduction of colours and brightness levels

    Actual behavior

    Colours (particularly in the red spectrum) are not accurately reproduced, light often behaves unnaturally and visibly shifts mid-scene

    Log file

    https://0x0.st/sdlQ.txt

    Sample files

    If someone can tell me how to losslessly cut an mkv with HDR metadata intact I can provide samples

    From what I can tell, tonemapping with mpv currently has two major issues what make it rather unpleasant to the end user: Reds are awful, I don't know if there's something special about this part of the spectrum but mpv does not play well with them at all - at least with the default settings. I've found I can improve reds dramatically by tweaking some settings such as the following but this comes with the cost of interfering with the rest of the film. tone-mapping-desaturate=0 hdr-compute-peak=no

    Here are some examples of reds/yellows not behaving correctly, I'll be using madVR as a pseudo reference as I don't have the SDR BD on hand and they seem to have no such issues with their tonemapping solution. These examples are from The Dark Knight 2008, mpv (default) has no HDR-specific config, mpv (tweaked) users the aforementioned config from the previous paragraph. Full gallery for easier viewing: https://imgbox.com/g/DvoY5yAjFH Examples:

    Fire - madVR: https://images2.imgbox.com/db/c3/TRqmFfaz_o.png mpv (default): https://images2.imgbox.com/50/1b/L9crP04w_o.png mpv (tweaked): https://images2.imgbox.com/e6/0d/HROmk5iG_o.png

    Explosion - madVR: https://images2.imgbox.com/5d/0d/KzBne9Hd_o.png mpv (default): https://images2.imgbox.com/a8/8a/kDpQb97n_o.png mpv (tweaked): https://images2.imgbox.com/e4/5b/eji8jTxh_o.png

    Secondly, hdr-compute-peak often causes noticeable shifts in brightness throughout the film even when there's not much going on. I noticed this while watching The Big Lebowski for example, while they were standing around talking the brightness suddenly shifted and it was very noticeable and uncomfortable. Here's an example of it shifting dramatically within a few frames, again, from The Dark Knight 2008: https://images2.imgbox.com/75/a9/LuuoGHun_o.png https://images2.imgbox.com/a9/0c/SpBDirqQ_o.png

    One thing in paricular that I've noticed about this is it's at its most egregious during sudden shifts, such as cutting from a dark scene directly to an explosion; perhaps it would be possible for mpv to scan ahead of time so such shifts can be accounted for?

    opened by NSQY 290
  • Black crush and color deviations with some ICC profiles

    Black crush and color deviations with some ICC profiles

    Continuation of the discussion in #534.

    Some ICC profiles are experiencing black crush when used in mpv, in particular ones that use complex transfer curves rather than simple pure powers.

    Proposed solutions including reworking the 3DLUT/lcms mechanism to pick a connection space more gracefully.

    opened by haasn 233
  • Make

    Make "sphinx" the default for 'tscale' interpolation!

    Example video to make my point: https://www.youtube.com/watch?v=MonFNCgK4WE [Mad Max - Fury Road "Retaliate" Trailer] Just when looking at the first half minute or so You will notice the excessive amounts of blurring that takes place with the new default of "tscale=mitchell". The same trailer with "tscale=triangle" however, is way more sharp while still being very smooth. So, for me at least, "tscale=triangle" is the perfect compromise between smoothness & sharpness (and trust me when I tell You that I've tried them all...). IMHO, mpv's defaults should satisfy the needs of the majority of users; while "tscale=mitchell" may be a little bit smoother, the blurriness it causes could scare away users that don't bother checking out each and every tscale option that there is.

    I'm interested to hear what You guys think about this and whether You think that there is an even better tscale option other than triangle.

    meta:question 
    opened by mpvOWNZ 162
  • vo_opengl: generate 3DLUT against source and use full BT.1886

    vo_opengl: generate 3DLUT against source and use full BT.1886

    This commit refactors the 3DLUT loading mechanism to build the 3DLUT against the original source characteristics of the file. This allows us, among other things, to use a real BT.1886 profile for the source. This also allows us to actually use perceptual mappings. Finally, this reduces errors on standard gamut displays (where the previous 3DLUT target of BT.2020 was unreasonably wide).

    This also improves the overall accuracy of the 3DLUT due to eliminating rounding errors where possible, and allows for more accurate use of LUT-based ICC profiles.

    The current code is somewhat more ugly than necessary, because the idea was to implement this commit in a working state first, and then maybe refactor the profile loading mechanism in a later commit.

    Fixes #2815.

    opened by haasn 129
  • macOS opengl-cb backend

    macOS opengl-cb backend

    this is a WIP and attempts to fix various annoying macOS bugs and the very long standing fullscreen regression completely. it still needs testing and some fix-ups.

    this will definitely fix: #5478, #5393, #5152, #5151, #4615, #4476, #3746, #3739, #2392, #2217 and possibly fixes: #3978

    feel free to test and report unknown bugs. for now one just needs to set --vo=opengl-cb, ~~though if the mpv core is too fast you might get a "No context set." error.~~

    there are a few things to do where i don't know how to solve them yet and i might need some help. TODO cocoa-cb:

    • ~~proper cocoa-cb init routine, (--no-config --vo=opengl-cb fails since no context yet)~~
    • ~~cocoa-cb vo option or comparable~~ (just compile time flag, uses vo=opengl-cb)
    • ~~doesn't draw when minimised, off screen, different space etc.~~
    • ~~get a hide (and unhide) event for windowless playback~~
    • ~~remove "[opengl-cb] icc-profile-auto is not available with opengl-cb" warning in an acceptable way~~
    • ~~change lux scale~~ (db0fb3c48b12f09170231fccd2c91687d9ce21db)
    • ~~remove "Taking screenshot failed." warning, appears on screenshot (window), not too happy with the window screenshot code~~
    • ~~on shutdown wait for animations to finish~~
    • ~~performance data buggy~~
    • ~~ICC profile switching leads to flicker in some cases (with icc-profile-auto=no, most likely an Apple bug)~~

    TODO Build:

    • ~~flag to deactivate cocoa-cb~~
    • ~~dynamic developer path for static_swift~~
    • ~~set build target min system requirements~~

    things i will fix soonish:

    • ~~fullscreen animation stretches video to target aspect ratio~~
    • ~~crashes on video stream switch to no-video (related to "hide and unhide event for windowless")~~
    • ~~implement none-native fs~~
    • ~~add license headers~~
    • ~~(deactivate the early flush on macOS)~~

    TODO misc:

    • ~~add a deprecation warning for the old opengl cocoa backend?~~
    opened by Akemi 120
  • "video-sync=display-resample" leads to choppy output...

    File in question: http://videos.hd-trailers.net/BVS_DTRL1_REV_ONLINE_VERSION-1080p-HDTN.mp4 (Warning: ~ 200 MB)

    Every other file I've tried plays just fine. Also, there seems to be nothing unusual about the file in question...

    And since having to set the "video-sync" option is going to be a requirement for interpolation in the future, I'm kinda stuck if more & more files are going to show this choppy behavior going forward!

    PS: The file plays correctly when not setting "video-sync=display-resample" (i.e. using the default).

    down-upstream 
    opened by mpvOWNZ 118
  • build: add meson build support

    build: add meson build support

    Since github doesn't let you reopen after a force push, here's a new PR. This is a continuation of https://github.com/mpv-player/mpv/pull/7897 that's rebased and updated for the newer build stuff that happened since then.

    So given some recent developments, I think there's now a clear advantage to switching to meson. Namely, libplacebo will play a significant role in mpv's core rendering since vo_placebo will probably replace vo_gpu sometime in the future. In light of that, it would be nice if development between libplacebo and mpv was made as smooth as possible. libplacebo uses meson as its build system and one nifty feature meson has is its subprojects feature. Using that feature would make it extremely easy to test changes in libplacebo and mpv. Of course, this would require porting mpv's build system to meson so here we are.

    This now depends on meson 0.60.

    Working (should be):

    • [x] Linux
    • [x] BSD
    • [x] Windows
    • [x] macOS
    • [x] All non-specific OS options/features

    TODO:

    • [x] Fix win32-internal-threads (that's a mess)
    • [x] Implement FULLCONFIG variable (lists every enabled feature in the build)
    • [x] add meson builds to CI
    • [x] fix BSD libmpv linking error
    • [x] getting the macOS swift code to actually compile
    • [x] wait for the 0.60 meson release to land in the rolling-release distros
    • [x] sort out macOS Swift linking
    • [x] cleanups/formatting
    • [x] More testing
    opened by Dudemanguy 113
  • Gapless playback of mp3s

    Gapless playback of mp3s

    Am I overlooking an option in the man page to accomplish this? The decoder I'm using in mpv is the default mpg123.

    Gapless playback occurrs in Qmmp if the mpg123 decoder plugin from the Qmmp Plugin Pack is installed and when playing mp3s using mpg123 itself (gapless option is on by default).

    I'm at a loss for why it isn't working in mpv.

    down-upstream:ffmpeg 
    opened by ThomS8312 111
  • Implement NNEDI3 with GPU backend

    Implement NNEDI3 with GPU backend

    NNEDI3 works with a Vapoursynth port of the original script, but you must use vspipe --y4m script.vpy >> output.raw and then take a long walk. It would be amazing to implement NNEDI3 into MPV in such a way that it used the GPU through opencl or otherwise.

    meta:feature-request priority:low 
    opened by maletor 101
  • Version shipping with Celluloid flatpak may be broken for outputing to a Jack sink over Pulse.

    Version shipping with Celluloid flatpak may be broken for outputing to a Jack sink over Pulse.

    Related: https://github.com/celluloid-player/celluloid/issues/823

    • mpv version: mpv 0.35.0
    • Linux Distribution and Version: Flatpak
    • Source of the mpv binary: Flatpak
    • If known which version of mpv introduced the problem: The version that shipped with the last version worked.

    If you're not using git master or the latest release, update. Releases are listed here: https://github.com/mpv-player/mpv/releases

    Expected behaviour

    Playing audio to the jack sink so we can hear it. And that mpv or celluloid showing up in Pulseaudio's list of streams.

    Actual behaviour

    Not playing audio. Actually, neither mpv or celluloid shows up at all in the Pulseaudio list of streams.

    Log file

    https://gist.github.com/gegoxaren/d5c492826100bce9a84792d0f455a910

    Thank you for your time!

    os:linux 
    opened by gegoxaren 2
  • the sound disappears when rewinding with an external audio track

    the sound disappears when rewinding with an external audio track

    for example, if you connected an external track and decided to rewind, the sound disappears for a few seconds, and the video also starts to slow down a little and accelerate for a few seconds. when rewinding, such things do not happen, the sound is immediately reproduced. here on the video you can see that the sound disappears for a few seconds when rewinding. https://youtu.be/WqgfNAfRlmU moreover, the weaker the computer or the more tracks, the longer the sound disappears when rewinding a friend with a weak computer has already written this to me

    latest build from https://sourceforge.net/projects/mpv-player-windows/files/64bit/

    without scripts and settings except --audio-file-auto=fuzzy

    log https://fex.net/ru/s/lrvnzrv

    Выпуск Windows 11 Pro Версия 22H2 Дата установки ‎22.‎10.‎2022 Сборка ОС 22621.819 Взаимодействие Windows Feature Experience Pack 1000.22636.1000.0

    opened by AdventurerRussia 1
  • lcms: always parse lcms2-related options

    lcms: always parse lcms2-related options

    Currently, the lcms-related options are only defined when lcms2 is enabled at build time. However, this causes issues (e.g. segfault) for vo_gpu_next, which relies on the presence of these options (to forward them to libplacebo).

    (That libplacebo internally depends on lcms2 as well is an implementation detail - compiling mpv without lcms against libplacebo with lcms should be possible in principle)

    Fixes: #10891 Closes: #10856

    opened by haasn 0
  • libmpv: wrong time-pos when playing av://dshow video source with profile low-latency

    libmpv: wrong time-pos when playing av://dshow video source with profile low-latency

    libmpv 32 bit version 0.35.0-1-g2f747341f9

    windows 10 22h2

    when i set mpv_set_option_string to profile low-latency

    and i call mpv_command to "loadfile", "av://dshow:video=Full HD 1080P PC Camera" (my webcam)

    and i check for the Position in current file in seconds using:

    mpv_get_property(mpvhandle, "time-pos", MPV_FORMAT_DOUBLE, V:position)

    i get a wrong position that starts from 50049.860218

    if i remove the low-latency profile the time-pos starts correctly from 0

    this problem only affect the dshow sources

    no problem with local files or internet url

    os:win 
    opened by wbtcpip2 0
  • 0.35.0: segmentation fault when trying to use --vo=gpu-next

    0.35.0: segmentation fault when trying to use --vo=gpu-next

    Important Information

    Provide following Information:

    • mpv version
    mpv 0.35.0 Copyright © 2000-2022 mpv/MPlayer/mplayer2 projects
     built on Fri Nov 18 00:00:44 CET 2022
    FFmpeg library versions:
       libavutil       57.28.100
       libavcodec      59.37.100
       libavformat     59.27.100
       libswscale      6.7.100
       libavfilter     8.44.100
       libswresample   4.7.100
    FFmpeg version: 5.1.2
    
    • Linux Distribution and Version Exherbo Linux
    • Source of the mpv binary Compiled on local system (Exherbo is a source-based distribution)
    • If known which version of mpv introduced the problem unknown
    • Window Manager and version kwin_x11 5.26.3
    • GPU driver and version proprietary NVIDIA 520.56.06 including proprietary kernel driver
    • Possible screenshot or video of visual glitches none

    Reproduction steps

    Reproducible with any video when using --no-config --vo=gpu-next, e.g.:

    1. yt-dlp -S ext:mp4:m4a https://www.youtube.com/watch?v=F7IZZXQ89Oc
    2. mpv --no-config --vo=gpu-next --log-file=test.log Turn\ it\ up\ to\ 11\ \[F7IZZXQ89Oc\].mp4

    Expected behavior

    Be able to play any video file using --vo=gpu-next.

    Actual behavior

    $ mpv --no-config --vo=gpu-next --log-file=test.log Turn\ it\ up\ to\ 11\ \[F7IZZXQ89Oc\].mp4 
     (+) Video --vid=1 (*) (h264 320x182 14.985fps)
     (+) Audio --aid=1 (*) (aac 2ch 44100Hz)
    Segmentation fault (core dumped)
    

    Log file

    test.log coredump.txt

    Sample files

    yt-dlp -S ext:mp4:m4a https://www.youtube.com/watch?v=F7IZZXQ89Oc

    Additional information

    Things work fine when not using --vo=gpu-next, my regular mpv.conf:

    hwdec=auto
    cache=no
    gpu-api=vulkan
    ao=pipewire
    

    Please let me know if/how I can contribute further information helping to identify the issue.

    os:linux 
    opened by tgurr 5
  • Any other solution to faster resync the video and audio tracks?

    Any other solution to faster resync the video and audio tracks?

    When users play the video file with external audio tracks, did multi-backward-seeks would need at least 1 more second to recover from silence.

    https://github.com/mpv-player/mpv/issues/1824#issuecomment-93369730

    I know it is a intentional design but the process is too slow (Comaparing with any other media players I knew, they could play audio at once after seeking backward.)

    meta:question 
    opened by hooke007 0
Releases(v0.35.0)
  • v0.35.0(Nov 12, 2022)

    This release requires FFmpeg 4.0 or newer.

    For packagers: Note that mpv's build system is only supported on Python 3. If you use the bootstrap.py script it will take care of this, otherwise you need to explicitly invoke the build system using python3 waf.

    This release adds the Meson build system as an alternative to waf. It is supposed to be feature-complete but please report any issues you encounter.

    Features

    Added

    • vo_gpu_next: add new libplacebo-based renderer
    • build: add meson build support
    • vo_gpu_next: forward Dolby Vision metadata to libplacebo
    • ao_pipewire: add PipeWire audio backend
    • ao_sndio: readd this audio output again
    • vo_gpu_next: apply film grain if such metadata is present
    • drm: context_drm_egl: add support for enabling VRR
    • demux: add support for R128 replaygain tags
    • x11: support X Present extension
    • af_rubberband: add support for new engine in rubberband 3.0.0
    • hwdec/drmprime: add drmprime hwdec-interop (commonly found on SoCs)
    • various: support binding functions keys beyond F12
    • audio: support hotplug events for multiple AOs
    • sub: use Unicode linebreaking for non-ASS subs and OSD
    • vo_gpu: hwdec: add Android hwdec utilizing AImageReader
    • vo_dmabuf_wayland: add wayland VO displaying dmabuf buffers (vaapi or drm hwdec only)
    • lua/console: add history deduplication

    Changed

    • filters: re-add vavpp hardware deinterlacing auto-filter (for --deinterlace)
    • swresample: don't forcibly clip audio on every conversion
    • ytdl_hook: always set HTTP headers to fix yt-dlp on certain sites

    Removed

    • libmpv: remove opengl_cb API and other deprecated symbols
    • lua: remove deprecated mp.suspend(), resume() and resume_all()
    • build: raise minimum libplacebo version requirement to v4.157.0

    Options and Commands

    Added

    • vo_gpu_next: add --target-colorspace-hint to facilitate HDR passthrough
    • vo_gpu_next: new tone mapping options 'auto', 'spline', 'bt.2446a' and add --tone-mapping-crosstalk, --inverse-tone-mapping
    • vo_gpu: add --gamut-mapping-mode and --tone-mapping-mode
    • options: add 'always' choice to --stop-screensaver
    • options: add --osd-playing-msg-duration
    • player: add --cover-art-whitelist option
    • x11: add --x11-present option

    Changed

    • ao_openal: enable --openal-direct-channels by default
    • options: only apply --sub-visibility to primary subtitles
    • options: make --cover-art-auto=exact the default
    • vo_gpu/hwdec: rename and introduce legacy names for some interops

    Deprecated

    • vo_gpu: deprecate --gamma-factor and --gamma-auto

    Removed

    • vo_gpu: remove --gamut-clipping, --gamut-warning, --tone-mapping-desaturate and --tone-mapping-desaturate-exponent (replacements available)
    • vulkan: remove --vulkan-disable-events

    Fixes and Minor Enhancements

    • context_drm_egl: use gbm_surface_create_with_modifiers
    • context_drm_egl: add support for BGR surface formats
    • vo_gpu: vulkan: open DRM render fd when using VK_KHR_display
    • client API: use symbol visibility attributes
    • vo_gpu: hwdec_vaapi: add dma-buf modifiers support
    • wayland: fix various issues that could lead to jitter
    • osc: fix cache displaying 60s in some cases
    • player: make --keep-open=always work with --loop-playlist
    • opengl: support driver debug message under OpenGL ES
    • vo_gpu: opengl: fixes for OpenGL ES version and extension handling
    • f_decoder_wrapper: support frame rotation metadata (used by JPEG)
    • wscript: switch shaderc checks to pkgconfig
    • vd_lavc: enable hwdec for prores by default
    • vo_gpu: add HOOKED_gather for custom shaders
    • wayland, x11: sanitize window title for valid UTF-8
    • win32: apply geometry position to content instead of window
    • filter_kernels: add cosine window
    • vo_gpu: hwdec_vaapi: don't probe formats for irrelevant endpoints
    • vo_gpu: hwdec: load hwdec interops on-demand by default
    • stats.lua: graphs: fix bad rendering due to division by 0
    • hwdec: warn on unsupported --hwdec option value
    • x11: fix --screen-name option
    • x11: avoid wasteful rendering when possible
    • video/image_writer: add JPEG XL support
    • stream_lavf: enable ipfs, ipns and rist protocol support
    • osc.lua: fix crash when calling osc-tracklist while idle
    • player: add jxl, tiff, tif to list of image extensions
    • various: switch to new AVChannelLayout structure
    • lua: command_native_async: always run callback asynchronously (edge case)
    • context_x11egl: remove supposed transparency workaround
    • vo_gpu: fix 3DLUT precision
    • drm: avoid drmModeAtomicCommit races by blocking
    • drm_common: skip cards that don't support KMS for autodetection
    • hwdec/dmabuf_interop_gl: support basic multi-plane formats
    • misc/random: switch to internal xoshiro rng implementation
    • ytdl_hook: improve track detection
    • ad_lavc: strip non-normalized floats
    • mpv.metainfo.xml: add XDG appstream metadata manifest
    • mac: avoid unnecessary unsafe conversions; fixes crash in debug builds
    • af_scaletempo2: fix crash when the number of channels increases
    • wayland: correctly handle non-CLOCK_MONOTONIC clocks
    • x11: fix --on-all-workspaces option
    • sd_ass: improve handling of subtitles with unknown duration
    • hwdec/vaapi: improve probing of supported sw formats
    • demux_mf: enable support for QOI, PHM and HDR images
    • demux_mkv: add AVS2 and AVS3 to tag list
    • TOOLS/lua/autoload: fix incorrect duplicate file loading behavior
    • demux/codec_tags: support more WAVEFORMATEXTENSIBLE tags
    • sd_ass: never mangle colours on RGB video

    This listing is not complete. Check DOCS/client-api-changes.rst for a history of changes to the client API, and DOCS/interface-changes.rst for a history of changes to other user-visible interfaces.

    A complete changelog can be seen by running git log v0.34.0..v0.35.0 in the git repository or by visiting https://github.com/mpv-player/mpv/compare/v0.34.0...v0.35.0

    Source code(tar.gz)
    Source code(zip)
  • v0.34.1(Jan 3, 2022)

    Bug fix release for the 0.34 branch.

    Fixes and Minor Enhancements

    • player: fix autofit/geometry related segfault
    • ao_oss: add missing PATH_DEV_MIXER define
    • egl_helpers: fix context creation if GLES 3 is not available
    • audio: stop corrupting audio on underreads
    • wayland: fix a potential segfault on surface enter
    • vo_gpu: opengl: fix wrong glMemoryBarrier call
    • vo_gpu: opengl: create context at version 4.4 again
    • af_lavcac3enc: fix memory leak on no-op
    • subprocess: unblock/reset signals before running child process
    • wayland: avoid doing unneccesary window resizes
    Source code(tar.gz)
    Source code(zip)
  • v0.34.0(Nov 1, 2021)

    This release requires FFmpeg 4.0 or newer.

    For packagers: Note that mpv's build system is only supported on Python 3. If you use the bootstrap.py script it will take care of this, otherwise you need to explicitly invoke the build system using python3 waf.

    Features

    Added

    • player: allow vo to be switched at runtime
    • input.conf syntax: support custom quotes in `XstringX` form & single quotes
    • ao_oss: readd OSSv4 audio output, default on *BSD
    • player: load cover art with the media filename
    • vo_gpu: vulkan: implement a VkDisplayKHR backed context
    • osc: seekbar hover/drag: display target chapter at the OSC title
    • stats.lua: add page 4 with a list of active key bindings
    • sub: add --sub-filter-jsre (JS regex)
    • vo_rpi: restore fullscreen handling
    • vo_tct: add resize capability
    • ytdl_hook.lua: search for yt-dlp by default (preferred over youtube-dl)

    Changed

    • vo_sixel: many fixes and improvements
    • filters: switch from scaletempo to scaletempo2, used for speed option
    • audio/vo_pulse: fix various edge cases and issues
    • stats.lua: move internal performance info from page 4 to page 0
    • command: don't hardcode command lists to be repeatable

    Removed

    • mac: drop build support for swift versions earlier than 4.1
    • vo_gpu: drop support for libplacebo older than v3.104.0

    Options and Commands

    Added

    • vo_sixel: add --vo-sixel-exit-clear
    • player: add --screen-name and --fs-screen-name
    • player/command: add albumart argument to video-add
    • command: add pid (process id), display-width and display-height properties
    • sub: add secondary-sub-text, -start, and -end properties; secondary-sub-visibility option
    • vo_gpu: add --icc-force-contrast
    • player: add append-play flag to loadlist
    • command: add support for secondary subs to sub-seek and sub-step
    • options: add watch-later-options to configure which options are saved
    • player: add track-list/N/image sub-property
    • input: add --no-input-builtin-bindings option
    • drm_common: add --drm-device option

    Changed

    • vo_sixel: change default dither to "auto"
    • vd_lavc: add VP8 to the default allowed hwdec codec list
    • vo_gpu: lower default deband threshold to preserve more detail
    • vo_gpu: adjust interpolation-threshold's default
    • demux: undeprecate --cache-secs
    • options: add Uploader, Channel_URL to --display-tags defaults
    • options: --audio-display determines cover priority
    • command: make current-window-scale writeable

    Deprecated

    • win32: ignore and deprecate --fit-border
    • drm_common: deprecate selecting by card number in --drm-connector

    Removed

    • vo_gpu: remove --icc-contrast
    • stats.lua: remove script-opts for the main keys (i/I)
    • vo_gpu: opengl: remove --opengl-restrict

    Fixes and Minor Enhancements

    • terminal: correctly process input when foregrounded
    • vo_wlshm: support presentation time
    • mac: fix a window positioning bug when exiting fullscreen
    • csputils: add mappings for DCI-P3 (ST.431-2) and P3-D65 (ST.432-1)
    • player: make resetting of track selection to "auto" work
    • stream_lavf: support rtsps
    • vo_wlshm: support big endian systems
    • demux_mf: add support for more image codecs
    • msg: fix really-quiet option to only affect terminal output
    • mac: fix traditional fullscreen on macOS 11
    • ao_pulse: fix misbehavior with PipeWire when setting volume or mute
    • stats.lua: include a filter's @‍label when displaying filters on page 1
    • wayland, win32: support the display-hidpi-scale property
    • win32: keep the window title-bar inside the screen
    • filter_kernels: fix incorrect constant for quadric window
    • command: add display-width/display-height property
    • edl: add a way to add tags
    • stream_file: disable readahead for remote files on macOS to fix stutter
    • osxbundle: fix slow and wasteful memory allocation that caused stutter
    • vo_gpu: fix extreme clipping with --gamut-clipping for HDR outputs
    • af_scaletempo2: speed up using vector calculations
    • recorder: fix muxing of certain codecs
    • win32: support the focused property
    • js: add mp.utils.append_file
    • subs: fix missing subtitles on last frame
    • stats.lua: show scaled resolution
    • osc: expose osc-visibility via shared-script-properties
    • terminal-unix: fix ^Z identification and ignore unknown CSI sequences
    • context_drm_egl: allow autoprobe selection
    • wayland: improve behavior with touch events
    • command: make current-window-scale writeable
    • vo_vdpau: don't treat preemption as an error to fix VT switching
    • wayland: read XCURSOR_THEME to get cursor theme
    • demux_playlist: extend maximum line size (again) to 2M
    • win32: call timeBeginPeriod on demand on Windows 10
    • build: allow easier selection of lua version/package
    • vo_gpu: fix distortion with certain rotated videos
    • drm_common: skip non-primary devices during automatic choosing
    • drm_common: support USB, SPI, Writeback and unknown connector types (future proofing)

    This listing is not complete. Check DOCS/client-api-changes.rst for a history of changes to the client API, and DOCS/interface-changes.rst for a history of changes to other user-visible interfaces.

    A complete changelog can be seen by running git log v0.33.0..v0.34.0 in the git repository or by visiting either https://github.com/mpv-player/mpv/compare/v0.33.0...v0.34.0 or https://git.srsfckn.biz/mpv/log/?qt=range&q=v0.33.0..v0.34.0

    Source code(tar.gz)
    Source code(zip)
  • v0.33.1(Apr 5, 2021)

    Security fix release for the 0.33 branch. Users are advised to upgrade immediately.

    Fixes and Minor Enhancements

    • demux_mf: improve format string processing (assigned CVE-2021-30145)
    Source code(tar.gz)
    Source code(zip)
  • v0.33.0(Nov 22, 2020)

    This release requires FFmpeg 4.0 or newer.

    For packagers: Note that mpv's build system is only supported on Python 3. If you use the bootstrap.py script it will take care of this, otherwise you need to explicitly invoke the build system using python3 waf.

    Features

    Added

    • scripting: load scripts from directories
    • mac: activate logging when started from the bundle
    • 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_gpu: d3d11: add support for exclusive fullscreen
    • w32_common: Support HiDPI on Windows
    • 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 this script
    • stream: Implement slice:// for reading slices of streams
    • player: add automatic loading of external cover art files
    • vo_sixel: implement terminal video output using sixel

    Changed

    • sws_utils: use zimg by default if available
    • build: pick up Lua 5.2 by default (preferred over 5.1)
    • build: disable RPI vendor blob auto-detection in favor of open-source stack
    • build: make C11 atomics mandatory
    • build: make libass non-optional
    • player: stricter filename matching for external subtitle auto-loading
    • lua: support Unicode paths in script loading and IO library
    • vo_direct3d: rip out texture video rendering path and dumb down OSD rendering
    • audio: rewrite internal audio handling and AO API
    • build: disable GLX by default

    Removed

    • stream_libarchive: disable tar support due to bugs
    • Remove remains of Libav compatibility
    • stream_smb: remove due to lack of thread safety and the abundance of alternatives, FFmpeg still includes SMB support
    • command: remove legacy hook API (has been deprecated for a long time)
    • client API: remove deprecated qthelper.hpp header
    • removed audio outputs: sndio, rsound, oss
    • x11: remove xdg-screensaver invocations that supported dbus based idle inhibit
    • client API: deactivate the opengl_cb API
    • build system: drop Python 2 compatbility

    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
    • player: a number of new playlist contol commands/properties
    • ipc: add --input-ipc-client option
    • 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
    • wayland: expose wayland-app-id as a user option
    • 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

    Changed

    • options: remove deprecation warning for "-foo bar" syntax
    • player: make audio hr-seek default
    • ad_lavc: disable decoder downmix by default
    • command: support save-position-on-quit for "stop" command too
    • command: extend subprocess command
    • options: do not accept ":" as separator anymore in key/value lists

    Deprecated

    • demux: deprecate --cache-secs

    Removed

    • wayland: remove wayland-frame-wait-offset option
    • input: remove deprecated --input-file option
    • vo_vdpau: remove deprecated/inactive --vo-vdpau-deint option

    Fixes and Minor Enhancements

    • options: stop hiding deprecated options from --help output
    • lua, js: add mp.get_script_directory() function
    • lua: fix security relevant loading order issue with scripts
    • player: make screenshot each-frame mode more accurate
    • bash completion: complete ao/af/vo/vf options
    • zimg: add alpha support
    • wayland: make resizing better
    • edl: add mechanism for delay loading streams
    • stream_file: fix caching-related performance regression on CIFS
    • cocoa-cb: fix crashes and issues with UI updates
    • sub, demux: improve behavior with negative subtitle delay/muxed subs
    • demux: make seek ranges work for static images + audio
    • cocoa-cb: support maximize/minimize on startup
    • umpv: change from legacy FIFO to socket
    • stats: move input speed to cache page, make it a graph
    • stats: add fourth page with performance graphs
    • command: print edition title to OSD when cycling
    • zimg: add support for big endian input and output
    • demux_mkv: add png intra support
    • build: detect VT_GETMODE on FreeBSD and DragonFly
    • win32: use windows 10 native virtual-terminal if available
    • vo_gpu: enable frame caching for still frames
    • command: add property to return text subtitles in ASS
    • vo_gpu: ra_pl: add timers support
    • build: allow vo_wlshm on more Wayland platforms (e.g. FreeBSD)
    • zimg: add slice threading and use it by default
    • command: add a way to access properties of a current track
    • vo_gpu: EGL: fix transparency on X11/EGL/Mesa
    • vd_lavc: add AV1 to the default allowed hwdec codec list

    This listing is not complete. Check DOCS/client-api-changes.rst for a history of changes to the client API, and DOCS/interface-changes.rst for a history of changes to other user-visible interfaces.

    A complete changelog can be seen by running git log v0.32.0..v0.33.0 in the git repository or by visiting either https://github.com/mpv-player/mpv/compare/v0.32.0...v0.33.0 or https://git.srsfckn.biz/mpv/log/?qt=range&q=v0.32.0..v0.33.0

    Source code(tar.gz)
    Source code(zip)
  • v0.32.0(Jan 26, 2020)

    This release requires FFmpeg 4.0 or newer.

    Features

    Added

    • stream_libarchive: enable RAR5 support
    • bash completion: add initial implementation
    • cocoa-cb: add support for forcing the dedicated GPU for rendering
    • cocoa-cb: add pinch to resize window gesture
    • w32_common: support minimizing/maximizing using osc window controls

    Changed

    • wayland: print warning on GNOME due to serious issues with their compositor
    • player: write watch-later config even for unseekable streams

    Removed

    • vo_gpu: hwdec_vdpau: remove direct_mode
    • vo_gpu: hwdec_vaegl: remove support for old-style interop

    Options and Commands

    Added

    • command: add a playlist-unshuffle command
    • command: add osd-dimensions property
    • input: new PLAYONLY and PAUSEONLY keycodes

    Changed

    • options: change option parsing when using a single dash This adds a warning for -o file.mkv and disallows the use of --o file.mkv (use --o=file.mkv instead).

    Fixes and Minor Enhancements

    • lua: fix mp.file_info for large files
    • vo_gpu: fix crash if dither texture fails to allocate
    • wayland: unscrew up cursors, fix various issues
    • osc: usability improvements for osc window controls

    This listing is not complete. Check DOCS/client-api-changes.rst for a history of changes to the client API, and DOCS/interface-changes.rst for a history of changes to other user-visible interfaces.

    A complete changelog can be seen by running git log v0.31.0..v0.32.0 in the git repository or by visiting either https://github.com/mpv-player/mpv/compare/v0.31.0...v0.32.0 or https://git.srsfckn.biz/mpv/log/?qt=range&q=v0.31.0..v0.32.0

    Source code(tar.gz)
    Source code(zip)
  • v0.31.0(Dec 28, 2019)

    This release requires FFmpeg 4.0 or newer.

    Features

    Added

    • vo_gpu/d3d11: allow configurable swapchain color space for native HDR output
    • player: add mechanisms for better logging as preperation for console.lua
    • audio: add ao_audiotrack for Android
    • input: introduce a pseudo key name that grabs all text input
    • wayland: add grab zone for resizing window with mouse
    • osc: implement pseudo client side decorations via OSC
    • vf_gpu: add video filter using vo_gpu's renderer
    • added console.lua: interactive REPL for input commands
    • osc: display Santa hat for idle logo in December
    • vd_lavc: add option to autoselect known good hwdec implementations
    • mac: replace old event tap for media key support with MediaPlayer

    Changed

    • input: disable gamepad code by default
    • vo_gpu: allow vdpau usage under EGL
    • stream, demux: redo origin policy

    Removed

    • mac: remove Apple Remote support
    • client API: deprecate tick event

    Options and Commands

    Added

    • vo_gpu/d3d11: add --d3d11-output-csp for configuring swap chain color space
    • command: add command-list property
    • command, input: add input-bindings property
    • command: add --window-maximized and make --window-minimized settable
    • command: add property returning hidpi scale
    • command, lua: add a way to share data between scripts
    • client API, lua: add new API for setting OSD overlays

    Changed

    • add a builtin "sw-fast" profile, which restores performance settings for software video conversion. These were switched to higher quality. This affects video outputs like vo_x11 and vo_drm, and screenshots.
    • options: make --show-profile without parameters list all profiles
    • wayland: support for --hidpi-window-scale option
    • stream_lavf: set --network-timeout to 60 seconds by default
    • x11: scale window-scale by DPI

    Deprecated

    • deprecate --input-file
    • deprecate --video-sync=display-adrop
    • deprecate all input section commands
    • deprecate --display-fps, replaced by --override-display-fps

    Removed

    • remove deprecated --playlist-pos alias

    Fixes and Minor Enhancements

    • vo_drm, vo_x11: allow use of zimg
    • vo_sdl: Support mouse wheel input, Improve mouse button input
    • video: fix track switching work for external images
    • vo_gpu: fix infinite scaler reinit spam
    • f_output_chain: fix possible crash when changing filters
    • vo_gpu: opengl: add hack for ancient Mesa/GLX
    • demux_lavf: export demuxer_id for more formats which have it
    • lua: make later key bindings always have higher priority
    • drm_common: fix display FPS estimation for interlaced modes
    • vo_drm: fix incorrect pixel format possibly being picked for 30-bit
    • zsh completion: fix pcre usage to really be optional
    • options: increase consistency between list options and document them
    • osc: reduce unnecesary CPU usage by using property notifications

    This listing is not complete. Check DOCS/client-api-changes.rst for a history of changes to the client API, and DOCS/interface-changes.rst for a history of changes to other user-visible interfaces.

    A complete changelog can be seen by running git log v0.30.0..v0.31.0 in the git repository or by visiting either https://github.com/mpv-player/mpv/compare/v0.30.0...v0.31.0 or https://git.srsfckn.biz/mpv/log/?qt=range&q=v0.30.0..v0.31.0

    Source code(tar.gz)
    Source code(zip)
  • v0.30.0(Oct 25, 2019)

    This release requires FFmpeg 4.0 or newer. This release has replaced the internal Vulkan rendering abstraction with libplacebo's more up-to-date implementation.

    Features

    Added

    • vo_gpu: vulkan: hwdec_cuda: Add support for Vulkan interop
    • command: support for async commands
    • input: support for named arguments
    • cocoa-cb: add support for mac 10.14 Dark mode and run time switching
    • vo_gpu: switch to Vulkan API implementation based on libplacebo
    • context_drm_egl: Add support for presentation feedback
    • vo_gpu: implement error diffusion for dithering
    • vo/gpu: hwdec_vdpau: Support direct mode for 4:4:4 content
    • vo_gpu: hwdec_vaapi: Add Vulkan interop
    • video, TOOLS: add vf_fingerprint and a skip-logo script
    • vo_gpu: d3d11: add support for presentation feedback
    • vo_drm: 30bpp support
    • cocoa-cb: add support for 10bit opengl rendering
    • video: add pure gamma TRC curves for 2.0, 2.4 and 2.6
    • vo_drm: Implement N-buffering and presentation feedback
    • Reintroduce vo_wayland as vo_wlshm
    • video: add zimg wrapper
    • wayland: add presentation time
    • input: add gamepad support through SDL2

    Changed

    • cocoa-cb: use libmpv's advanced rendering control and timing
    • vo_gpu: improve tone mapping desaturation
    • vo_gpu: redesign peak detection algorithm
    • vo_gpu: allow boosting dark scenes when tone mapping
    • osc: improve look of seekranges
    • vo_gpu: x11: remove special vdpau probing, use EGL by default
    • demux: sort filenames naturally when playing a directory / archive
    • stream_dvb: rewrite channel switching, remove old stream control
    • filters: extend vf_format so that it can convert color parameters

    Removed

    • demux, stream: rip out the classic stream cache
    • vo_gpu: removed internal Vulkan implementation
    • Remove libdvdread support in favor of libdvdnav
    • demux, stream: remove much of the optical disc support
    • Remove classic Linux analog TV support, and DVB runtime controls
    • demux, stream: remove old rar support in favor of libarchive
    • vo_gpu: remove mali-fbdev
    • vo_gpu: remove vdpau/GLX backend
    • vf_vapourynth: remove Lua backend
    • vo_gpu: remove hwdec_d3d11eglrgb

    Options and Commands

    Added

    • command: add a subprocess command
    • vo_gpu: added --tone-mapping-max-boost, --hdr-peak-decay-rate, --hdr-scene-threshold-low/high
    • player: add --demuxer-cache-wait option
    • Implement backwards playback
    • demux: add a on-disk cache
    • demux, command: add another stream recording mechanism, dump-cache command
    • ao_pulse: add --pulse-allow-suspended
    • command: add video-add/video-remove/video-reload commands
    • demux_cue: added --demuxer-cue-codepage to select CUE sheet charset
    • input: add keybind command
    • command: add sub-start & sub-end properties
    • video/d3d11: added --d3d11-adapter to select a rendering adapter by name
    • vo_gpu/d3d11: added --d3d11-output-format for configuring swap chain format

    Changed

    • vo_gpu: split --linear-scaling into --linear-upscaling and --linear-downscaling
    • vo_gpu: split --tone-mapping-desaturate into strength and exponent
    • drm: rename --drm-osd-plane-id to --drm-draw-plane, --drm-video-plane-id to --drm-drmprime-video-plane, --drm-osd-size to --drm-draw-surface-size

    Deprecated

    • options: deprecate --video-aspect, replaced by --video-aspect-override
    • options: deprecate --record-file, --spirv-compiler

    Removed

    • options: remove deprecated --chapter option
    • demux: remove "program" property
    • stream: remove "disc-titles", "disc-title", "disc-title-list", and "angle" properties
    • cocoa-cb: remove --macos-title-bar-style, replaced by --macos-title-bar-material and --macos-title-bar-appearance
    • spirv: remove support for --spirv-compiler=nvidia (shaderc is the only remaining option)

    Fixes and Minor Enhancements

    • context_drm_egl: implement n-buffering
    • cocoa-cb: add support for custom colored title bar
    • vo_gpu: x11egl: support Mesa OML sync extension
    • demux, demux_edl: add extension for tracks sourced from separate streams
    • context_drm_egl: Use eglGetPlatformDisplayEXT if available
    • vo_gpu: vulkan: add Android context
    • wayland: use xdg-decoration if available
    • vo_gpu: glx: use GLX_OML_sync_control for better vsync reporting
    • demux: runtime option changing for cache and stream recording
    • x11: fix ICC profiling for multiple monitors
    • zsh completion: move generation to runtime and improve

    This listing is not complete. Check DOCS/client-api-changes.rst for a history of changes to the client API, and DOCS/interface-changes.rst for a history of changes to other user-visible interfaces.

    A complete changelog can be seen by running git log v0.29.1..v0.30.0 in the git repository or by visiting either https://github.com/mpv-player/mpv/compare/v0.29.1...v0.30.0 or https://git.srsfckn.biz/mpv/log/?qt=range&q=v0.29.1..v0.30.0

    Source code(tar.gz)
    Source code(zip)
  • v0.29.1(Oct 2, 2018)

    A bug fix release for the 0.29 release branch.

    Fixes and Minor Enhancements

    • af_rubberband: Fix for A-V drift on seeking.
    • ao_alsa: Fixes to remove spam during pausing and end-of-file.
    • ao_jack: Fix for mpv attempting to connect to non-standard devices such as MIDI.
    • ao_openal: Drop support for Apple's bundled OpenAL due to lack of features to successfully build.
    • ao_pulse: Fix for audio buffer length calculation.
    • demux_lavf: Fix EDL playback of certain DASH streams.
    • demux_lavf: Mark v4l streams as not seekable.
    • demux_raw: Fix for gapless playback from raw audio input.
    • drm_atomic: Fix to enable video output with devices without a video overlay plane.
    • encode: Fix for crashes in case of failure to write to output.
    • encode: Fix for encoding when utilizing lavfi-complex.
    • Fix to strip HDR peak metadata if attached to SDR video (#6111)
    • macOS: Capability to fall back on SW rendering for testing purposes.
    • macOS: Fix for issues with the main menu.
    • macOS: Fix for side by side split view.
    • macOS: Fixes for crashes, most notably those happening on 10.14 (#5908, #6097, #6041, #6062).
    • macOS: No longer let older, unsupported versions of the Swift build tools through configure.
    • manpage: Misc fixups.
    • stream_{smb,file}: Fix for partial writes to buffers.
    • stream_libarchive: Fix hang when an out-of-bound seek happens.
    • stream_smb: Fix for crashes due to libsmbclient and threading (#5936).
    • vo_gpu: Fix for corruption when multiple compute shaders override each others' block sizes (#6083).
    • ytdl_hook: Always load "ytdl://" URLs with ytdl_hook first.
    • ytdl_hook: Fix audio streams not being picked up for some sites.

    Options and Commands

    Added

    • --cocoa-cb-sw-renderer to control whether or not to fall back on software rendering on macOS.
    Source code(tar.gz)
    Source code(zip)
  • v0.29.0(Jul 22, 2018)

    This release requires FFmpeg 4.0 or newer.

    Features

    Added

    • ao/openal: Add better sample format and channel layout selection
    • ao/openal: Add support for direct channels output
    • cocoa-cb: initial implementation via opengl-cb API
    • context_drm_egl: Introduce 30bpp support (requires Mesa 18.0.0_rc4 or later)
    • osx: add some more menu bar items as suggested by Apples's HIG
    • vo_gpu: make screenshots use the GL renderer (#5498, #5240)
    • x11: support Shift+TAB as an input key bind (#5849)
    • ytdl_hook: support native dash demuxer, if present

    Changed

    • ao_alsa, ao_pulse: reduce requested buffer size
    • audio: change format negotiation, remove channel remix fudging
    • client API: deprecate opengl-cb API and introduce a replacement API
    • demux: lower demuxer cache default sizes from 400MB/400MB to 50MB/150MB
    • osx: always deactivate the early opengl flush on macOS
    • scripting: change when/how player waits for scripts being loaded
    • vo_gpu: various improvements to HDR peak detection
    • vo_gpu: various improvements to HDR tone mapping
    • wayland_common: update to stable xdg-shell
    • ytdl_hook: parse youtube playlist urls to set start index if --ytdl-raw-option=yes-playlist= is specified

    Deprecated

    • af_lavrresample: deprecate this filter

    Removed

    • build: drop support for SDL1 (only applied to ao_sdl)

    Options and Commands

    Added

    • add a number of --audio-resample-* options, which should from now on be used instead of --af-defaults=lavrresample:
    • ao/openal: --openal-direct-channels
    • command: add --osd-on-seek option defaulting to bar
    • command: add a change-list command (#5435)
    • options: add --http-proxy
    • options: add a builtin low-latency profile
    • vaapi: add option to select a non-default device path with --vaapi-device (#4320)
    • video: add option to reduce latency by 1 or 2 frames
    • vo_gpu: introduce --target-peak (#5521)

    Changed

    • command: change cycle-value command behavior (#5772)
    • config: replace config dir lua-settings/ with dir script-opts/
    • options: --lavfi-complex now requires uniquely named filter pads.
    • options: --ytdl is now always enabled, even for libmpv
    • options: make --deinterlace=yes always deinterlace (#5219)
    • options: slightly improve filter help output for lavfi bridge
    • vo: rename --vo=opengl-cb to --vo=libmpv

    Deprecated

    • encoding: deprecate a bunch of obscure options (--ovoffset, --oaoffset, --ovfirst, --oafirst)
    • options: deprecate --vf-defaults and --af-defaults
    • osx: --gpu-context=cocoa with --gpu-api=opengl is now deprecated in favour of --vo=libmpv

    Removed

    • command: remove an old compatibility hack that allowed CLI aliases to be set as property, deprecated in 0.26.0
    • input: remove legacy command handling for MPlayer commands that were deprecated in 2013
    • options: drop --opensles-sample-rate, as --audio-samplerate should be used if desired
    • options: drop deprecated --videotoolbox-format, --ff-aid, --ff-vid, --ff-sid, --ad-spdif-dtshd, --softvol options
    • options: remove --video-stereo-mode
    • options: remove deprecated ao/vo auto profiles
    • options: remove the following encoding options: --ocopyts (now the default, old timestamp handling is gone), --oneverdrop (now default), --oharddup (you need to use --vf=fps=VALUE), --ofps, --oautofps, --omaxfps

    Fixes and Minor Enhancements

    • HIDRemote: fix volume buttons on macOS 10.13 (#5721)
    • TOOLS/autoload: Fix broken "disabled" option
    • TOOLS/autoload: be more robust with slow directory listings (#5618)
    • ao_sdl: fix default buffer size
    • build: add static libraries to libmpv.pc
    • build: bump waf to 2.0.9 (fixes Python 3.7 compatibility)
    • build: manually add standard library search paths for linking (#5791)
    • common: round all integer times to milliseconds
    • demux, player: fix playback of sparse video streams (w/ still images)
    • demux: support for some kinds of timed metadata (e.g. ICY)
    • demux_mkv: add V_AV1 identifier for AV1
    • demux_mkv: support Meridian Lossless Packing in Matroska (#5923)
    • display additional metadata tags during video playback
    • drm_atomic: Fix memory leaks in drm_atomic_create
    • enable cache for FUSE filesystems on OpenBSD and FreeBSD
    • gpu: prefer 16bit floating point FBO formats to 16bit integer ones
    • hwdec_vaegl: Fix VAAPI EGL interop used with gpu-context=drm
    • input.conf: use exact value for [ binding, which does the inverse of ]
    • input: add a keybinding to toggle hardware decoding
    • input: minor additions to default key bindings (#973)
    • osc: fix accidentally skipping files when seeking with slider
    • player: fix strange behavior on edition switching
    • player: fix track autoselection of external files yet again
    • terminal-unix: stop trying to read when terminal disappears (#5842)
    • video: actually wait for last frame being rendered on EOF
    • video: fix --video-rotate in some cases
    • video: fix crash with vdpau when reinitializing rendering (#5447)
    • vo_gpu: fix anamorphic screenshots (#5619)
    • vo_vdpau: fix resizing and rotation problems

    This listing is not complete. Check DOCS/client-api-changes.rst for a history of changes to the client API, and DOCS/interface-changes.rst for a history of changes to other user-visible interfaces.

    A complete changelog can be seen by running git log v0.28.2..v0.29.0 in the git repository or by visiting either https://github.com/mpv-player/mpv/compare/v0.28.2...v0.29.0 or https://git.srsfckn.biz/mpv/log/?qt=range&q=v0.28.2..v0.29.0

    Source code(tar.gz)
    Source code(zip)
  • v0.28.2(Feb 14, 2018)

    This release contains an additional fix for CVE-2018-6360.

    Fixes and Minor Enhancements

    • ytdl_hook: whitelist subtitle URLs as well (#5456)
    Source code(tar.gz)
    Source code(zip)
  • v0.27.2(Feb 14, 2018)

    This release contains an additional fix for CVE-2018-6360.

    Fixes and Minor Enhancements

    • ytdl_hook: whitelist subtitle URLs as well (#5456)
    Source code(tar.gz)
    Source code(zip)
  • v0.28.1(Feb 10, 2018)

    This release fixes CVE-2018-6360.

    Fixes and Minor Enhancements

    • ytdl_hook: whitelist protocols from urls retrieved from youtube-dl (#5456)
    Source code(tar.gz)
    Source code(zip)
  • v0.27.1(Feb 10, 2018)

    This release fixes CVE-2018-6360.

    Fixes and Minor Enhancements

    • ytdl_hook: whitelist protocols from urls retrieved from youtube-dl (#5456)
    Source code(tar.gz)
    Source code(zip)
  • v0.28.0(Dec 24, 2017)

    This release needs recent FFmpeg (newer than 3.4) due to major refactoring. Required library versions:

    • libavutil >= 56.6.100
    • libavcodec >= 58.7.100
    • libavformat >= 58.0.102
    • libswscale >= 5.0.101
    • libavfilter >= 7.0.101
    • libswresample >= 3.0.100

    The LGPL 2.1+ relicensing process is now mostly complete. The remaining GPL-only code (see Copyright file) can be disabled at build time by using --enable-lgpl.

    Features

    Added

    • Add DRM_PRIME Format Handling and Display for RockChip MPP decoders
    • csputils: Add support for Display P3 primaries
    • demux: support multiple seekable cached ranges, display cache ranges on OSC
    • demux_playlist: support .url files (#5107)
    • dvb: Add multiple frontends support (up to 8)
    • dvb: implement parsing of modulation for VDR-style channels config
    • hwdec: add mediacodec hardware decoder for IMGFMT_MEDIACODEC frames, rename mediacodec to mediacodec-copy
    • lua: integrate stats.lua script (bound to i/I by default)
    • vd_lavc: add support for nvdec hwaccel
    • vo_gpu: add android opengl backend
    • vo_gpu: initial d3d11 support
    • vo_gpu: vulkan support

    Removed

    • af: remove deprecated audio filters (channels, equalizer, pan, volume; replacements in lavfi)
    • vf: remove most GPL video filters (crop, dsize, expand, flip, gradfun, mirror, noformat, pullup, rotate, scale, stereo3d, yadif; replacements in lavfi)
    • vf_buffer: remove this filter
    • video: remove automatic stereo3d filter insertion
    • vo_gpu: remove hwdec_vaglx interop
    • vo_opengl: refactor into vo_gpu
    • vo_wayland: remove

    Options and Commands

    Added

    • demux: add option to create CC tracks eagerly (--sub-create-cc-track)
    • options: add --start=none to reset previously set start time
    • options: add --vlang switch

    Changed

    • cache: lower default size to 2*10MB
    • demux: bump the demuxer cache readahead duration to 10 hours
    • demux: use seekable cache for network by default, bump prefetch limit
    • msg: make --msg-level affect --log-file too
    • player/misc.c: allow both --length and --end to control play endpoint
    • player: match subtitles with language tags with --sub-auto=exact
    • rename --opengl-hwdec-interop to --gpu-hwdec-interop (now mostly useless)
    • vd_lavc: prefer nvdec over vdpau with --hwdec=auto (better codec and surface format support)
    • vd_lavc: rename --hwdec=rpi to --hwdec=mmal

    Removed

    • options: remove --heartbeat-cmd and --heartbeat-interval (incidentally fixes #4888)

    Fixes and Minor Enhancements

    • TOOLS/autoload.lua: add ogm, ogg and opus extensions
    • Use /dev/tty instead of stdin for terminal input (#4190)
    • audio: add audio softvol processing to AO (replaces previously GPL’d code)
    • audio: fix channel conversion with NA channels (e.g. with ALSA)
    • audio: fix missing volume update on init and reinit
    • csputils: Fix DCI P3 primaries white point
    • demux: don't allow subtitles to mess up buffered time display
    • demux: fix .cue files with audio files that contain attached pictures
    • demux: fix accounting for seekable ranges on track switches (fixes missing audio when cycling through audio tracks with e.g. EDL, --merge-files, ordered chapters and youtube-dl pseudo DASH)
    • demux: fix crash with cue/ordered chapter files (#5027)
    • demux: speed up cache seeking with a coarse index
    • demux_lavf: always give libavformat the filename when probing (helps with mp3 files)
    • demux_mkv: add V_SNOW tag to mkv_video_tags
    • dvb: Fix long channel switching: next/prev channel
    • dvb: fixes for ATSC tuning
    • lavc_conv: clamp timestamps to positive (#5047)
    • macOS: fix bundle on macOS High Sierra (10.13) (#4926, #4866)
    • mp_image: always copy color attributes on hw download (#4804)
    • mp_image: select an explicit fallback for chroma location (#4804)
    • msg: bump log level of --log-file to -v -v
    • msg: reinterpret a bunch of message levels
    • osc: fix rare stack overflow when changing visibility mode
    • osdep/io: add android-related bullshit to fix files >2 GiB
    • player/playloop.c: respect playback start time when using --loop-file
    • player: allow seeking in cached parts of unseekable streams
    • player: make track language matching case insensitive (#5272)
    • player: use start timestamp for ab-looping if --ab-loop-a is absent
    • player: when loading external file, always add all track types (#5132)
    • restore-old-bindings.conf: add old macOS/Wayland AXIS bindings
    • screenshot: create directories from template
    • scripting: report dlerror() output
    • sd_ass: accept RFC8081 font media types
    • sd_ass: accept otc as fallback OpenType collection file extension
    • stream_libarchive: work around various types of locale braindeath (https://git.io/vbiFJ)
    • subprocess-win: don't change the mouse cursor when creating processes
    • video: add a hack to avoid missing subtitles with vf_sub (#5194)
    • video: fix alpha handling (#4983)
    • video: fix memory leaks (roughly 1 KB per decoded frame) with hwdec copy modes
    • video: fix rotation and deinterlace auto filters
    • video: properly pass through ICC data
    • vo: add support for externally driven renderloop and make wayland use it (partially fixes display-sync under wayland; disables rendering when window is invisible)
    • vo_gpu: change --tone-mapping-desaturate algorithm
    • vo_gpu: enable 3DLUTs in dumb mode
    • vo_gpu: fix gamma scale
    • vo_gpu: fix mobius tone mapping compatibility to GLSL 120 (#5069)
    • vo_gpu: fix video sometimes not being rerendered on equalizer change
    • vo_gpu: kill off FBOTEX_FUZZY (#1814)
    • vo_gpu: opengl: fix possible screenshot window crash (#4905)
    • vo_gpu: opengl: use GLX_MESA_swap_control where available
    • vo_gpu: reduce the --alpha=blend-tiles checkerboard intensity
    • vo_gpu: win: remove exclusive-fullscreen detection hack
    • vo_lavc: remove messy delayed subtitle rendering logic (#4689)
    • wayland_common: implement output tracking, many cleanups and bugfixes
    • Windows: skip window snapping if Windows handled it
    • Windows: add more-POSIXy versions of open() and fstat() (#4711)
    • ytdl_hook: don't prepend ytdl:// to non-youtube links in playlists (#5003)

    This listing is not complete. Check DOCS/client-api-changes.rst for a history of changes to the client API, and DOCS/interface-changes.rst for a history of changes to other user-visible interfaces.

    A complete changelog can be seen by running git log v0.27.0..v0.28.0 in the git repository or by visiting either https://github.com/mpv-player/mpv/compare/v0.27.0...v0.28.0 or https://git.srsfckn.biz/mpv/log/?qt=range&q=v0.27.0..v0.28.0

    Source code(tar.gz)
    Source code(zip)
  • v0.27.0(Sep 13, 2017)

    Features

    Added

    • Windows: handle media keys
    • libmpv: options: add a thread-safe way to notify option updates
    • vd_lavc/vo_opengl: support embedded ICC profiles
    • vo: rendering API abstraction for future non-GL video outputs
    • vo_opengl: add a gamut warning feature to highlight out-of-gamut colors (--gamut-warning)
    • vo_opengl: add direct rendering support (--vd-lavc-dr)
    • vo_opengl: implement (faster) compute shader based EWA kernel
    • vo_opengl: implement HLG OOTF inverse
    • vo_opengl: support HDR peak detection (--hdr-compute-peak)
    • vo_opengl: support float input pixel formats
    • vo_opengl: support loading custom user textures (#4586)
    • vo_opengl: support user compute shaders

    Removed

    • Remove video equalizer handling from vo_direct3d, vo_sdl, vo_vaapi, and vo_xv (GPL, not worth the effort to support legacy VOs)

    Options and Commands

    Added

    • macOS: add --no-native-fs option to disable the native macOS fullscreen (#4014)
    • player: add --track-auto-selection option

    Changed

    • input: use mnemonic names for mouse buttons, same as Qt: https://doc.qt.io/qt-5/qt.html#MouseButton-enum
    • options: change --loop semantics
    • player: make --lavfi-complex changeable at runtime
    • vf_eq: remove this filter (GPL; uses libavfilter’s eq filter now, with changed semantics)
    • video: change --deinterlace behavior
    • vo_opengl: generalize HDR tone mapping to gamut mapping, --hdr-tone-mapping → --tone-mapping

    Removed

    • --field-dominance (GPL-only author, no chance of relicensing)
    • input: drop deprecated "osd" command
    • options: drop --video-aspect-method=hybrid (GPL-only)

    Fixes and Minor Enhancements

    • TOOLS/autocrop.lua: fix cropdetect black limit for 10-bit videos
    • TOOLS/lua/autodeint: update to lavfi-bridge
    • TOOLS/lua/status-line: improve and update
    • af_lavrresample: don't call swr_set_compensation() unless necessary (#4716)
    • ao_oss: fix period_size calculation (#4642)
    • ao_rsound: allow setting the host
    • audio: fix spdif mode
    • filter_kernels: correct spline64 kernel
    • macOS: fix media keys input when other Apps steal the priority (#4834)
    • macOS: fix the support of multiple renderers (GPU switch) (#2371)
    • macOS: remove the standard "Show Tab Bar" menu item
    • options: fix --include (#4673)
    • player: fix --end with large values (#4650)
    • player: fix confusion in audio resync code (#4688)
    • player: make refresh seeks slightly more robust (#4757)
    • player: readd smi subtitle extension (#4626)
    • vd_lavc: change auto-probe order to prefer cuda over vdpau-copy
    • vd_lavc: fix device leak with copy-mode hwaccels (#4735)
    • vd_lavc: fix hwdec compatibility with yuvj420p formats
    • vd_lavc: fix mid-stream hwdec fallback
    • vf_vapoursynth: fix inverted sign and restore 10 bit support (#4720)
    • video: increase --monitorpixelaspect range
    • vo_opengl: adjust the rules for linearization (#4631)
    • vo_opengl: scale deband-grain to the signal range
    • vo_opengl: tone map on the maximum signal component
    • x11: fix that window could be resized when using embedding (#4784)
    • ytdl_hook: resolve relative paths when joining segment urls (#4827)
    • ytdl_hook: support fragments with relative paths, fixes segmented DASH

    This listing is not complete. Check DOCS/client-api-changes.rst for a history of changes to the client API, and DOCS/interface-changes.rst for a history of changes to other user-visible interfaces.

    A complete changelog can be seen by running git log v0.26.0..v0.27.0 in the git repository or by visiting either https://github.com/mpv-player/mpv/compare/v0.26.0...v0.27.0 or https://git.srsfckn.biz/mpv/log/?qt=range&q=v0.26.0..v0.27.0

    Source code(tar.gz)
    Source code(zip)
  • v0.26.0(Jul 18, 2017)

    VA-API/VDPAU hardware decoding now requires FFmpeg > 3.2. DVB support is disabled by default since it does not work with some older kernels. Built-in V4L TV support is disabled by default. av://v4l2 can be used instead. Support for C plugins is now enabled by default (#4491).

    Many more parts of the player are now licensed under LGPL, see Copyright file. Thanks to all contributors who have agreed to relicensing of their changes! See #2033 for details.

    Features

    Added

    • Universal Windows Plaform (UWP) support (libmpv only)
    • csputils: implement sony s-gamut
    • js: add javascript scripting support using MuJS See DOCS/man/javascript.rst for more details
    • vo_opengl: add new HDR tone mapping algorithm (mobius, now default)
    • vo_opengl: hwdec_cuda: Support separate decode and display devices
    • vo_opengl: implement sony s-log1 and s-log2 trc
    • vo_opengl: implement support for OOTFs and non-display referred content

    Removed

    • vf_dlopen: remove this filter

    Options and Commands

    Added

    • vo_opengl: add --tone-mapping-desaturate
    • vo_opengl: support tone-mapping-param for clip
    • ytdl_hook: add option to exclude URLs from being parsed

    Changed

    • allow setting profile option with libmpv
    • audio: move replaygain control to top-level options
    • external_files: parse ~ in --{sub,audio}-paths
    • options: change --sub-fix-timing default to no (#4484)
    • options: expose string list actions for --sub-file option
    • options: slight cleanup of --sub-ass-style-override
      • signfs → scale
      • --sub-ass-style-override → --sub-ass-override
    • renamed the HDR TRCs st2084 and std-b67 to pq and hlg respectively
    • replace vf_format's peak suboption by sig-peak, which is relative to the reference white level instead of in cd/m^2
    • the following options change to append-by-default (and possibly separator):
      • --script
    • video: change --video-aspect-method default value to container

    Deprecated

    • m_option: deprecate multiple items for -add etc.
    • player: deprecate "osd" command
    • --audio-file-paths => --audio-file-path
    • --sub-paths => --sub-file-path
    • --opengl-shaders => --opengl-shader
    • --sub-paths => --sub-file-paths
    • the following options are deprecated for setting via API:
      • "script" (use "scripts")
      • "sub-file" (use "sub-files")
      • "audio-file" (use "audio-files")
      • "external-file" (use "external-files") (the compatibility hacks for this will be removed after this release)

    Removed

    • chmap: remove misleading "downmix" channel layout name (#4545)
    • demux_lavf: remove --demuxer-lavf-cryptokey option (#4579)
    • input.conf: drop TV/DVB bindings
    • options: remove remaining deprecated audio device selection options
      • --alsa-device
      • --oss-device
      • --coreaudio-exclusive
      • --pulse-sink
      • --rsound-host/--rsound-port
      • --ao-sndio-device
      • --ao-wasapi-exclusive
      • --ao-wasapi-device
    • remove option --target-brightness
    • remove property "video-params/nom-peak"

    Fixes and Minor Enhancements

    • TOOLS/lua/autoload.lua: actually sort files case insensitive (#4398)
    • TOOLS/lua/autoload.lua: ignores all files starting with "."
    • ao_openal: kill off device listing (#4311)
    • ao_pulse: reorder format choice to prefer float and S32 over S16 as fallback format
    • ao_wasapi: try correct initial format (#4582)
    • command: add missing change notification for playlist-shuffle (#4573)
    • demux_disc: fix bluray subtitle language retrieval (#4611)
    • demux_mkv: fix alpha with vp9 + libvpx
    • demux_mkv: support FFmpeg A_MS/ACM extensions
    • ipc-unix: don’t truncate the message on EAGAIN (#4452)
    • ipc: raise json nesting limit (#4394)
    • macOS: fix mpv-wrapper.sh when used with csh or tcsh shell
    • macOS: properly unhide Dock when quitting during System fs animation
    • mpv_identify: replace deprecated fps property (#4550)
    • options/path: fallback to USERPROFILE if HOME isn't set
    • player: close audio device on no audio track
    • player: fix potential segfault when playing dvd:// with DVD disabled (#4393)
    • player: prevent seek position to jump around adjacent keyframes, e.g. when dragging the OSC bar on short videos (#4183)
    • vo_opengl: bump up SHADER_MAX_HOOKS and MAX_TEXTURE_HOOKS to 64
    • vo_opengl: correct off-by-one in scale=oversample
    • vo_opengl: do not use vaapi-over-GLX (#4555)
    • vo_opengl: fall back to ordered dither instead of blowing up (#4519)
    • vo_opengl: tone map in linear XYZ instead of RGB
    • x11: add 128x128 sized icon support
    • ytdl_hook: add a header to support geo-bypass
    • ytdl_hook: don't override start time set by saved state
    • ytdl_hook: don't override user-set start time
    • ytdl_hook: treat single-entry playlists as a single video

    This listing is not complete. Check DOCS/client-api-changes.rst for a history of changes to the client API, and DOCS/interface-changes.rst for a history of changes to other user-visible interfaces.

    A complete changelog can be seen by running git log v0.25.0..v0.26.0 in the git repository or by visiting either https://github.com/mpv-player/mpv/compare/v0.25.0...v0.26.0 or https://git.srsfckn.biz/mpv/log/?qt=range&q=v0.25.0..v0.26.0

    Source code(tar.gz)
    Source code(zip)
  • v0.25.0(Apr 23, 2017)

    This release drops support for OS X 10.7 and earlier. Support for some optical media functionality (DVD/CD) is now disabled by default.

    More parts of the player are now licensed under LGPL. In particular:

    • OSD symbol font
    • ass_mp, sd_ass
    • common.h
    • demux/packet
    • demux_mkv (with minor exceptions), ebml, matroska.h
    • sd_lavc
    • sub/osd

    Thanks to all contributors who have agreed to relicensing of their changes! See #2033 for details.

    Starting with this release, releases will be tagged on the master branch. The release/current branch is thus abandoned.

    Features

    Added

    • TOOLS: add acompressor.lua script for runtime acompressor ffmpeg filter control
    • dvb: add support for DVB-T2
    • lavfi: support hwdec filters for --lavfi-complex
    • macOS: initial Touch Bar support
    • osc: add volume button (mouse wheel to change volume)
    • sub: add SDH subtitle filter
    • vo_opengl: add experimental vdpauglx backend
    • vo_opengl: implement videotoolbox hwdec on iOS

    Removed

    • image_writer: remove useless formats (PPM, PGM, TGA)
    • af_drc: remove (use --af=acompressor instead; higher quality)

    Options and Commands

    Added

    • --demuxer-lavf-probe-info
    • --sub-filter-sdh, --sub-filter-sdh-harder
    • add automatic libavfilter bridges to option parsing
    • command: add better runtime filter toggling method
    • command: add demux-start-time property
    • command: add property notifications for hwdec properties (#4289)
    • input: add "async" flag
    • osc: add user_opts.boxmaxchars for box layout title limit
    • player: add --keep-open-pause=no option
    • va_vavpp: reversal-bug=no
    • vo_opengl: --opengl-es=force2
    • vo_opengl: add --opengl-shader-cache-dir option for caching shaders on disk (mostly for ANGLE)
    • vo_opengl: angle: add --angle-flip to set the ANGLE present model

    Changed

    • command: update sub-fps etc. options on runtime changes
    • vo_opengl: prefer X11 backends over Wayland backends
    • options: change --audio-file-auto default to not to load any files

    Deprecated

    • audio: deprecate most non-lavfi audio filters (channels, equalizer, pan, volume)
    • video: deprecate almost all non-lavfi video filters (buffer, crop, dlopen, dsize, eq, expand, flip, gradfun, mirror, noformat, pullup, rotate, scale, stereo3d, sub, yadif)
    • options: deprecate --loop semantics (planned alias to --loop-file)

    Fixes and Minor Enhancements

    • Windows: demux_cue: fix UTF-8 paths
    • Windows: fix mismatched free/talloc_free (#4315)
    • Windows: fix undefined behaviour when toggling fullscreen
    • ao_alsa: close lost audio devices (#4189)
    • ao_alsa: filter fewer devices
    • ao_alsa: fix an error check (#4188)
    • ao_jack: update latency on buffer_size/graph change
    • ao_wasapi: do not pass nonsense to drivers with double precision formats
    • ass_mp: reallocate cached subtitle image data on format changes (#4325)
    • build: decouple dvdnav check from dvdread (#4290)
    • build: encode_lavc: fix build failure after libavcodec major bump
    • build: fix build with HAVE_GL==0
    • build: replace android-gl check with a standard GLES3 check
    • build: update bundled waf to 1.9.8
    • build: vd_lavc: fix potential build failure with vaapi
    • demux_lavf: disable half-working mp4 edit list support in libavcodec
    • demux_lavf: skip avformat_find_stream_info() for some formats (hls, mp4, mkv by default)
    • etc/encoding_profiles.conf: update and remove deprecated stuff
    • etc/mpv.conf: remove deprecated options
    • external_files: actually try to autoload from fallback paths
    • external_files: enable autoloading with URLs (#3264)
    • image_writer: make it work with libavcodec's jpg encoder
    • macOS: add --ontop-level option for modifying ontop window level (#2376, #3974)
    • macOS: add key mappings for previous and next Media Keys (#4204)
    • macOS: add option to force dedicated GPU (#3242)
    • macOS: fix autofit options on HiDPI resolutions without HiDPI scaling (#4194)
    • macOS: fix black edges on live resize
    • macOS: fix cursor hiding in the Dock area and top of the screen
    • macOS: fix event propagation of menu bar item key shortcuts
    • macOS: fix first responder when borderless window is used
    • macOS: fix key input in certain circumstances
    • macOS: fix retrieval of non-fullscreen window size, also while animating (#4323)
    • macOS: fix scroll wheel input with Shift modifier (#3506)
    • macOS: improve bundle environment variable handling (#2061)
    • macOS: make window draggable on init
    • macOS: only move window into screen bounds when changing screens (#4178)
    • macOS: only report mouse movements when window is not being dragged (might have triggered OSC and other scripts)
    • macOS: properly restore shell state when quitting from the Dock's context menu
    • macOS: refactor mouse events and cursor visibility (#1817, #3856, #4147)
    • macOS: set background of the title bar from black to white
    • osc: bottom/topbar: add fullscreen button
    • osc: bottom/topbar: don't clip title vertically
    • osc: bottom/topbar: increase timecodes width a bit (#3952)
    • osc: fix PlayResX undefined warning when aspect is 0
    • osc: fix window dragging with showwindowed=no (#1819)
    • osc: make title configurable and use property expansion on it (#4221)
    • osc: refactor osc message scaling (#4081, #4083, #4102)
    • player: don't block playback stop when seeking
    • player: enable "buffering" pausing for DASH streams too
    • player: fix core-idle and eof-reached update notifcations
    • player: make screenshot commands honor the async flag (#4250)
    • player: reduce blocking on VO when switching pause (#4152)
    • sd_ass: disable --sub-fix-timing if sub style override is fully disabled
    • stream/stream_dvdnav: don't ignore setting title (#4283)
    • stream_dvd: fix subs/audio detection on DVDs containing multi-PGC titles
    • vf_vavpp: add advanced deint bug compatibility for Intel vaapi drivers
    • vf_vavpp: fix first-field mode
    • vo_opengl: fix crash with temporal dithering in dumb mode
    • vo_opengl: hwdec_d3d11egl: make it work with some ANGLE DLL versions
    • vo_x11: reduce flickering on playlist navigation
    • wayland: correctly map mouse buttons

    This listing is not complete. Check DOCS/client-api-changes.rst for a history of changes to the client API, and DOCS/interface-changes.rst for a history of changes to other user-visible interfaces.

    A complete changelog can be seen by running git log v0.24.0..v0.25.0 in the git repository or by visiting either https://github.com/mpv-player/mpv/compare/v0.24.0...v0.25.0 or https://git.srsfckn.biz/mpv/log/?qt=range&q=v0.24.0..v0.25.0

    Source code(tar.gz)
    Source code(zip)
  • v0.24.0(Feb 12, 2017)

    Features

    Added

    • Windows: allow snapping to screen edges (#2248)
    • macOS: add border cycling (#2430)
    • player: add experimental C plugin interface
    • player: add experimental stream recording feature (--record-file)
    • player: add prefetching of the next playlist entry (--prefetch-playlist; does NOT work with URLs resolved by youtube-dl)
    • stream_lavf: add support for data URIs (#4058)
    • vaapi: add support for 10-bit video formats (requires patched Mesa and capable hardware)
    • x11: pseudo HiDPI scaling

    Options and Commands

    Added

    • sub: add --sub-justify and --sub-ass-justify options
    • sub: add option to force using video resolution for image subtitles (--image-subs-video-resolution)

    Changed

    • command: rename framedrop properties
      • drop-frame-count → decoder-frame-drop-count
      • vo-drop-frame-count → frame-drop-count
    • input.conf: change "L" to change loop-file by default

    Deprecated

    • --hwdec-preload (replaced with --opengl-hwdec-interop)

    Removed

    • options: drop deprecated --sub-codepage syntax
    • options: drop deprecated --vd/--ad codecs selection features
    • player: remove --stream-capture option/property

    Fixes and Minor Enhancements

    • Windows: update the fullscreen state on restoring
    • ad_spdif: fix obscure cases of AC3 passthrough (e.g. 44100 Hz AC3)
    • ao_oss: use --audio-device if --oss-device isn't set (#4122)
    • build: fix --disable-gl if cuda is enabled
    • build: rpi: rely on pkgconfig for compiler flags to ease cross compilation
    • charset_conv: fallback to interpreting subs as latin1 if iconv fails
    • charset_conv: fix "auto" fallback with uchardet not compiled (#3954)
    • client API: fix freeze when destroying mpv_handle before mpv_initialize
    • client API: fix mpv_set_property() return value before init (#3988)
    • command: fix potential crash for script-binding with multi-commands
    • command: nicer OSD formatting for loop-file
    • command: shorten long playlists on OSD
    • config: do not resolve default profile during "include" processing (#4024)
    • cuda: fix 10 bit decoding
    • cue: accept lower-case cue commands (#4057)
    • demux_mkv: any reference makes a frame not a keyframe (fixes seeking in WebM files with alpha channel)
    • lavfi: slightly better disconnected output handling (#4118)
    • lua: close directory after reading its entries (#4045)
    • macOS: consistent normalization when searching for external files (#4016)
    • macOS: don't change Space on quit in fullscreen (#3957)
    • macOS: don't constrain window frame for fullscreen (#4044)
    • macOS: don't init displaylink on reconfig (#4031)
    • macOS: fix build on OS X 10.9 (#3946)
    • macOS: fix color profile retrieval
    • macOS: fix displaylink refresh rate retrieval
    • macOS: fix dropping of files and URLs (#4036)
    • macOS: fix handling of geometry option (#3867)
    • macOS: fix unwanted behavior with window level other than the default (#1757, #1884)
    • macOS: fix window size in certain circumstances
    • macOS: properly recover from toggleFullscreen fail (#4035)
    • osc: allow playlist buttons when looping (#4092)
    • osc: bottom/topbar: clip title instead of stretching
    • osc: bottombar/topbar: make chapter markers slightly bigger
    • osc: box: clip with ellipsis after too much stretching
    • osc: fix crashes related to field eventresponder being nil (#3210)
    • player: add .scc subtitle extension
    • stream_bluray: use proper 0-based index
    • sub: remove .txt as text subtitle extension
    • tv: fix segfaults on TV input (#4096)
    • vaapi: set libva > 0.39.4 message callbacks to prevent it from printing messages to the terminal
    • vd_lavc: improved fallback behavior for --hwdec=cuda (#3914)
    • vdpau: reject decoding of non-4:2:0 (would decode to garbage)
    • vf_lavfi: don't crash with VOs without hardware decoding support (#4064)
    • vo_opengl, vo_opengl_cb: better hwdec interop backend selection
    • vo_opengl: angle: rewrite with custom swap chain (fixes problems with e.g. 24 fps video on 24 Hz monitors, avoids problems with DirectComposition, enables "screenshot window" command on Windows 8 and newer)
    • vo_opengl: partially fix rotation for 4:2:2 content
    • vo_opengl: x11egl: fix alpha mode
    • wayland: fix high CPU usage with mpv paused and visible
    • ytdl_hook, edl: implement pseudo-DASH support
    • ytdl_hook: add non-dash fallbacks to default formats
    • ytdl_hook: fix opening hitbox.tv rtmp stream
    • ytdl_hook: respect --no-audio, don't force-select track
    • ytdl_hook: support livestream segmented DASH VODs
    • ytdl_hook: support segmented dash

    This listing is not complete. Check DOCS/client-api-changes.rst for a history of changes to the client API, and DOCS/interface-changes.rst for a history of changes to other user-visible interfaces.

    A complete changelog can be seen by running git log v0.23.0..v0.24.0 in the git repository or by visiting either https://github.com/mpv-player/mpv/compare/v0.23.0...v0.24.0 or https://git.srsfckn.biz/mpv/log/?qt=range&q=v0.23.0..v0.24.0

    Source code(tar.gz)
    Source code(zip)
  • v0.23.0(Dec 25, 2016)

    Now requires at least FFmpeg 3.2.2.

    Features

    • vo_rpi: partially undeprecate

    Added

    • vo_opengl: hwdec_cuda: Support P016 output surfaces

    Removed

    • charset_conv: drop enca and libguess support in favor of uchardet
    • vf_vdpaurb: remove this filter in favor of --hwdec=vdpau-copy

    Options and Commands

    Added

    • TOOLS/autoload: allow disabling through script-opts
    • demux, stream: add --access-references to prevent opening referenced files

    Deprecated

    • options: deprecate codec family selection in --vd/--ad

    Removed

    • macOS: remove --fs-black-out-screens
    • options: remove deprecated sub-option handling for --vo and --ao

    Fixes and Minor Enhancements

    • Windows: window styles improvements (allow minimizing borderless/fullscreen window) (#2229, #2451)
    • ad_spdif: Fix crash when spdif muxer is not available
    • audio: fix --audio-stream-silence with ao_alsa
    • audio: fix --audio-stream-silence with ao_wasapi
    • build: drop build-time dependency on Perl
    • build: support linking ANGLE (previously loaded dynamically)
    • d3d11va: unconditionally load D3D DLLs (#3348)
    • demux_mkv: fix seeking in some broken files (#3920)
    • hwdec_cuda: allow building without CUDA SDK (load CUDA dynamically)
    • macOS: fix dropping of URLs containing query strings on the window
    • macOS: fullscreen refactoring (#2857, #3272, #1352, #2062, #3864)
    • macOS: support append file to paylist on drop (#2166)
    • macOS: update the menu and remove conflicting “Quit & remember position” item (#3865)
    • osc: don't hide playlist buttons, just disable
    • osc: fix possible race condition in right timecode
    • osc: topbar: use same styles as bottombar
    • player: don't print format detection error when aborting loading
    • vdpau: fix vaapi probing if libvdpau-va-gl1 is present
    • video: use demuxer-signaled duration for last video frame (#3924)

    This listing is not complete. Check DOCS/client-api-changes.rst for a history of changes to the client API, and DOCS/interface-changes.rst for a history of changes to other user-visible interfaces.

    A complete changelog can be seen by running git log v0.22.0..v0.23.0 in the git repository or by visiting either https://github.com/mpv-player/mpv/compare/v0.22.0...v0.23.0 or https://git.srsfckn.biz/mpv/log/?qt=range&q=v0.22.0..v0.23.0

    Source code(tar.gz)
    Source code(zip)
  • v0.22.0(Nov 20, 2016)

    Features

    Added

    • audio/out: add AudioUnit output driver for iOS
    • demux_mkv: parse Matroska colorimetry metadata
    • filter_kernels: add ability to taper kernels/windows, add tukey window
    • osc: add seekbarstyle=knob (#2365)
    • video/out: add tct as modern caca alternative for true-color and 256-color terminals
    • video: add --hwdec=vdpau-copy mode

    Deprecated

    • vf_vdpaurb: deprecated in favor of --hwdec=vdpau-copy

    Options and Commands

    Added

    • --opengl-early-flush=auto
    • --scale-taper, --scale-wtaper
    • --scale-wblur
    • macOS: --hidpi-window-scale (#3716)
    • osc: add script message handlers for chapter/track/playlists

    Fixes and Minor Enhancements

    • Apply --autofit-larger after --autofit-smaller (#3753)
    • Set subtitle track title to indicate hearing/visual impaired tracks
    • ao_alsa: disable chmap API use for mono/stereo (#2905, #3045)
    • build: add required failure message for libavfilter check (#3692)
    • build: fix compilation with mingw-w64/Clang (#3800)
    • build: make VideoToolbox available on iOS
    • command: fix reset-on-next-file=all and tv-freq option (#3708)
    • command: if window-scale can't be set properly, set it as option (#3724)
    • demux_mkv: don't recursively resolve timeline for opened reference files
    • demux_mkv: fix ordered chapter sources with ordered editions
    • opengl: compile against iOS OpenGLES implementation
    • options: handle legacy no-* sub-options
    • osc: add alpha animation to tooltip (fix lingering tooltip)
    • osc: change default deadzonesize to 0.5
    • osc: don't wrap the title
    • osc: fix crash after reaching a certain position in limited lists (#3691)
    • osc: fix crash with no chapters
    • osc: fix crashes when dragging seekbar across file changes (#3210)
    • osc: fix displaying only half of the entries when at the end of a list
    • osc: fix missing chapter ticks with seekbarstyle=bar
    • osc: slimbox: fix clipping with seekbarstyle=bar (#3737)
    • osc: top/bottombar: also scale when min-width is reached to match box/slimbox behavior
    • osc: top/bottombar: dynamically size timecodes according to timems
    • osc: top/bottombar: rescale layout to same size with scale=1
    • osc: top/bottombar: scale title if too large like box
    • player: consistently initialize screensaver state with --force-window
    • player: enable no-video subtitle display on coverart too
    • player: make --start-time work with --rebase-start-time=no
    • player: make sure non-video subtitle rendering is reset if video resumes (#3770)
    • player: removing last playlist entry while looping should not stop (#3808)
    • player: show subtitles on VO if --force-window is used (#3684)
    • player: speed up audio/video re-sync when there is a huge delay
    • vdpau: fix hwdec uninit (#3788)
    • vo_opengl: blend against background color for --alpha=blend
    • vo_opengl: context_rpi: fix stdatomic usage (#3699)
    • vo_opengl: fix --blend-subtitles handling (#3773)
    • vo_opengl: fix redrawing with hardware decoding (#3773)
    • vo_opengl: partially re-enable glFlush() calls (#3670)
    • ytdl_hook: sort chapters by time

    This listing is not complete. Check DOCS/client-api-changes.rst for a history of changes to the client API, and DOCS/interface-changes.rst for a history of changes to other user-visible interfaces.

    A complete changelog can be seen by running git log v0.21.0..v0.22.0 in the git repository or by visiting either https://github.com/mpv-player/mpv/compare/v0.21.0...v0.22.0 or https://git.srsfckn.biz/mpv/log/?qt=range&q=v0.21.0..v0.22.0

    Source code(tar.gz)
    Source code(zip)
  • v0.21.0(Oct 19, 2016)

    Features

    Added

    • config: allow profile forward-references in default profile
    • demux_lavf: "support" mov edit lists and log errors if used (FFmpeg only)
    • hwdec: Add support for CUDA and cuvid/NvDecode (mostly useful on Linux where VDPAU still lacks HEVC Main 10 support; keep using DXVA2 on Windows)
    • osc: add right-click behavior to playlist and chapter buttons
    • osc: add user-alterable margin for top/bottombar
    • rpi: add --hwdec=rpi-copy (#3604)
    • sd_lavc: enable teletext
    • vaapi: support drm devices when running in vaapi-copy mode
    • vd_lavc: Add hwdec wrapper for crystalhd
    • vo_opengl: add hw overlay support and use it for RPI
    • vo_opengl: basic mali fbdev support
    • vo_opengl: rpi: merge vo_rpi features

    Removed

    • vo_opengl: remove pre/post/scale-shaders in favor of user-shaders

    Deprecated

    • config: deprecate ao and vo auto-profiles
    • vo_rpi: deprecate this VO

    Options and Commands

    Added

    • add --teletext-page option
    • af_pan: add af-command support to change the matrix
    • af_rubberband: add af-command and option to change the pitch
    • command: add a load-script command
    • command: add a video-dec-params property
    • command: add an apply-profile command
    • command: add audio-pts property to get the audio pts
    • command: add options to property list
    • command: add sub-text property for current subtitle text
    • command: export profile list as a property (#977)
    • options: add --hwdec=yes as alias for --hwdec=auto
    • player: add --player-operation-mode=pseudo-gui
    • player: add --video-osd=no option to disable video OSD (#3387)
    • player: add --watch-later-directory option
    • stream_bluray: select title by playlist (bd://mpls/[playlist])
    • vo_opengl: disable glFlush() by default, and add an option to enable it for testing

    Changed

    • af_rubberband: default to channels=together
    • command: allow absolute seeks relative to end of stream
    • command: make bitrate properties observable
    • command: make most options observable
    • msg: make --log-file and --dump-stats accept config path expansion (#3591)
    • options: deprecate --playlist-pos to --playlist-start
    • options: make input options generally runtime-settable
    • options: rename subtitle options (--sub-text- → --sub; --ass- → --sub-ass-)
    • osc: change default layout to bottombar, seekbarstyle to bar, use larger scalewindowed and scalefullscreen
    • player: make --terminal, --log-file, --dump-stats, --osc, --ytdl, --audio-*, --priority, --stop-screensaver (#3615) settable at runtime
    • vo_drm: change CLI options
      • Change connector selection to accept human readable names (such as eDP-1, HDMI-A-2) rather than arbitrary numbers.
      • Change GPU selection to accept GPU number rather than device paths.
      • Merge connector and GPU selection into one --drm-connector.
      • Add support for --drm-connector=help.
      • Add support for --drm-* in EGL backend.
    • vo_opengl: rename 3dlut-size to icc-3dlut-size

    Removed

    • command: remove hwdec-active and hwdec-detected properties
    • command: remove vo-cmdline
    • options: drop unreferenced --bluray-angle option
    • vo, ao: disable positional parameter suboptions
    • vo_xv: replace no-colorkey with ck-method=none

    Deprecated

    • all VOs and AOs: deprecate sub-options, add them as global options
    • command: deprecate "cache" property, replace with "cache-percent"
    • deprecate --vo-defaults
    • deprecate --vo=opengl-hq alias in favor of opengl-hq profile
    • options: deprecate --mute=auto
    • vo_direct3d: deprecate direct3d_shaders alias, use shaders by default
    • vo_opengl: deprecate 'drm-egl' backend and introduce 'drm' instead

    Fixes and Minor Enhancements

    • TOOLS/zsh.pl: die if we can't parse main options
    • TOOLS/zsh.pl: don't filter files by extension (#2273)
    • ao_alsa: try to fallback to "hdmi" before "iec958" for spdif
    • ao_rsound: fix compilation (#3501)
    • aspect: use nominal width instead of actual width for video-unscaled
    • audio/out: prevent underruns with spdif under certain conditions
    • audio: fix late audio start (#3610)
    • audio: fix missed wakeup when changing audio output device
    • audio: fix segfault when yanking USB DAC
    • charset_conv: Use CP949 instead of EUC-KR
    • command: don't log "ignore" command with -v verbosity
    • command: try selecting the next track if track switching fails (#3446)
    • demux_mkv: don't crash if --ordered-chapters-files fails
    • displayconfig: treat a refresh rate of 1 as invalid
    • ipc: log when listening to IPC socket (#3598)
    • macOS: fix fullscreen regression on 10.11 and newer (#3364)
    • mp_image: fix clearing to black with p010 format
    • osc: Fix scaling issues when toggling fullscreen (#3429)
    • osc: align text vertically in top/bottombar (#2093)
    • osc: change seekbar background's alpha scaling
    • osc: fix display of chapters and playlist scaling
    • osc: move tooltip to inside seekbar for top/bottombar
    • osc: show playlist/chapter list on prev/next instead of osd
    • path: default ~~ paths to home directory (#3591)
    • player: do not let pseudo-gui override user config settings
    • player: enable reading from stdin after loading input.conf
    • player: fix instant subtitle refresh on track switches
    • player: make --force-window work with opengl-cb
    • stream_file: don't use poll() on directories (would hang on macOS; #3530, #3649)
    • stream_lavf: fix determining seekability (#1701)
    • sub: actually apply text alignment options to non-ASS subtitles
    • terminal-win: support modifier keys in console input (#3625)
    • vo_drm: fix segfault when using invalid card
    • vo_opengl: apply 90° rotation to chroma texture size (#3568)
    • vo_opengl: fix incorrect video rendering after vdpau preemption recovery
    • vo_opengl: partially fix dumb-mode cropping with rotation
    • vo_opengl: rpi: use overlay for yuv420p too
    • w32_common: initialize playback status as soon as possible (#3482)
    • wayland: reject resize events with either dimension being 0 (#3679)
    • x11: fix external fullscreen update (#3570)
    • ytdl_hook: Add title to playlist items if available
    • ytdl_hook: Set aspect ratio for anamorphic video
    • ytdl_hook: Support playlist entries without subtitles
    • ytdl_hook: add chapters by parsing video's description
    • ytdl_hook: don't add subtitles with unknown duration
    • ytdl_hook: temporarily force disable dash segments formats

    This listing is not complete. Check DOCS/client-api-changes.rst for a history of changes to the client API, and DOCS/interface-changes.rst for a history of changes to other user-visible interfaces.

    A complete changelog can be seen by running git log v0.20.0..v0.21.0 in the git repository or by visiting either https://github.com/mpv-player/mpv/compare/v0.20.0...v0.21.0 or https://git.srsfckn.biz/mpv/log/?qt=range&q=v0.20.0..v0.21.0

    Source code(tar.gz)
    Source code(zip)
  • v0.20.0(Aug 26, 2016)

    Release 0.20.0

    Options and Commands

    Added

    • aspect: add --video-unscaled=downscale-big
    • player: add --image-display-duration option to control duration of image display (#3425)
    • vo_opengl: angle: new flag (dcomposition) to control DirectComposition

    Fixes and Minor Enhancements

    • af_lavrresample: fix error if resampler could not be recreated
    • audio: avoid missed wakeups with ab-loops
    • audio: do not apply --audio-channels if spdif passthrough is in use (#3445)
    • cache: don't use a backbuffer if the cache is as large as the file
    • command: prevent O(n^2) behaviour for playlist property
    • demux: close underlying stream if it's fully read anyway (#3456)
    • demux: fix undefined behavior with ogg metadata update (#3451)
    • player: make looping slightly more seamless
    • player: refresh very low framerate video on filter changes (#3435)
    • stream_memory: disable stream cache
    • vf_rotate: allow arbitrary rotation (#3434)
    • vo: be more trusting to estimated display FPS (#3433)
    • w32_common: use hooks to detect parent window resize
    • x11: work around mutter fullscreen issue (#2072)

    This listing is not complete. Check DOCS/client-api-changes.rst for a history of changes to the client API, and DOCS/interface-changes.rst for a history of changes to other user-visible interfaces.

    A complete changelog can be seen by running git log v0.19.0..v0.20.0 in the git repository or by visiting either https://github.com/mpv-player/mpv/compare/v0.19.0...v0.20.0 or http://git.srsfckn.biz/mpv/log/?qt=range&q=v0.19.0..v0.20.0

    Source code(tar.gz)
    Source code(zip)
  • v0.19.0(Aug 15, 2016)

    Release 0.19.0

    Build System Changes

    • build: add --htmldir option
    • build: always require atomics
    • wscript: add proper unversioned SONAME for Android

    Features

    New

    • client API: add stream_cb API for user-defined stream implementations (bumps client API version to 1.22)
    • vf_d3d11vpp: add video processor selection
    • videotoolbox: add --hwdec=videotoolbox-copy for h/w accelerated decoding with video filters
    • vo_opengl: add a tscale=linear direct implementation

    Removed

    • audio/filter: remove delay audio filter

    Options and Commands

    Added

    • command: add filename/no-ext sub-property that returns filename without extension (#3404)
    • command: add properties for HDR metadata
    • command: add replaygain information properties to track-list
    • options: add vp9 to --hwdec-codecs
    • player: add --audio-stream-silence
    • player: add --audio-wait-open
    • player: add --no-autoload-files
    • videotoolbox: add yuv420p to --videotoolbox-format

    Changed

    • options: un-restrict --audio-delay
    • use - as command-name separator everywhere
    • vo_opengl: reduce default 3dlut-size to 64x64x64 (since accuracy is improved)

    Deprecated

    • deprecate "balance" option/property (no replacement)

    Fixes and Minor Enhancements

    • Windows: don't wait for GUI thread when polling for events (#3393)
    • af_lavcac3enc: error out properly if encoding fails
    • af_volume: don't let softvol overwrite af_volume volumedb sub-option
    • ao_pulse: fix some volume control rounding issues
    • ao_wasapi: in exclusive mode, do not output multichannel by default
    • audio: add heuristic to move auto-downmixing before other filters
    • audio: show an osd bar when changing ao-volume
    • demux: make ALBUM replaygain tags optional (#3405)
    • demux_raw: fix small typo to add s16be support
    • demux_timeline: restore mkv edition switching
    • libarchive: sanitize non-UTF8 archive entries
    • macOS/vo_opengl: fix crash when glctx is NULL during init (#3360)
    • player: disable display-sync with spdif transcoding
    • player: do not cut off terminal status line if it contains newlines (#3340)
    • player: fix display-sync timing if audio resumes slowly
    • player: improve instant track switching (#3392)
    • player: improve non-hr seeking with external audio tracks
    • player: offset demuxer on start/seek properly with audio/sub delay
    • player: sync audio as well when enabling it mid-stream
    • stream/stream_bluray: display list of available titles in verbose mode
    • sub: don't potentially discard too many subtitles on seek
    • video: respect --deinterlace=auto
    • vo_direct3d: add missing header (fixes Cygwin build)
    • vo_opengl: angle: try D3D9 when D3D11 fails eglInitialize
    • vo_opengl: angle: use WARP if there are no hw adapters (makes it work on Windows 7 without hardware-accelerated graphics)
    • vo_opengl: increase 3DLUT accuracy at smaller LUT sizes
    • vo_opengl: remove the 3dlut-size npot2 restriction
    • vo_wayland: fix high CPU usage due to busy polling
    • wayland_common: clip window size to the display output size
    • wayland_common: fix crashes when switching to fullscreen before the video output is fully initialized
    • wayland_common: fix fullscreen image switching bug
    • wayland_common: prevent black bars on most non-native aspect ratios
    • wayland_common: remove untested/unusable wayland dnd code
    • win32: mpv.rc: re-add version info
    • x11: skip ICC update on every window move
    • ytdl: Error out with http_dash_segments (unsupported for now)

    This listing is not complete. Check DOCS/client-api-changes.rst for a history of changes to the client API, and DOCS/interface-changes.rst for a history of changes to other user-visible interfaces.

    A complete changelog can be seen by running git log v0.18.1..v0.19.0 in the git repository or by visiting either https://github.com/mpv-player/mpv/compare/v0.18.1...v0.19.0 or http://git.srsfckn.biz/mpv/log/?qt=range&q=v0.18.1..v0.19.0

    Source code(tar.gz)
    Source code(zip)
  • v0.18.1(Jul 10, 2016)

    Release 0.18.1

    Note: Running mpv with different versions of the FFmpeg/Libav libraries than it was compiled with is no longer supported. Even supposedly ABI-compatible versions have been a source of trouble, and it creates far too much complexity with little to no benefit, coupled with absurd and unusable FFmpeg API artifacts.

    Instead, mpv will exit with an error when such a situation is detected. This simply means that mpv needs to be rebuilt whenever FFmpeg libraries change.

    Features

    New

    • d3d: implement screenshots for --hwdec=d3d11va
    • vo_opengl: add output_size uniform to custom shader
    • vo_opengl: implement the Panasonic V-Log function (#3157)
    • vo_opengl: implement ARIB STD-B68 (HLG) HDR TRC

    Options and Commands

    Changed

    • command: pack sub image data in overlay-add command

    Deprecated

    • options: deprecate --heartbeat-cmd
    • audio: deprecate --softvol

    Removed

    • audio: drop --softvol=no and --softvol=auto (#3322)

    Fixes and Minor Enhancements

    • video: fix deinterlace filter handling on pixel format changes
    • x11: silence xdg-screensaver
    • vo_opengl: angle: update the swapchain on resize (#3301)
    • vo_opengl: error out gracefully when trying to use FBOs without FBO API
    • vd_lavc: expose mastering display side data reference peak (improves results with HDR content)
    • vo_opengl: generalize HDR tone mapping mechanism (#3293)
    • vo_opengl: don't constantly resize the output FBO
    • vo_opengl: use ringbuffer of PBOs
    • Windows: make WM_NCHITTEST simpler and more accurate
    • ao_oss: do not add an entry to audio-device-list if device file missing
    • dec_audio: fix segment boudnary switching
    • ao_lavc, vo_lavc: Migrate to new FFmpeg encoding API
    • vo_opengl: explicitly use main framebuffer when reading window content (#3284)
    • vo_xv: fix behavior with odd sizes
    • audio: insert auto-inserted filters at end of chain
    • x11: add missing FocusChangeMask (disables key repeat when losing focus while a key is down)
    • ao_coreaudio: error out when selecting invalid device
    • ad_lavc: work around misbehavior of some FFmpeg decoders like wmapro (#3297)
    • player: cut off status line on terminal width

    This listing is not complete. Check DOCS/client-api-changes.rst for a history of changes to the client API, and DOCS/interface-changes.rst for a history of changes to other user-visible interfaces.

    A complete changelog can be seen by running git log v0.18.0..v0.18.1 in the git repository or by visiting either https://github.com/mpv-player/mpv/compare/v0.18.0...v0.18.1 or http://git.srsfckn.biz/mpv/log/?qt=range&q=v0.18.0..v0.18.1

    Source code(tar.gz)
    Source code(zip)
  • v0.18.0(Jun 25, 2016)

    Release 0.18.0

    Build System Changes

    • build: Do not link to libGL for egl-drm
    • build: also use the iconv check on FreeBSD
    • build: don't install tests, only build them
    • build: re-enable encoding mode by default
    • vo_opengl: hwdec: remove build-dependency on dxva2 (#3150)
    • wscript: make at least 1 OpenGL output mandatory

    Features

    New

    • csputils: add SMPTE ST2084 support
    • demux_mkv: support Matroska webvtt (#3247)
    • demux_playlist: read directories recursively
    • stream_memory: add hex:// protocol
    • vf_crop: support opaque hardware decoding formats
    • vf_d3d11vpp: add a D3D11 video processor filter
    • vo_opengl: D3D11VA + ANGLE interop
    • vo_opengl: add an angle-es2 backend
    • vo_opengl: angle: dynamically load ANGLE
    • vo_opengl: d3d11egl: native NV12 sampling support
    • vo_opengl: enable color management on GLES
    • vo_opengl: implement HDR (SMPTE ST2084)
    • vo_opengl: implement tone mapping algorithms
    • vo_opengl: make PBOs work on GLES 3.x
    • vo_opengl: support external user hooks, enhancing the flexibility of user shaders
    • vo_opengl: vdpau interop without RGB conversion
    • wayland: implement HIDPI support

    Removed

    • vo_opengl: remove nnedi3 prescaler (replaced by user shaders)
    • vo_opengl: remove prescaling framework with superxbr prescaler (replaced by user shaders)

    Options and Commands

    Added

    • Windows: make taskbar progress indication optional (#2535)
    • af_lavcac3enc: make encoder configurable
    • command: add playlist-pos-1 property (#2828)
    • command: introduce hwdec-current and hwdec-interop properties.
    • options: add --fit-border video option (currently Windows only)
    • video: add --hwdec=auto-copy mode
    • vo_opengl: always autoselect ANGLE as backend if available
    • vo_opengl: expose performance timers as properties
    • x11: add --x11-bypass-compositor=never
    • x11: extend --x11-bypass-compositor with fs-only option (#2582)

    Changed

    • command: allow setting panscan etc. properties if no video is active
    • command: don't seek immediately when setting a-b loop while paused
    • command: if only ab-loop-b is set, loop from start of file
    • options: --geometry: center window position after applying size (#2397)
    • player: loop on end of file if ab-loop-b is unset
    • sd_add: replace --sub-ass=no with --ass-style-override=strip

    Removed

    • vo_opengl: remove non-working rgb/rgba FBO formats

    Fixes and Minor Enhancements

    • TOOLS/zsh.pl: add .f4v extension in zsh completions
    • TOOLS/zsh.pl: complete --audio-device
    • Windows: center window on original window center on resize to fit screen
    • Windows: fix size calculations for window resize (#2935)
    • Windows: fix wrong behavior with window-scale when window size exceeds screen size
    • Windows: make VOCTRL_SET_UNFS_WINDOW_SIZE resize the window around its center (#3164)
    • af_lavcac3enc: fix custom bitrates
    • ao_alsa: add more workarounds for hardware with broken drivers (e.g. ODROID-C2)
    • ao_opensles: remove 32-bit audio formats (not supported by Android)
    • cocoa: fix actual display refresh rate retrieval
    • cocoa: use displaylink without manually tracking the display id (#2392)
    • command: improve playlist* properties change notifications (#3267)
    • command: slightly nicer OSD list formatting
    • compatibility with recent FFmpeg APIs
    • d3d: fix hardware decoding of most MPEG2 things
    • d3dva: move Intel_H264_NoFGT_ClearVideo to lower priority (#3059)
    • demux_mkv: better resync behavior for broken google-created webms
    • demux_mkv: fix seeking with files that miss the first index entry
    • demux_playlist: recognize m3u8 as playlist extension (#3154)
    • input: fix parsing multiple input command prefixes
    • lcms: don't warn/error on 3dlut cache misses
    • lcms: improve black point handling (especially BT.1886)
    • macOS: handle multiple dropped files on the window (#3076)
    • player: always show the first frame in DS mode
    • player: assume video forwards timestamps jumps only with some formats (#3027)
    • player: do not update OSD all the time when paused
    • player: eagerly redraw OSD when seeking with coverart
    • player: fix use-after-free with --screenshot-directory (#3049)
    • player: force VO reconfig when unselecting video track
    • player: really start audio only once video is ready
    • sd_lavc: work around bug in older FFmpeg releases (#3109)
    • stream_cdda: enable cache by default
    • sub: fix --sub-gauss
    • vd_lavc: better hwdec wrapper decoder selection
    • vo_opengl: EGL: fix hwdec probing
    • vo_opengl: angle: avoid fullscreen FBO copy for flipping
    • vo_opengl: angle: enable DirectComposition (lowers vsync jitter)
    • vo_opengl: angle: prevent DXGI hooking Alt+Enter
    • vo_opengl: avoid outputting ultra-wide-gamut by default
    • vo_opengl: correctly disable interpolation if tscale can't be used
    • vo_opengl: fix bicubic_fast in ES mode
    • vo_opengl: fix d3d11 hardware decoding probing on Windows 7
    • vo_opengl: improve scale=oversample performance
    • vo_opengl: make the screen blue on shader errors
    • vo_opengl: partially fix 0bgr format support
    • vo_opengl: possibly update icc profile after changing options
    • vo_opengl: request core profile on X11/EGL too
    • vo_opengl: require at least ES 3.0 for float textures
    • vo_opengl: vdpau: fix certain cases of preemption recovery failures
    • vo_rpi: attempt to survive display mode changes
    • vo_rpi: fix destroying overlays (#3100)
    • vo_rpi: wait for vsync with a timeout
    • vo_sdl: fix pixel formats.
    • vo_xv: Handle incorrect size returned by Xv(Shm)CreateImage (#320)
    • wayland: correctly report display refresh rate
    • wayland: use the advertised size in fullscreen (#3021, #2657)
    • x11: tell GNOME to use dark window decorations
    • ytdl_hook: fix brightcove urls
    • ytdl_hook: just check if protocol is rtmp (#3090)
    • ytdl_hook: support multi-arc subtitles

    This listing is not complete. Check DOCS/client-api-changes.rst for a history of changes to the client API, and DOCS/interface-changes.rst for a history of changes to other user-visible interfaces.

    A complete changelog can be seen by running git log v0.17.0..v0.18.0 in the git repository or by visiting either https://github.com/mpv-player/mpv/compare/v0.17.0...v0.18.0 or https://git.srsfckn.biz/mpv/log/?qt=range&q=v0.17.0..v0.18.0

    Source code(tar.gz)
    Source code(zip)
  • v0.17.0(Apr 11, 2016)

    Release 0.17.0

    Note: The client API examples have moved to https://github.com/mpv-player/mpv-examples

    Build System Changes

    • install symbolic SVG icon
    • build: allow plain-gl build on OSX (#2980)
    • build: disable encoding mode by default (uses deprecated FFmpeg APIs)

    Features

    New

    • csputils: add DCI-P3 colorspace
    • d3d11va hwdec
    • demux: add null demuxer
    • ipc: add Windows implementation with named pipes
    • mediacodec decoder hwdec wrapper
    • vo_opengl: add dxva2 interop to angle backend
    • vo_opengl: generate 3DLUT against source and use full BT.1886 (#2815)

    Options and Commands

    Added

    • command: add cache-speed property
    • command: add keepaspect property
    • command: add video-stereo-mode property (#2994)
    • command: export canonical ffmpeg version identifier (ffmpeg-version)
    • command: export lists of all codecs (decoder-list and encoder-list)
    • osd: add italic font for osd (#3031)

    Changed

    • aspect: make video-zoom logarithmic (#3004)
    • command: export more information under track-list
    • ipc: rename --input-unix-socket to --input-ipc-server
    • vo_opengl: decrease default superxbr-edge-strength
    • vo_opengl: rename prescale to prescale-luma

    Fixes and Minor Enhancements

    • TOOLS/zsh.pl: don't complete URLs by default unless no files match (#2892)
    • ad_lavc, vd_lavc: support new Libav decoding API
    • cache: disable useless "Cache is not responding" warning (#3019)
    • demux: delay bitrate calculation on packets with unknown timestamps (#2903)
    • demux_timeline: set correct seekable flags (#2898)
    • input: accept plain text for drag and drop (#2945)
    • input: do not force double-click emulation for artificial commands (#2899)
    • lavc_conv: fix Libav srt subtitles (#2888)
    • player: add missing audio reconfig events (#2929, #2920)
    • player: add wv to list of external audio file extensions
    • player: fix --stream-dump exit code (#2848)
    • player: fix breakage when combining 3D and rotate auto-filters
    • playlist: improve shuffle algorithm (better uniformity)
    • sub: interpret "text" subtitles as srt
    • vo_opengl, osd: allow osc.lua to react faster on resizes
    • vo_opengl: GLX: try to create 3.3 core profile context (#2938)
    • vo_opengl: draw transparency checkerboard after upscaling
    • vo_opengl: fix operation without GL_ARB_texture_rg
    • vo_opengl: improve superxbr algorithm
    • vo_opengl: only open one OpenGL/DX interop handle when using dxva2 (fixes interop with AMD drivers)
    • wayland: don't set fs mode on every configure (#2817)
    • x11: do not set _NET_WM_BYPASS_COMPOSITOR by default (#2997)
    • ytdl_hook: handle optional format_note

    This listing is not complete. Check DOCS/client-api-changes.rst for a history of changes to the client API, and DOCS/interface-changes.rst for a history of changes to other user-visible interfaces.

    A complete changelog can be seen by running git log v0.16.0..v0.17.0 in the git repository or by visiting either https://github.com/mpv-player/mpv/compare/v0.16.0...v0.17.0 or http://git.srsfckn.biz/mpv/log/?qt=range&q=v0.16.0..v0.17.0

    Source code(tar.gz)
    Source code(zip)
  • v0.16.0(Feb 29, 2016)

    This release changes the license of some non-MPlayer source files to LGPL 2.1 or later.

    Build System Changes

    • build: enable vaapi under drm-only as well (issue #2808)
    • build: enable vo_opengl_cb if GL headers are present
    • build: make libavfilter mandatory
    • build: make posix_spawn optional
    • wscript: don’t install the encoding profiles with encoding disabled

    Features

    New

    • Initial Android support
    • ao: initial OpenSL ES support
    • dxva2: support HEVC Main 10
    • osc: add always-on mode and unify visibility mode (always/never/auto)
    • player: add complex filter graph support
    • rpi: add mpeg-4, vc-1 decoding support
    • stream_dvb: support frontends with multiple delivery systems (e.g. DVB-C/DVB-T combo cards)
    • vo_opengl: 10 bit support with ANGLE
    • vo_opengl: add KMS/DRM VAAPI hardware decoding interop
    • vo_opengl: dxinterop: add dxva2 passthrough
    • vo_rpi: add geometry handling (--geometry, --autofit, fullscreen switching, etc.)
    • vo_x11: add 16bpp support

    Options and Commands

    Added

    • --lavfi-complex option for complex filter graphs
    • audio: change downmix behavior, add --audio-normalize-downmix
    • command: add vf-command and af-command commands
    • player: add --external-file option
    • vo_opengl: add interpolation-threshold sub-option

    Changed

    • audio: change --audio-channels default back to stereo
    • audio: remove default preference for libdcadec (decoder was merged with FFmpeg)
    • command: always allow setting volume/mute properties
    • command: show original aspect in video-aspect property too
    • input: ignore --input-cursor for events injected by input commands (issue #2750)
    • options: set fs=yes by default on RPI, and change RPI defaults handling
    • sub: implement "sub-seek 0" (issue #2791)
    • vo_opengl: default scaler-resizes-only sub-option to yes

    Fixes and Minor Enhancements

    • OS X/cocoa: fix charcode retrieving for accented characters
    • TOOLS/lua/ao-null-reload.lua: send ao-reload on audio-device-list change (issue #2738)
    • TOOLS/lua/autoload.lua: remove the extension prior to sort
    • Windows: fix dropping URIs (issue #2782)
    • af_lavrresample: prevent channels from being dropped, e.g. when going 7.1 -> 7.1(wide) and similar cases
    • ao_coreaudio: fix 7.1(rear) channel mapping
    • ao_openal: wipe out global context on init error (PR #2719)
    • ao_wasapi: avoid under-run cascade in exclusive mode
    • ao_wasapi: set buffer size to device period in exclusive mode
    • audio: fix spdif PCM fallback
    • build: add special openbsd case for iconv check (issue #2710)
    • command: fix NULL pointer deref in "video-codec" property (issue #2729)
    • command: fix track cycling logic (issue #2784)
    • demux: disable stream cache if no tracks are selected (issue #2692)
    • demux_mkv: add hack to fix opus gapless behavior
    • demux_mkv: support channel layout in VfW muxed PCM (issue #2820)
    • osc: fix runtime enable_osc(true/false)
    • player: fix initial audio sync in certain cases (issue #2770)
    • player: honor --force-window if video is selected, but inactive
    • player: never show "DS: (unavailable)"
    • player: restore old/correct --force-window behavior (issue #2825)
    • player: rewrite timeline/ordered chapter support
    • vaapi: fix compilation on older FFmpeg/Libav (issue #2737)
    • vdpau: force driver to report preemption early
    • video: don't wait for last video frame in the normal case (issue #2745)
    • video: fix coverart switching
    • video: slightly improve video stream switching
    • vo_opengl: add precision qualifier to usampler2D on ANGLE (issue #2761)
    • vo_opengl: default to rgba16f FBOs on ANGLE
    • vo_opengl: don't use normalized coords for debanding rectangle textures (issue #2831)
    • vo_opengl: dxinterop: fix compatibility issue with Vista
    • vo_opengl: pass the correct target to deband functions with Apple hwdec interop
    • vo_opengl: rename custom shader entrypoint from sample to sample_pixel (issue #2733)
    • x11: get current XRandR screen configuration instead of polling for new screens, too

    This listing is not complete. Check DOCS/client-api-changes.rst for a history of changes to the client API. A complete changelog can be seen by running git log v0.15.0..v0.16.0 in the git repository or by visiting either https://github.com/mpv-player/mpv/compare/v0.15.0...v0.16.0 or http://git.srsfckn.biz/mpv/log/?qt=range&q=v0.15.0..v0.16.0

    Source code(tar.gz)
    Source code(zip)
  • v0.15.0(Jan 18, 2016)

    Build System Changes

    • OS X bundle: remove git sha from the Info.plist version (issue #2677)
    • add "lua51" ("51obsd") to list of possible lua names
    • add option to customize config files system path (issue #2704)

    Features

    New

    • vo_opengl: implement support for transparent video display on OS X (alpha=yes suboption)
    • vo_opengl: use a checkerboard pattern as background for transparent video by default

    Options and Commands

    Added

    • add --audio-file-paths (issue #2632)
    • player, stream_dvb: implement dvb-channel-name property, add switch binding

    Changed

    • vf_stereo3d: add alternating modes
    • vo_opengl: disable pbo by default for opengl-hq due to driver problems
    • vf_yadif: change defaults (issue #2539)
    • command: change heuristic for files with 1 chapter (issue #2550)
    • demux_mkv: adjust subtitle preroll defaults
    • exclude 360 from --video-rotate range (issue #2647)
    • osd: make osd-width/height properties watchable

    Fixes and Minor Enhancements

    • ao_pulse: check for sample rate bounds, attempt fallback (issue #2654)
    • ao_wasapi: remove volume "restore" on exit
    • demux_cue: better error resilience
    • mixer: fix volume initialization with --af=volume
    • mpv.desktop: add audio/mp4 mime type
    • player: detect audio PTS jumps, make video PTS heuristic less aggressive
    • player: make watch later/resume work when "playing" directories
    • player: reset playback abort when reloading a file (issue #2568)
    • recognize frame sequenced 3D Matroska video
    • stream_dvb: fix channel switching
    • vaapi: add VP9 profile (requires VA-API 0.38.1 or newer)
    • vo_opengl: dxinterop: prevent crash after lost device
    • vo_opengl: enable brightness/contrast controls for RGB
    • vo_opengl: fix operation on GLES 2.0
    • vo_opengl: fix operation on GLSL versions earlier than 1.30
    • vo_opengl: flip screenshot image if backend uses flipped rendering (issue #2635)
    • vo_opengl: reset nnedi3 weights properly (issue #2661)
    • vo_rpi: handle rotation
    • vo_rpi: work around firmware oddness leading to incorrect video rect
    • windows: fix fd://
    • ytdl: Include Referer header as well
    • TOOLS/zsh.pl: add .opus extension in zsh completions

    This listing is not complete. Check DOCS/client-api-changes.rst for a history of changes to the client API. A complete changelog can be seen by running git log v0.14.0..v0.15.0 in the git repository or by visiting either https://github.com/mpv-player/mpv/compare/v0.14.0...v0.15.0 or http://git.srsfckn.biz/mpv/log/?qt=range&q=v0.14.0..v0.15.0

    Source code(tar.gz)
    Source code(zip)
  • v0.14.0(Dec 11, 2015)

    Build System Changes

    • build: install scalable svg icon as well
    • vo_opengl: require --enable-gpl3 for nnedi
    • win32: enable internal pthreads wrapper by default

    Features

    New

    • vo_opengl: add experimental dxinterop backend (renders with OpenGL, displays through Direct3D; broken with Intel drivers)
    • vo_opengl: add initial ANGLE support
    • windows: implement icc-profile-auto
    • windows: support taskbar button progress indicator (issue #2399)

    Removed

    • Windows XP support
    • demux: remove old subtitle parser (FFmpeg users are unaffected; Libav loses support for some minor formats)
    • demux_libass: remove this demuxer (libavformat takes its place)
    • stream: drop old Linux PVR support

    Options and Commands

    Added

    • command, vo: add estimated-display-fps property
    • command: add vsync-ratio property
    • command: export some per-video-frame information (issue #2444)
    • vo_opengl: make LOOKUP_TEXTURE_SIZE configurable
    • windows: add option to set VO MMCSS profile

    Changed

    • --sub-fix-timing now applies to ASS subtitles as well
    • command: rename vo-missed-frame-count property to vo-delayed-frame-count
    • input.conf: add default bindings for changing window scale (issue #2500)
    • videotoolbox: make decoder format customizable
    • vo_opengl: disable interpolation without display-sync
    • vo_opengl: make tscale=mitchell:tscale-clamp the default
    • vo_rpi: add an option to disable OSD

    Fixes and Minor Enhancements

    • af_lavrresample: clamp float output to range
    • ao: disambiguate default device list entries
    • ao_alsa: filter audio device list
    • ao_alsa: list bidirectional devices too
    • ao_openal: accommodate more sample formats (issue #2494)
    • ao_openal: fix virtual speaker positioning
    • ao_wasapi: only report per-app volume in shared mode
    • ao_wasapi: work around DTS passthrough failure
    • build: make vaapi-wayland depend on gl-wayland (issue #2476)
    • demux: fix seeking in .ts
    • demux_lavf: mark ASS tracks as always UTF-8
    • demux_mkv: fix incremental indexing with single-keyframe files (issue #2498)
    • drm: fix setting up connectors
    • dxva2: reject 10 bit HEVC (issue #2516)
    • player: replace mistimed-frame-count with vsync-ratio on status line
    • sd_ass: fix secondary subtitle mode
    • various display-sync improvements
    • vo_opengl: enable NNEDI3 prescaler on OpenGL ES 3.0
    • vo_opengl: enable colormatrix even for RGB input
    • vo_opengl: fix backend autoprobing, attempt to improve GLX vs. EGL backend detection
    • vo_opengl: fix backend=x11 on Intel
    • vo_opengl: fix issues with some obscure pixel formats (e.g. rgb555)
    • vo_opengl: fix precision loss of fruit dithering matrix
    • vo_opengl: force dumb mode if RG textures are not available
    • vo_opengl: improve boundary check for polar filters
    • vo_opengl: various GLES compatibility improvements
    • vo_opengl: win32: test for exclusive mode
    • vo_opengl_cb: do not block on flipping when redrawing
    • vo_rpi: set aspect ratio
    • win32: fix console output with raw stdio functions
    • windows: try to avoid detection as exclusive fullscreen window (issue #2177)
    • x11: request bypassing compositor (issue #2502)

    This listing is not complete. Check DOCS/client-api-changes.rst for a history of changes to the client API. A complete changelog can be seen by running git log v0.13.0..v0.14.0 in the git repository or by visiting either https://github.com/mpv-player/mpv/compare/v0.13.0...v0.14.0 or http://git.srsfckn.biz/mpv/log/?qt=range&q=v0.13.0..v0.14.0

    Source code(tar.gz)
    Source code(zip)
    mpv_0.14.0_mac.tar.bz2(11.37 MB)
Free and open-source media player written in C++

Liquid Media Player Free and open-source media player written in C++. Currently in development. Build Guide Windows Install the MSYS2 Building Platfor

Arrow Interactive 4 Sep 20, 2022
Hack to allow live streaming from wyze cameras to vlc or mpv on your desktop.

Wyze Cam Live Streaming This is a hack to allow live streaming from a wyze cam on your local network. Installation - New! The simplest fix for wyze ev

null 84 Oct 25, 2022
mpv to vlc converter (for anilabx-lite-windows)

mpv-to-vlc Simple CPP project, created for AniLabX-Lite (requested by @themrlokopoff) Compiling Open project in Visual Studio Select "Release" version

raywave's junk projects 3 Aug 18, 2021
TIP (translate it, please) is a plugin for VLC media player that helps you to study languages by watching videos.

vlc-tip-plugin TIP (translate it, please) is a plugin for VLC media player that helps you to study languages by watching videos. Features The plugin a

Aleksey Koltakov 43 Oct 11, 2022
Jellyfin Desktop Client based on Plex Media Player

Desktop client using jellyfin-web with embedded MPV player. Supports Windows, Mac OS, and Linux. Media plays within the same window using the jellyfin-web interface unlike Jellyfin Desktop. Supports audio passthrough. Based on Plex Media Player.

Jellyfin 1.2k Nov 18, 2022
A clone of Media Player Classic reimplemented in Qt.

Media Player Classic Qute Theater A clone of Media Player Classic reimplemented in Qt. Media Player Classic Home Cinema (mpc-hc) is considered by many

Media Player Classic Qute Theater 136 Nov 13, 2022
theora-player is an embeddable theora video player C++ library based on the libtheora sample. It has no audio support at this moment.

theora-player Description theora-player is an embeddable theora video player C++ library based on the libtheora sample. It has no audio support at thi

Fire Falcom 2 Jun 18, 2022
media server based on c++11, support webrtc/rtmp/httpflv/websocket flv

cpp_media_server A media server is writen by C++11, and the network io is writen by Boost.Asio. It support rtmp/httpflv/websocket(flv)/webrtc. preinst

Alex.CR 139 Jun 30, 2022
Smartstreaming is a high-performance and scalable streaming media server.

1. introduction Smartstreaming is a high-performance and scalable streaming media server. 2. design | io | Coroutine | | transport | tcp/udp/srt/quic

null 2 Jan 7, 2022
Official repository of the ISO Base Media File Format Reference Software

ISO Base Media File Format (ISOBMFF) This repository is the official repository for the ISO Base Media File Format Reference Software. The ISO base me

null 84 Nov 15, 2022
An Open Source PSVita/TV MP4 player with 1080p playback and subtitle support

Vita-Media-Player An Open Source PSVita/TV MP4 player with 1080p playback and subtitle support 1080i output supported on the PSTV natively and on the

Jaylon Gowie 47 Nov 17, 2022
Video player for 3ds

Video player for 3DS Patch note v1.0.1 Added allow skip frames option v1.0.0 Initial release Summary Video player for 3DS Performance 256x144(144p)@30

Core 2 Extreme 123 Nov 8, 2022
A simple but powerful multimedia player library designed for Qt Quick.

QtMediaPlayer A simple but powerful multimedia player library designed for Qt Quick. Features Full-featured multimedia player Cross-platform: support

Yuhang Zhao 15 Nov 11, 2022
GB Studio Extended Nominal Player Adaptation/Interface

gbsenpai gbsenpai - GB Studio Extended Nominal Player Adaptation/Interface - is a project to port the GB Studio player to additional, non-GB/GBC platf

Adrian Siekierka 71 Oct 24, 2022
Yakuza Arcade Machine Player - play Virtua Fighter 5: Final Showdown on PC, using Yakuza 6 files.

Yakuza Arcade Machines Player Yakuza Arcade Machines Player is a launcher that allows you to run Virtua Fighter 5: Final Showdown, standalone and nati

Silent 16 Sep 23, 2022
🤟Super fast H.264/H.265 FLV player

??Super fast H.264/H.265 FLV player

Eros Zhao 1.2k Nov 9, 2022
simple mp4 player based on rockchip rv1109 platform

mp4player RV1109平台上实现一个简单的 mp4 播放器,主要是本人使用的开发板QT无法播放mp4,应该是没有编译qst所致,因而想利用rockchip平台自有的 功能实现一个简单的播放器。 base目录包含一些基础框架实现,包含信号,线程,时间等,线程和消息泵的实现非常非常简单,因而不

null 9 Jul 17, 2022
Implement a universal video player based on FFmpeg

qiaopcmusic 实现一个万能视频播放器 添加依赖方式: To get a Git project into your build: Step 1. Add the JitPack repository to your build file Add it in your root build.

null 6 Oct 15, 2021
FFmpeg powered audio player in node.js

sange FFmpeg powered audio player in node.js prerequisites node.js cmake sudo apt install cmake c++ compiler sudo apt install g++ gcc ffmpeg sudo apt

ilikdoge 8 Sep 23, 2022