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

Xiang, Haihao haihao.xiang at intel.com
Wed Dec 20 09:10:48 EET 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 b68156ee94..0e36f43a91 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-12-xx - xxxxxxxxxx  - lavu 58.37.100 - hwcontext_vaapi.h
+  Modify the documentation to relax the constraint for dynamic
+  frames pool
+
 2023-12-xx - xxxxxxxxxx  - lavu 58.36.100 - hwcontext_qsv.h
   Add AVQSVFramesContext.info
 
diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c
index 29fc8bd648..628232e2b8 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..cff88ad237 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() when libva is used. 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 3b4c50e9a9..3b38f8f5da 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -79,7 +79,7 @@
  */
 
 #define LIBAVUTIL_VERSION_MAJOR  58
-#define LIBAVUTIL_VERSION_MINOR  36
+#define LIBAVUTIL_VERSION_MINOR  37
 #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