summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavcodec/amfenc.c12
-rw-r--r--libavcodec/amfenc.h3
-rw-r--r--libavcodec/amfenc_h264.c1
-rw-r--r--libavcodec/amfenc_hevc.c1
4 files changed, 17 insertions, 0 deletions
diff --git a/libavcodec/amfenc.c b/libavcodec/amfenc.c
index da0652943d..e234cfd354 100644
--- a/libavcodec/amfenc.c
+++ b/libavcodec/amfenc.c
@@ -782,3 +782,15 @@ int ff_amf_receive_packet(AVCodecContext *avctx, AVPacket *avpkt)
}
return ret;
}
+
+const AVCodecHWConfigInternal *const ff_amfenc_hw_configs[] = {
+#if CONFIG_D3D11VA
+ HW_CONFIG_ENCODER_FRAMES(D3D11, D3D11VA),
+ HW_CONFIG_ENCODER_DEVICE(NONE, D3D11VA),
+#endif
+#if CONFIG_DXVA2
+ HW_CONFIG_ENCODER_FRAMES(DXVA2_VLD, DXVA2),
+ HW_CONFIG_ENCODER_DEVICE(NONE, DXVA2),
+#endif
+ NULL,
+};
diff --git a/libavcodec/amfenc.h b/libavcodec/amfenc.h
index 80658c6b2a..358b2ef778 100644
--- a/libavcodec/amfenc.h
+++ b/libavcodec/amfenc.h
@@ -27,6 +27,7 @@
#include "libavutil/fifo.h"
#include "avcodec.h"
+#include "hwconfig.h"
/**
@@ -117,6 +118,8 @@ typedef struct AmfContext {
int tier;
} AmfContext;
+extern const AVCodecHWConfigInternal *const ff_amfenc_hw_configs[];
+
/**
* Common encoder initization function
*/
diff --git a/libavcodec/amfenc_h264.c b/libavcodec/amfenc_h264.c
index 7a8029f3b7..622ee85946 100644
--- a/libavcodec/amfenc_h264.c
+++ b/libavcodec/amfenc_h264.c
@@ -392,4 +392,5 @@ AVCodec ff_h264_amf_encoder = {
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
.pix_fmts = ff_amf_pix_fmts,
.wrapper_name = "amf",
+ .hw_configs = ff_amfenc_hw_configs,
};
diff --git a/libavcodec/amfenc_hevc.c b/libavcodec/amfenc_hevc.c
index fa12a3a3f6..bb224c5fec 100644
--- a/libavcodec/amfenc_hevc.c
+++ b/libavcodec/amfenc_hevc.c
@@ -322,4 +322,5 @@ AVCodec ff_hevc_amf_encoder = {
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
.pix_fmts = ff_amf_pix_fmts,
.wrapper_name = "amf",
+ .hw_configs = ff_amfenc_hw_configs,
};