diff --git a/ffmpeg_vdpau.c b/ffmpeg_vdpau.c
index b05e557613e2a7545066396e32f9e63c06b83191..92a98eabe8c18288b80e52d5167971653f5c06b7 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 4222db693999ab600b6f7223ec189f30656051e1..f09d8f4a6b072f87d79eba6ce604cb411078630d 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)