Git Product home page Git Product logo

Comments (5)

 avatar commented on May 18, 2024

These messages are harmless.

Explanation: you're probably using Libav, and that doesn't support these pixel formats. Also, the video you're playing is 10 bit, which is not natively supported by vdpau. So the video filter chain tries to convert it to a supported format. It does so by trying higher quality formats to lower quality formats. Formats like 444p14le are naturally included in the list of attempted formats, because it's obviously higher quality than 420p8 (aka yv12), and if vf_scale finds that this format is not supported, it will cause this warning about unsupported pixel formats (even if the format would actually not be used).

But I agree that it shouldn't print these useless warnings. I'll think about what's the best way to silence them.

from mpv.

sutol avatar sutol commented on May 18, 2024

As I have seen the (less verbose) error message for a long time while the files play seemingly fine, I figured it was harmless, but I never found an explanation for it. I mainly opened the issue to find out what's going on.
So when vdpau/x11/xv play a 10bit video and try to convert it, is there any difference in quality compared to opengl, even if unnoticeable? Or is it completely transparent?

from mpv.

 avatar commented on May 18, 2024

So when vdpau/x11/xv play a 10bit video and try to convert it, is there any difference in quality compared to opengl, even if unnoticeable?

Yes, there will be a difference. I'm not sure how noticable it is in general. And even with yv12 there will be a difference, because everything does YUV->RGB conversion slightly differently.

With vdpau/xv, libswscale will be used to convert 10 bit to 8 bit. I think this uses dithering by default, although I'm not quite sure.

With --vo=opengl, the conversion is done within a shader. Default settings don't use dithering (they just cut off the extra precision), while --vo=opengl-hq does. Also, there's some chance that --vo=opengl will be slightly faster than the other outputs, because the conversion is done on the GPU. Not quite sure about that, though, it probably depends.

With --vo=x11, all software conversion has to be done by libswscale. And it uses the fastest (lowest quality) libswscale settings to do that. The quality is probably the worst of all VOs. It shouldn't be actually used, it's just a fallback.

Dithering is quite visible if you take a screenshot of the mpv window with an external tool (not mpv's builtin screenshot function), and turn up the gamma or brightness. You see patterns where you'd normally see banding.

from mpv.

 avatar commented on May 18, 2024

I just disabled the error messages.

This was actually caused by vf_screenshot. You don't need vf_screenshot to take screenshots, because all VOs support taking screenshots natively. In fact, vf_screenshot is completely unused now, because VO screenshot support is preferred over the filter.

from mpv.

sutol avatar sutol commented on May 18, 2024

I see, thanks for the explanation.

from mpv.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.