[FFmpeg-devel] [PATCH 11/13] lavu/hwcontext_vaapi: relax the requirement when using libva2 (VAAPI 1)

Xiang, Haihao haihao.xiang at intel.com
Wed Sep 6 09:00:50 EEST 2023


From: Haihao Xiang <haihao.xiang at intel.com>

With libva2, the argument for render target list to vaCreateContext() is
a hint, so we may use a dynamic frame pool.

Signed-off-by: Haihao Xiang <haihao.xiang at intel.com>
---
 doc/APIchanges              | 4 ++++
 libavutil/hwcontext_vaapi.c | 2 +-
 libavutil/hwcontext_vaapi.h | 5 +++--
 libavutil/version.h         | 2 +-
 4 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/doc/APIchanges b/doc/APIchanges
index 5fa9110c21..9e3184bc9a 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -2,6 +2,10 @@ The last version increases of all libraries were on 2023-02-09
 
 API changes, most recent first:
 
+2023-09-xx - xxxxxxxxxx - lavu 58.21.100 - hwcontext_vaapi.h
+  Modify the documentation to relax the constraint for dynamic
+  frames pool.
+
 2023-09-xx - xxxxxxxxxx - lavu 58.20.100 - hwcontext_qsv.h
   Add AVQSVFramesContext.info to support dynamic frame pools
 
diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c
index 558fed94c6..5ff24bb3ed 100644
--- a/libavutil/hwcontext_vaapi.c
+++ b/libavutil/hwcontext_vaapi.c
@@ -618,7 +618,7 @@ static int vaapi_frames_init(AVHWFramesContext *hwfc)
             }
         } else {
             // This pool allows dynamic sizing, and will not be usable as a
-            // render target.
+            // render target with libva. It can be used with libva2
             avfc->nb_surfaces = 0;
             avfc->surface_ids = NULL;
         }
diff --git a/libavutil/hwcontext_vaapi.h b/libavutil/hwcontext_vaapi.h
index 0b2e071cb3..7badf38ec4 100644
--- a/libavutil/hwcontext_vaapi.h
+++ b/libavutil/hwcontext_vaapi.h
@@ -25,9 +25,10 @@
  * @file
  * API-specific header for AV_HWDEVICE_TYPE_VAAPI.
  *
- * Dynamic frame pools are supported, but note that any pool used as a render
+ * Dynamic frame pools are supported. Note that any pool used as a render
  * target is required to be of fixed size in order to be be usable as an
- * argument to vaCreateContext().
+ * argument to vaCreateContext() with libva. When libva2 (VAAPI 1) is used,
+ * a pool used as a render target can be dynamic.
  *
  * For user-allocated pools, AVHWFramesContext.pool must return AVBufferRefs
  * with the data pointer set to a VASurfaceID.
diff --git a/libavutil/version.h b/libavutil/version.h
index 605f85cd41..f1946b780f 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -79,7 +79,7 @@
  */
 
 #define LIBAVUTIL_VERSION_MAJOR  58
-#define LIBAVUTIL_VERSION_MINOR  20
+#define LIBAVUTIL_VERSION_MINOR  21
 #define LIBAVUTIL_VERSION_MICRO 100
 
 #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
-- 
2.34.1



More information about the ffmpeg-devel mailing list