]> git.sesse.net Git - ffmpeg/commitdiff
lavc/vaapi_encode: Add hardware config metadata
authorMark Thompson <sw@jkqxz.net>
Mon, 13 Apr 2020 15:33:17 +0000 (16:33 +0100)
committerMark Thompson <sw@jkqxz.net>
Sun, 26 Apr 2020 17:38:25 +0000 (18:38 +0100)
These encoders all accept VAAPI surfaces in a hardware frames context.

libavcodec/vaapi_encode.c
libavcodec/vaapi_encode.h
libavcodec/vaapi_encode_h264.c
libavcodec/vaapi_encode_h265.c
libavcodec/vaapi_encode_mjpeg.c
libavcodec/vaapi_encode_mpeg2.c
libavcodec/vaapi_encode_vp8.c
libavcodec/vaapi_encode_vp9.c

index 8ff720e395a66823879d673163049beaf50c93dc..f551967ad663f11b196b437fa783520b9ee09583 100644 (file)
 #include "vaapi_encode.h"
 #include "avcodec.h"
 
+const AVCodecHWConfigInternal *ff_vaapi_encode_hw_configs[] = {
+    HW_CONFIG_ENCODER_FRAMES(VAAPI, VAAPI),
+    NULL,
+};
+
 static const char * const picture_type_name[] = { "IDR", "I", "P", "B" };
 
 static int vaapi_encode_make_packed_header(AVCodecContext *avctx,
index b9a3defd72c01f93ab0b8d67a1c9e4578692cc6c..1329f6428f4c672bd390533c176f994b28e4389f 100644 (file)
@@ -31,6 +31,7 @@
 #include "libavutil/hwcontext_vaapi.h"
 
 #include "avcodec.h"
+#include "hwconfig.h"
 
 struct VAAPIEncodeType;
 struct VAAPIEncodePicture;
@@ -44,6 +45,8 @@ enum {
     MAX_PARAM_BUFFER_SIZE  = 1024,
 };
 
+extern const AVCodecHWConfigInternal *ff_vaapi_encode_hw_configs[];
+
 enum {
     PICTURE_TYPE_IDR = 0,
     PICTURE_TYPE_I   = 1,
index f4965d8b09756c012552aad3b5830f3f19e9a69b..67b1ecae1b631e68dbe4c8e7d1d9c962a1733d3b 100644 (file)
@@ -1361,5 +1361,6 @@ AVCodec ff_h264_vaapi_encoder = {
         AV_PIX_FMT_VAAPI,
         AV_PIX_FMT_NONE,
     },
+    .hw_configs     = ff_vaapi_encode_hw_configs,
     .wrapper_name   = "vaapi",
 };
index 97dc5a7e757e45cac2ff831d4df4f549e77ca0c6..e20e8cbdd037e35b16bdb717f43a5b78a8774871 100644 (file)
@@ -1297,5 +1297,6 @@ AVCodec ff_hevc_vaapi_encoder = {
         AV_PIX_FMT_VAAPI,
         AV_PIX_FMT_NONE,
     },
+    .hw_configs     = ff_vaapi_encode_hw_configs,
     .wrapper_name   = "vaapi",
 };
index bd029cc90315e1e224802b5225d86d77f3dfbac7..2b5d3bf4f9aefda65dea98e70f5f828206208c31 100644 (file)
@@ -570,5 +570,6 @@ AVCodec ff_mjpeg_vaapi_encoder = {
         AV_PIX_FMT_VAAPI,
         AV_PIX_FMT_NONE,
     },
+    .hw_configs     = ff_vaapi_encode_hw_configs,
     .wrapper_name   = "vaapi",
 };
index bac9ea1fa6fb5a658700a23c7c50088f6f973701..0398c4cd8c2ab170579c4f555d99dce7c9661850 100644 (file)
@@ -707,5 +707,6 @@ AVCodec ff_mpeg2_vaapi_encoder = {
         AV_PIX_FMT_VAAPI,
         AV_PIX_FMT_NONE,
     },
+    .hw_configs     = ff_vaapi_encode_hw_configs,
     .wrapper_name   = "vaapi",
 };
index 6e7bf9d1067013daaeb13b24bb60074ab7be510c..16cbcbd81ca80bb7bd518caa22d1a513c94904e2 100644 (file)
@@ -262,5 +262,6 @@ AVCodec ff_vp8_vaapi_encoder = {
         AV_PIX_FMT_VAAPI,
         AV_PIX_FMT_NONE,
     },
+    .hw_configs     = ff_vaapi_encode_hw_configs,
     .wrapper_name   = "vaapi",
 };
index d7f415d7042712aa13f7ba10c2c9aadf4e3c18c2..d05319ef39617d8daf3156447284755ad8b4e41d 100644 (file)
@@ -296,5 +296,6 @@ AVCodec ff_vp9_vaapi_encoder = {
         AV_PIX_FMT_VAAPI,
         AV_PIX_FMT_NONE,
     },
+    .hw_configs     = ff_vaapi_encode_hw_configs,
     .wrapper_name   = "vaapi",
 };