On 03/01/2018 18:55, Mikhail Mironov wrote:
 From 0b90d9c0eb300099ca6845e8ba42bce881670a83 Mon Sep 17 00:00:00 2001
From: Michael Wootton <michael.woot...@amd.com>
Date: Mon, 4 Dec 2017 02:29:01 -0500
Subject: [PATCH] Add HW H.264 and HEVC encoding for AMD GPUs based on AMF SDK
  Requires AMF headers for at least version 1.4.4.1.

Signed-off-by: Mikhail Mironov <mikhail.miro...@amd.com>

Thank you a lot!

If nobody has other comments I'd fold in the hwaccel caps/.wrapper_name support in and push.

diff --git a/libavcodec/amfenc_h264.c b/libavcodec/amfenc_h264.c
index 47a057fdfa..01b0c3a562 100644
--- a/libavcodec/amfenc_h264.c
+++ b/libavcodec/amfenc_h264.c
@@ -366,7 +366,6 @@ static av_cold int amf_encode_init_h264(AVCodecContext *avctx)
 static const AVCodecDefault defaults[] = {
     { "refs",       "-1"  },
     { "aspect",     "0"   },
-//    { "sar",        "0"   },
     { "qmin",       "-1"  },
     { "qmax",       "-1"  },
     { "b",          "2M"  },
@@ -381,7 +380,7 @@ static const AVClass h264_amf_class = {
     .option = options,
     .version = LIBAVUTIL_VERSION_INT,
 };
-//TODO declare as HW encoder when available
+
 AVCodec ff_h264_amf_encoder = {
     .name           = "h264_amf",
     .long_name      = NULL_IF_CONFIG_SMALL("AMD AMF H.264 Encoder"),
@@ -394,7 +393,8 @@ AVCodec ff_h264_amf_encoder = {
     .priv_data_size = sizeof(AmfContext),
     .priv_class     = &h264_amf_class,
     .defaults       = defaults,
-    .capabilities   = AV_CODEC_CAP_DELAY,
+    .capabilities   = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_HARDWARE,
     .caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
     .pix_fmts       = ff_amf_pix_fmts,
+    .wrapper_name   = "amf",
 };
diff --git a/libavcodec/amfenc_hevc.c b/libavcodec/amfenc_hevc.c
index b014a50c9a..fc64decde3 100644
--- a/libavcodec/amfenc_hevc.c
+++ b/libavcodec/amfenc_hevc.c
@@ -301,7 +301,6 @@ static av_cold int amf_encode_init_hevc(AVCodecContext *avctx)
 static const AVCodecDefault defaults[] = {
     { "refs",       "-1"  },
     { "aspect",     "0"   },
-//    { "sar",        "0"   },
     { "b",          "2M"  },
     { "g",          "250" },
     { "slices",     "1"   },
@@ -313,7 +312,7 @@ static const AVClass hevc_amf_class = {
     .option = options,
     .version = LIBAVUTIL_VERSION_INT,
 };
-//TODO declare as HW encoder when available
+
 AVCodec ff_hevc_amf_encoder = {
     .name           = "hevc_amf",
     .long_name      = NULL_IF_CONFIG_SMALL("AMD AMF HEVC encoder"),
@@ -326,7 +325,8 @@ AVCodec ff_hevc_amf_encoder = {
     .priv_data_size = sizeof(AmfContext),
     .priv_class     = &hevc_amf_class,
     .defaults       = defaults,
-    .capabilities   = AV_CODEC_CAP_DELAY,
+    .capabilities   = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_HARDWARE,
     .caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
     .pix_fmts       = ff_amf_pix_fmts,
+    .wrapper_name   = "amf",
 };
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to