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