From patchwork Wed Jan 12 22:49: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: 33282 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp5047249iog; Wed, 12 Jan 2022 14:50:15 -0800 (PST) X-Google-Smtp-Source: ABdhPJxmvDkp56fUInodIHsBfpZWCTxaZBEME+knO5UF4SNe8QqUlNAs01mf60usQMQPN3J6w90H X-Received: by 2002:a17:906:15d5:: with SMTP id l21mr1461727ejd.287.1642027815161; Wed, 12 Jan 2022 14:50:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642027815; cv=none; d=google.com; s=arc-20160816; b=F0pgET9od57zMU6C5ycfz/8AoFGH7QwAVI+j0xeYh2msvWtIeKyaWDrPpg4sOMbo87 ZnYxqrz3gpjShMhzODd8jDlIRNrQE4sTDJYO/+WlLjF7ZWBcjJR77CN9l4/R0Zyhbrrm Uj9Wg8zCyWMlzlB9a+gHnRR+1lQzQ2bzlD9dH8QqeyuGN24+WRo2MzR7BxubkAAKxue0 4BNagv1t3c+H5Ok7mT4G3/L0GgZT44Fldeuu8gwaekV66+9evWWJo4zj8Rffe5lu6XKn 7Z3sLyAiegp1sYYA3nvsmEKQhZJp9YaMUjGIbkLg8sRoINB6RY2syi3iDiqfeUBYUWLL iZow== 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=80pLuZfIcSnJfOx3JKBi0p4sIEopvpgqAne80pwuEMY=; b=Zg7uLQXEwIk78ecXHRoOzBxu63olt4Wk0R1T5fJ+0gGZve17uqgcCj9W08Uza2PbTR CWK0qQ7T3eDxVq0Lr5tJLc7yJrDgs9ZqUvLaVzXNSWRL614OpYJerKrmQV97mAgcZsVP UnERf2iZ1yYsVoFqWtoDeix7f06uM/UlqBXRQ+lH8OhiwEmaZTDO8iz55OHaMca/l4jS dpbp++nlkahhtBduQ5bEtMI+JNA6WdYxeCjzg97ZLb/blrKQ4kn69wDceETWzS6wD/tt 6fxxryfOCL3eLynjs8iR0Y2aArCF7lWXj+nkIMBFeatVzW5eSmgU2N38aPW2twGIU86R CHUg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@xaymar.com header.s=2021 header.b=GI6lE7Xq; 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 g11si682245edb.410.2022.01.12.14.50.14; Wed, 12 Jan 2022 14:50:15 -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=GI6lE7Xq; 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 1519D68AEBC; Thu, 13 Jan 2022 00:49:53 +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 A570A68A7ED for ; Thu, 13 Jan 2022 00:49:44 +0200 (EET) Received: from localhost.localdomain (unknown [IPv6:2a02:8106:c:6a00:ccbc:cf2c:5bb9:d3cf]) by mail.xaymar.com (Postfix) with ESMTPSA id 0523D61345; Wed, 12 Jan 2022 23:49:43 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=xaymar.com; s=2021; t=1642027784; bh=4p3Ej1hUausvEsAon47ZrorCzvVIb8v7AAg1QTABrVE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GI6lE7Xq+LEbjzSTgPjqo3wk2vSW9ZazUJATt14u+fjhqtubSpXk/HbHK9buig41U lvRMHJzNkGSeS2jWlnwDdRBBF2mzGdiKYm/j6tsY+2o9lH4PJsQgXnxBf40dcBcslt L16ABB8kod7G86hLJksSQ6LPuT8jrr9mb9KmgGYrAoAboBa5u76XfOMSbMXioMQ5lJ zIvXfy0VD1yWOp5OyQo1w+dW7pRKWeztG9rzahduYdwXZY/ObpZoroTznKW7tbdmaV u0RIUpQQ8jisjIIYJhU2IZ2+tlg1QO5y57ubFOasEYIfaQdDERPfu0lNwy/Zs6bxC6 pZ8Xr2QytGuFOtnWdt9xljqleW8wShRboxD0G3bUughkrND+o1VWhTGIyYW2jl0gNA UWGaUchPEOQzPR8d4Wb3VPKLy6q9WrCbBCpePLMgZxjYnENLl59UATG3+LBUZNoM+N AgOPIKEo4RibGWWl1jVKH7W5t85BF9VHmbooDK8yGHUp6GangjO/Dxb6yKWpxrj6UE Xdhe97e1DG09JjVBnmeswf3RzIOr1KAN4uWOycjSu3Kj9Vgji4XyL5n3mfrC5c2Tcw 0AAC/AjZFhxBh+xO9tHoP7prk3+1S/5M46Wrjvdt00KQoI6SR9lEuXBAL752NIW02N 0on7SO7IA+Wb2sfzltXk= From: Michael Fabian 'Xaymar' Dirks To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 23:49:22 +0100 Message-Id: <495c5779c25bb0e2058abf161eb3ad4baf8760e6.1642027745.git.michael.dirks@xaymar.com> X-Mailer: git-send-email 2.34.1.windows.1 In-Reply-To: <96117e46dbb4032a02d92c178ea4cc979203a0d3.1642027745.git.michael.dirks@xaymar.com> References: <96117e46dbb4032a02d92c178ea4cc979203a0d3.1642027745.git.michael.dirks@xaymar.com> 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: r9IwKsYJk2iC 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" },