From e1966e4aae019b8bd13ccac462de2518d56269b2 Mon Sep 17 00:00:00 2001 From: wm4 Date: Thu, 5 Dec 2013 21:23:15 +0100 Subject: video: allow hardware decoding only for certain codecs In particular, this disables mpeg4. There are some files out there that use GMC, a usually rarely used and ineffective feature, which is not supported by most hardware decoders. In these cases the hw decoder outputs garbage, while software decoding works perfectly fine. We can't really fallback to software decoding in these cases, because we don't know that something is wrong in the first place. I can't see any advantages of hw decoding of mpeg4, so it's better to disable it. --- DOCS/man/en/options.rst | 16 ++++++++++++---- mpvcore/options.c | 2 +- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/DOCS/man/en/options.rst b/DOCS/man/en/options.rst index efe18f9eab..962f7c9019 100644 --- a/DOCS/man/en/options.rst +++ b/DOCS/man/en/options.rst @@ -1135,12 +1135,20 @@ OPTIONS The ``vaapi-copy`` function allows you to use vaapi with any VO. Because this copies the decoded video back to system RAM, it's quite inefficient. + .. note:: + + When using this switch, hardware decoding is still only done for some + codecs. See ``--hwdec-codecs`` to enable hardware decoding for more + codecs. + ``--hwdec-codecs=`` - Allow hardware decoding for a given list of codecs only. The default is the - special value ``all``, which always allows all codecs. + Allow hardware decoding for a given list of codecs only. The special value + ``all`` always allows all codecs. + + By default this is set to ``h264,vc1,wmv3``. - This is usually only needed with broken GPUs, where fallback on software - decoding does not work properly. + This is usually only needed with broken GPUs, where a codec is reported + as supported, but decoding causes more problems than it solves. .. admonition:: Example diff --git a/mpvcore/options.c b/mpvcore/options.c index ab9969c315..0f9489284f 100644 --- a/mpvcore/options.c +++ b/mpvcore/options.c @@ -851,7 +851,7 @@ const struct MPOpts mp_default_opts = { .sub_cp = "UTF-8:UTF-8-BROKEN", #endif - .hwdec_codecs = "all", + .hwdec_codecs = "h264,vc1,wmv3", .index_mode = -1, -- cgit v1.2.3