]> git.sesse.net Git - ffmpeg/commitdiff
ffmpeg_vdpau: Ignore decoder's max supported level
authorPhilip Langdale <philipl@overt.org>
Wed, 24 Jun 2015 03:37:08 +0000 (20:37 -0700)
committerPhilip Langdale <philipl@overt.org>
Sun, 16 Aug 2015 22:02:33 +0000 (15:02 -0700)
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.

ffmpeg_vdpau.c
libavcodec/avcodec.h

index b05e557613e2a7545066396e32f9e63c06b83191..92a98eabe8c18288b80e52d5167971653f5c06b7 100644 (file)
@@ -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);
index 4222db693999ab600b6f7223ec189f30656051e1..f09d8f4a6b072f87d79eba6ce604cb411078630d 100644 (file)
@@ -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)