]> git.sesse.net Git - ffmpeg/commitdiff
Merge commit 'd565fef1b83b6c5f8afb32229260b79f67c68109'
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 15 Oct 2014 10:30:07 +0000 (12:30 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 15 Oct 2014 10:30:07 +0000 (12:30 +0200)
* commit 'd565fef1b83b6c5f8afb32229260b79f67c68109':
  vdpau: add AV_HWACCEL_FLAG_IGNORE_LEVEL to skip the codec level check

Conflicts:
libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
doc/APIchanges
libavcodec/avcodec.h
libavcodec/vdpau.c
libavcodec/vdpau.h
libavcodec/vdpau_internal.h
libavcodec/version.h

index 8e6d5e18881a3e9fc606424b45e12a77c9f875df..13f762d764000a7480a591528800157ef78971cd 100644 (file)
@@ -15,6 +15,9 @@ libavutil:     2014-08-09
 
 API changes, most recent first:
 
+2014-10-xx - xxxxxxx - lavc 56.4.0 - avcodec.h
+  Add AV_HWACCEL_FLAG_IGNORE_LEVEL flag to av_vdpau_bind_context().
+
 2014-10-13 - xxxxxxx - lavc 56.03.0 - avcodec.h
   Add AVCodecContext.initial_padding. Deprecate the use of AVCodecContext.delay
   for audio encoding.
index f9ab7c2da941af8d6ed5301e5598bb9b6e6d3242..27d6e55d61ea1fb5db68655388070243da017ec4 100644 (file)
@@ -3229,7 +3229,8 @@ int av_codec_get_max_lowres(const AVCodec *codec);
 struct MpegEncContext;
 
 /**
- * AVHWAccel.
+ * @defgroup lavc_hwaccel AVHWAccel
+ * @{
  */
 typedef struct AVHWAccel {
     /**
@@ -3365,6 +3366,17 @@ typedef struct AVHWAccel {
     int priv_data_size;
 } 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.
+ */
+#define AV_HWACCEL_FLAG_IGNORE_LEVEL (1 << 0)
+
+/**
+ * @}
+ */
+
 /**
  * @defgroup lavc_picture AVPicture
  *
index c3a5ca00fdd8b125786b55f21c6f1c28e5846971..41aea1c215bc7c92b2bd6f4e275e120cb160b638 100644 (file)
@@ -107,7 +107,9 @@ int ff_vdpau_common_init(AVCodecContext *avctx, VdpDecoderProfile profile,
     vdctx->device           = hwctx->device;
     vdctx->get_proc_address = hwctx->get_proc_address;
 
-    if (level < 0)
+    if (hwctx->flags & AV_HWACCEL_FLAG_IGNORE_LEVEL)
+        level = 0;
+    else if (level < 0)
         return AVERROR(ENOTSUP);
 
     status = vdctx->get_proc_address(vdctx->device,
@@ -686,7 +688,7 @@ int av_vdpau_bind_context(AVCodecContext *avctx, VdpDevice device,
 {
     VDPAUHWContext *hwctx;
 
-    if (flags != 0)
+    if (flags & ~AV_HWACCEL_FLAG_IGNORE_LEVEL)
         return AVERROR(EINVAL);
 
     if (av_reallocp(&avctx->hwaccel_context, sizeof(*hwctx)))
@@ -698,6 +700,7 @@ int av_vdpau_bind_context(AVCodecContext *avctx, VdpDevice device,
     hwctx->context.decoder  = VDP_INVALID_HANDLE;
     hwctx->device           = device;
     hwctx->get_proc_address = get_proc;
+    hwctx->flags            = flags;
     hwctx->reset            = 1;
     return 0;
 }
index a8483d77f324d216ea14aa0532ac91fd72900ae5..d686ef45dab581cd9e92990e88899665601696be 100644 (file)
@@ -162,7 +162,7 @@ void av_vdpau_hwaccel_set_render2(AVVDPAUContext *, AVVDPAU_Render2);
  * @param avctx decoding context whose get_format() callback is invoked
  * @param device VDPAU device handle to use for hardware acceleration
  * @param get_proc_address VDPAU device driver
- * @param flags for future use, must be zero
+ * @param flags zero of more OR'd AV_HWACCEL_FLAG_* flags
  *
  * @return 0 on success, an AVERROR code on failure.
  */
index 825da7dcd37b688ba943c34b9d1b803109b518f7..e1ea4306f2a18ad20b70bf8494f375e91ac70096 100644 (file)
@@ -60,6 +60,7 @@ typedef struct VDPAUHWContext {
     VdpDevice device;
     VdpGetProcAddress *get_proc_address;
     char reset;
+    unsigned char flags;
 } VDPAUHWContext;
 
 typedef struct VDPAUContext {
index 30ce7947fc2c2800665a9f82b0731d934c30e9f1..5532a57f4db7ae6b20d56bba47697446c4b2476b 100644 (file)
@@ -29,7 +29,7 @@
 #include "libavutil/version.h"
 
 #define LIBAVCODEC_VERSION_MAJOR 56
-#define LIBAVCODEC_VERSION_MINOR  5
+#define LIBAVCODEC_VERSION_MINOR  6
 #define LIBAVCODEC_VERSION_MICRO 100
 
 #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \