From patchwork Wed Jan 12 23:17:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Fabian 'Xaymar' Dirks X-Patchwork-Id: 33287 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp5065284iog; Wed, 12 Jan 2022 15:18:26 -0800 (PST) X-Google-Smtp-Source: ABdhPJwX7cYDxSxK0mcopYglEz0aIxNFhyDiStQeqPcK6alY+kqizhXYmu23FB7bCer8peIWkhaw X-Received: by 2002:aa7:cada:: with SMTP id l26mr1785086edt.376.1642029505830; Wed, 12 Jan 2022 15:18:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642029505; cv=none; d=google.com; s=arc-20160816; b=HkBzYkOhbrMur8+9JoOWvxLXQKUxPRdf0Hcu5TMWMe1y74tc6rSPRvwfLaJWouUUc+ NryTkwBsF2tab3dzj9mXhFwN/+unKVPyQiTkUK5zexTw9DzwzRXJ222AEU97VrFW8K5R ymAJ/VLiryMhLxvq/B3MFwD267nb1pQdVS4A+T6em9YTfBifOJRKotb+kOJe5T5HQ0C/ MLnbkWmOGtF4tjR45763H1XPMZyOC2wOpmHsrOnPTuWxJ6v2pPqqht08lDgvjmeXQR0I oijYnEN8eQ4lPhtkN3F3Rzl/DcW1pETjHM3p0tO7x2Yg5T6+BsmriwhgVQcS0SIPRXU3 UHbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=yW2zcScpUMa9UFPVAQ6Fvb8bN6zgx9BzGD7xwJv4Icc=; b=ZSldFa8/ndFm7xSThnRQM50yOApy2Y7hsf4IU6ZuwlIP147YwZbiJio/B0glRw3JNW q2Z5XYoKerp8guHv/IUtFwvTStqZ8h3k8QSFTp//mMmlnqH4Otl2UmhrOncZuZV4wU/Q UMhI/q86Bz1XnYql/giMDjdtN9jTFV6U75G8NwvyM9a3kyAANH75f+KYQqD4+63S8GSQ ncLLp0oAQWRhtwQ9QXYMGIzu9L1uHo76X9LwLe1uLT3kQTJWi3PPMDq6hqIogB2rYXkh 0p9iAHNZAH+QPIGePzt08qFFvrwq8emLjBT88e3r3UG4dQJaTPT8CmVPTTSKPKzgNxFz mZNA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@xaymar.com header.s=2021 header.b=DXxtVCCy; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=xaymar.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id cr12si637660ejc.707.2022.01.12.15.18.25; Wed, 12 Jan 2022 15:18:25 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@xaymar.com header.s=2021 header.b=DXxtVCCy; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=xaymar.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D864368A636; Thu, 13 Jan 2022 01:17:59 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail.xaymar.com (xaymar.com [95.217.118.166]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 737BC68AD96 for ; Thu, 13 Jan 2022 01:17:51 +0200 (EET) Received: from localhost.localdomain (unknown [IPv6:2a02:8106:c:6a00:ccbc:cf2c:5bb9:d3cf]) by mail.xaymar.com (Postfix) with ESMTPSA id B5B496133A; Thu, 13 Jan 2022 00:17:50 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=xaymar.com; s=2021; t=1642029470; bh=ejOV3RaNmTija3F0Yt/miPpdXJ0+3uPvo1W5xU8iqSM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DXxtVCCyuS3xygn2Xiw9P8GV10bCqVI7eiVUyjmpeCmonrglxIcJS5TEUBY4Y0mct vpM6i0xuEQJOENmLzdGlhTnHjITcqR5UVBNYj6XhEhpgqgWu83V4Hal1CVNrTVzmjf V2j4sAWxxkr2EAns7+N/BxSOJ05YGl0YIuSk5apajzxj9btACFOwHMnTrq1WJsx6Sr apT/vCBADYpPg39+XpxDUQFWeNZe42d1ylSgSeca/pdjm0XYPWCgdhB7qVHjIM4Yj9 T2/TfxbU+flW6U2nlZEEKMkhNQtaE8x5vEdDcPtmm0YcmrwemdDYxuIQT87ozxD1MO 5xWMd6B9KuawWGhh0kwHFlg8LzyTD28XgdzUz4CcM3Zsy4SqyiD+rm8c736+KlGbOs iBpCkTrm4pgFg8Qb91+Sf5UhNU8h5Sn6urqMdPxXPfFXnPCyVY7MHGclxzM4PPUEXo cGKOKo1g8w8CmV3YWhX13X6TFFFqKHbWK0DhgovSWtxcNTlcOp2l10EWQzfkEJaEnL 1L6ioJPJiylLFSAYQb+UbQKSp0tyIs4WUIIR6X5nlu0iJnPdMMVdRpdOA1JJBz9jjd MFO398+TgBG4x2VVwd+i3OS8XG9TmnPJW/FKJZf4XG0APcISLrFY6CIcnQLPxlIS0L uNG0BnPijRwJu01TiV/A= From: Michael Fabian 'Xaymar' Dirks To: ffmpeg-devel@ffmpeg.org Date: Thu, 13 Jan 2022 00:17:22 +0100 Message-Id: X-Mailer: git-send-email 2.34.1.windows.1 In-Reply-To: References: MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/5] avcodec/amfenc: Add the new usage presets X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Michael Fabian 'Xaymar' Dirks Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: DkdNRTwFzKBi From: Michael Fabian 'Xaymar' Dirks These enable some new features that otherwise require another AMF component to be loaded. Requires AMF SDK 1.4.23 or newer. --- libavcodec/amfenc_h264.c | 12 +++++++----- libavcodec/amfenc_hevc.c | 6 ++++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/libavcodec/amfenc_h264.c b/libavcodec/amfenc_h264.c index 009378e9f1..afac97a968 100644 --- a/libavcodec/amfenc_h264.c +++ b/libavcodec/amfenc_h264.c @@ -28,11 +28,13 @@ static const AVOption options[] = { // Static /// Usage - { "usage", "Encoder Usage", OFFSET(usage), AV_OPT_TYPE_INT, { .i64 = AMF_VIDEO_ENCODER_USAGE_TRANSCONDING }, AMF_VIDEO_ENCODER_USAGE_TRANSCONDING, AMF_VIDEO_ENCODER_USAGE_WEBCAM, VE, "usage" }, - { "transcoding", "Generic Transcoding", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_USAGE_TRANSCONDING }, 0, 0, VE, "usage" }, - { "ultralowlatency","", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_USAGE_ULTRA_LOW_LATENCY }, 0, 0, VE, "usage" }, - { "lowlatency", "", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_USAGE_LOW_LATENCY }, 0, 0, VE, "usage" }, - { "webcam", "Webcam", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_USAGE_WEBCAM }, 0, 0, VE, "usage" }, + { "usage", "Encoder Usage", OFFSET(usage), AV_OPT_TYPE_INT, { .i64 = AMF_VIDEO_ENCODER_USAGE_TRANSCODING }, AMF_VIDEO_ENCODER_USAGE_TRANSCODING, AMF_VIDEO_ENCODER_USAGE_LOW_LATENCY_HIGH_QUALITY, VE, "usage" }, + { "transcoding", "Generic Transcoding", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_USAGE_TRANSCODING }, 0, 0, VE, "usage" }, + { "ultralowlatency", "", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_USAGE_ULTRA_LOW_LATENCY }, 0, 0, VE, "usage" }, + { "lowlatency", "", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_USAGE_LOW_LATENCY }, 0, 0, VE, "usage" }, + { "webcam", "Webcam", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_USAGE_WEBCAM }, 0, 0, VE, "usage" }, + { "highquality", "", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_USAGE_HIGH_QUALITY }, 0, 0, VE, "usage" }, + { "lowlatency_highqquality", "", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_USAGE_LOW_LATENCY_HIGH_QUALITY }, 0, 0, VE, "usage" }, /// Profile, { "profile", "Profile", OFFSET(profile),AV_OPT_TYPE_INT, { .i64 = AMF_VIDEO_ENCODER_PROFILE_MAIN }, AMF_VIDEO_ENCODER_PROFILE_BASELINE, AMF_VIDEO_ENCODER_PROFILE_CONSTRAINED_HIGH, VE, "profile" }, diff --git a/libavcodec/amfenc_hevc.c b/libavcodec/amfenc_hevc.c index 900e1482b4..b7fee950f6 100644 --- a/libavcodec/amfenc_hevc.c +++ b/libavcodec/amfenc_hevc.c @@ -24,11 +24,13 @@ #define OFFSET(x) offsetof(AmfContext, x) #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM static const AVOption options[] = { - { "usage", "Set the encoding usage", OFFSET(usage), AV_OPT_TYPE_INT, { .i64 = AMF_VIDEO_ENCODER_HEVC_USAGE_TRANSCONDING }, AMF_VIDEO_ENCODER_HEVC_USAGE_TRANSCONDING, AMF_VIDEO_ENCODER_HEVC_USAGE_WEBCAM, VE, "usage" }, - { "transcoding", "", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_HEVC_USAGE_TRANSCONDING }, 0, 0, VE, "usage" }, + { "usage", "Set the encoding usage", OFFSET(usage), AV_OPT_TYPE_INT, { .i64 = AMF_VIDEO_ENCODER_HEVC_USAGE_TRANSCODING }, AMF_VIDEO_ENCODER_HEVC_USAGE_TRANSCODING, AMF_VIDEO_ENCODER_HEVC_USAGE_LOW_LATENCY_HIGH_QUALITY, VE, "usage" }, + { "transcoding", "", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_HEVC_USAGE_TRANSCODING }, 0, 0, VE, "usage" }, { "ultralowlatency","", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_HEVC_USAGE_ULTRA_LOW_LATENCY }, 0, 0, VE, "usage" }, { "lowlatency", "", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_HEVC_USAGE_LOW_LATENCY }, 0, 0, VE, "usage" }, { "webcam", "", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_HEVC_USAGE_WEBCAM }, 0, 0, VE, "usage" }, + { "highquality", "", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_HEVC_USAGE_HIGH_QUALITY }, 0, 0, VE, "usage" }, + { "lowlatency_highqquality", "", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_HEVC_USAGE_LOW_LATENCY_HIGH_QUALITY }, 0, 0, VE, "usage" }, { "profile", "Set the profile (default main)", OFFSET(profile), AV_OPT_TYPE_INT,{ .i64 = AMF_VIDEO_ENCODER_HEVC_PROFILE_MAIN }, AMF_VIDEO_ENCODER_HEVC_PROFILE_MAIN, AMF_VIDEO_ENCODER_HEVC_PROFILE_MAIN, VE, "profile" }, { "main", "", 0, AV_OPT_TYPE_CONST,{ .i64 = AMF_VIDEO_ENCODER_HEVC_PROFILE_MAIN }, 0, 0, VE, "profile" },