These encoders all accept VAAPI surfaces in a hardware frames context.
Unified · Split
| @@ -27,6 +27,11 @@ · 26 unmodified lines | ||
| 27 | 27 | #include "vaapi_encode.h" |
| 28 | 28 | #include "avcodec.h" |
| 29 | 29 | |
| 30 | +const AVCodecHWConfigInternal *ff_vaapi_encode_hw_configs[] = { | |
| 31 | + HW_CONFIG_ENCODER_FRAMES(VAAPI, VAAPI), | |
| 32 | + NULL, | |
| 33 | +}; | |
| 34 | + | |
| 30 | 35 | static const char * const picture_type_name[] = { "IDR", "I", "P", "B" }; |
| 31 | 36 | |
| 32 | 37 | static int vaapi_encode_make_packed_header(AVCodecContext *avctx, |
| @@ -31,6 +31,7 @@ · 30 unmodified lines | ||
| 31 | 31 | #include "libavutil/hwcontext_vaapi.h" |
| 32 | 32 | |
| 33 | 33 | #include "avcodec.h" |
| 34 | +#include "hwconfig.h" | |
| 34 | 35 | |
| 35 | 36 | struct VAAPIEncodeType; |
| 36 | 37 | struct VAAPIEncodePicture; |
| @@ -44,6 +45,8 @@ enum { · 7 unmodified lines | ||
| 44 | 45 | MAX_PARAM_BUFFER_SIZE = 1024, |
| 45 | 46 | }; |
| 46 | 47 | |
| 48 | +extern const AVCodecHWConfigInternal *ff_vaapi_encode_hw_configs[]; | |
| 49 | + | |
| 47 | 50 | enum { |
| 48 | 51 | PICTURE_TYPE_IDR = 0, |
| 49 | 52 | PICTURE_TYPE_I = 1, |
| @@ -1361,5 +1361,6 @@ AVCodec ff_h264_vaapi_encoder = { · 1360 unmodified lines | ||
| 1361 | 1361 | AV_PIX_FMT_VAAPI, |
| 1362 | 1362 | AV_PIX_FMT_NONE, |
| 1363 | 1363 | }, |
| 1364 | + .hw_configs = ff_vaapi_encode_hw_configs, | |
| 1364 | 1365 | .wrapper_name = "vaapi", |
| 1365 | 1366 | }; |
| @@ -1297,5 +1297,6 @@ AVCodec ff_hevc_vaapi_encoder = { · 1296 unmodified lines | ||
| 1297 | 1297 | AV_PIX_FMT_VAAPI, |
| 1298 | 1298 | AV_PIX_FMT_NONE, |
| 1299 | 1299 | }, |
| 1300 | + .hw_configs = ff_vaapi_encode_hw_configs, | |
| 1300 | 1301 | .wrapper_name = "vaapi", |
| 1301 | 1302 | }; |
| @@ -570,5 +570,6 @@ AVCodec ff_mjpeg_vaapi_encoder = { · 569 unmodified lines | ||
| 570 | 570 | AV_PIX_FMT_VAAPI, |
| 571 | 571 | AV_PIX_FMT_NONE, |
| 572 | 572 | }, |
| 573 | + .hw_configs = ff_vaapi_encode_hw_configs, | |
| 573 | 574 | .wrapper_name = "vaapi", |
| 574 | 575 | }; |
| @@ -707,5 +707,6 @@ AVCodec ff_mpeg2_vaapi_encoder = { · 706 unmodified lines | ||
| 707 | 707 | AV_PIX_FMT_VAAPI, |
| 708 | 708 | AV_PIX_FMT_NONE, |
| 709 | 709 | }, |
| 710 | + .hw_configs = ff_vaapi_encode_hw_configs, | |
| 710 | 711 | .wrapper_name = "vaapi", |
| 711 | 712 | }; |
| @@ -262,5 +262,6 @@ AVCodec ff_vp8_vaapi_encoder = { · 261 unmodified lines | ||
| 262 | 262 | AV_PIX_FMT_VAAPI, |
| 263 | 263 | AV_PIX_FMT_NONE, |
| 264 | 264 | }, |
| 265 | + .hw_configs = ff_vaapi_encode_hw_configs, | |
| 265 | 266 | .wrapper_name = "vaapi", |
| 266 | 267 | }; |
| @@ -296,5 +296,6 @@ AVCodec ff_vp9_vaapi_encoder = { · 295 unmodified lines | ||
| 296 | 296 | AV_PIX_FMT_VAAPI, |
| 297 | 297 | AV_PIX_FMT_NONE, |
| 298 | 298 | }, |
| 299 | + .hw_configs = ff_vaapi_encode_hw_configs, | |
| 299 | 300 | .wrapper_name = "vaapi", |
| 300 | 301 | }; |