aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilip Langdale <philipl@overt.org>2015-06-23 20:37:08 -0700
committerPhilip Langdale <philipl@overt.org>2015-08-16 15:02:33 -0700
commitd3eb317b862c3f5653f0ae8dfcb22edf1713ab5b (patch)
treecf1852ab09d2be9c0d25c2be339cf9eaae1d54b7
parentd90fbde06a800d151c420ca32e4e0a015b9076f9 (diff)
downloadffmpeg-d3eb317b862c3f5653f0ae8dfcb22edf1713ab5b.tar.gz
ffmpeg_vdpau: Ignore decoder's max supported level
The h264 decoder reports 4.1 as its maximum level, but it will decode 5.1 4K video just fine. In practice, the published level limits in vdpau do not communicate anything that's actually useful.
-rw-r--r--ffmpeg_vdpau.c3
-rw-r--r--libavcodec/avcodec.h3
2 files changed, 5 insertions, 1 deletions
diff --git a/ffmpeg_vdpau.c b/ffmpeg_vdpau.c
index b05e557613..92a98eabe8 100644
--- a/ffmpeg_vdpau.c
+++ b/ffmpeg_vdpau.c
@@ -289,7 +289,8 @@ do {
s->hwaccel_context = vdpau_ctx;
} else
- if (av_vdpau_bind_context(s, ctx->device, ctx->get_proc_address, 0))
+ if (av_vdpau_bind_context(s, ctx->device, ctx->get_proc_address,
+ AV_HWACCEL_FLAG_IGNORE_LEVEL))
goto fail;
ctx->get_information_string(&vendor);
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 4222db6939..f09d8f4a6b 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -3715,6 +3715,9 @@ typedef struct AVHWAccel {
* Hardware acceleration should be used for decoding even if the codec level
* used is unknown or higher than the maximum supported level reported by the
* hardware driver.
+ *
+ * It's generally a good idea to pass this flag unless you have a specific
+ * reason not to, as hardware tends to under-report supported levels.
*/
#define AV_HWACCEL_FLAG_IGNORE_LEVEL (1 << 0)