From patchwork Wed Dec 7 09:31:16 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 39639 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp415703pzb; Wed, 7 Dec 2022 01:32:59 -0800 (PST) X-Google-Smtp-Source: AA0mqf6tNgG9Js0G3tk2RD1JBubXGtaqJraxog1EG+4OYsmfjdsTFFJ3U1i0p0Cgg980jS3/XKFM X-Received: by 2002:a17:906:2d49:b0:7ae:16a9:e4d7 with SMTP id e9-20020a1709062d4900b007ae16a9e4d7mr74765394eji.574.1670405578835; Wed, 07 Dec 2022 01:32:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1670405578; cv=none; d=google.com; s=arc-20160816; b=AxWBQ+SNy3rsRr+5M7Ej0fk2s6tkEfHRWIYrlmUh3Q4k630CYG3yuN66cPRfitg5rT 8SFpFF1OS/zAtDtHvYKw6xuTtkCKaXWwydCTuMmgOZSeSoDxGFPAPsOq+I85DsNOEk1q uzF1AVlg9RLlcFWYrXpijc9LxHB9WawDSP2ayzCrz7cvAvaIm4JgwHa5iQ8lA+2Coll2 0Kol3zrSAgbvYQ3t8mMAJMlJ/fLn2RF6j9Q9oZtNAgcnrHGENreFjc6zUDVN5m9R3owT J9ebdzLWpWExH1OHpTZ51bxrdDdgIuOe5m0O00cYkwfrxTcrv567nrlysV5ouWwpKa4Y N+MQ== 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:date :to:from:message-id:dkim-signature:delivered-to; bh=SUbThL9FQsNZuGhjJ+77uNSWd593XkVo4hhA6tAFR8Y=; b=MKPaay3sbsp73IrRvwkNGdXlim3FBU/WnypTczk6PTWYfTPoR11PlzJtEkyOrxqf/z N7moaDNG+HULJXOULxymN57T6b92oTIdNVWPBcwKAmppt7qrT5GZ0iLTt8CF5A227m8T OOFphUNv6LJ+tnO0zOPjufjh3OCIguk5mO83/K4qU2IxxPb7LavujEpIejf+KeFM2PMm QwR8u2P6DxG6Qn+iILWARa2iMSXBuhgpAr09VrkKYubcM01+WTJbd1CuMIhXPCLyQCc/ T9Q6Uemxy/RThe4YIKJ/ykIcVY/YgHK33k09gC3iacveh0d1BBtua7afOZw4wUSthrNk tjDQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=CFRx5ZjQ; 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=NONE sp=NONE dis=NONE) header.from=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id e10-20020a17090658ca00b007be4dd9ef7csi17462883ejs.402.2022.12.07.01.32.58; Wed, 07 Dec 2022 01:32:58 -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=@foxmail.com header.s=s201512 header.b=CFRx5ZjQ; 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=NONE sp=NONE dis=NONE) header.from=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 33EE268BDCD; Wed, 7 Dec 2022 11:32:17 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-221-242.mail.qq.com (out203-205-221-242.mail.qq.com [203.205.221.242]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 601FD68BD61 for ; Wed, 7 Dec 2022 11:32:03 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1670405519; bh=W2cFUbZRsfe8w/hGv3QQ3EllW/TOgM9RHQOLOz+M9Ek=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=CFRx5ZjQH3kYytbCDs2jI217wFOhqCe9VUjv7EeguhCPVXycDl91a+0ZgN9c5mcjh 3an5QE//ogw8GpPJh3UwAGphkgciuLRSut6J7+RDAIeQZ7OtLlqA6gERVIJb9wmCqY Eaw+VsODyq7BIJ8JfH9BURg6Qnagzr0P5RMJzXvU= Received: from localhost.localdomain ([59.37.125.102]) by newxmesmtplogicsvrszb1-0.qq.com (NewEsmtp) with SMTP id 7F9B046E; Wed, 07 Dec 2022 17:31:57 +0800 X-QQ-mid: xmsmtpt1670405519tauip5412 Message-ID: X-QQ-XMAILINFO: My/elTziho8N0fTqy75RBrtE0zaoM+AedY2byF7KuwJy/rqu5GQEsqlUZhVm5m 6uzgkTXRUAtj9Q6wpZehwjQduyxxjWXRruMo0za3+iCKQX/hOqEBOUno1UogTjipDkGQKHLHZWYs L2t6xc6jFZcArnVIKxgvrm+15pnY93+w7lG4huBb5vn3reBmVmD02wWCd6iRijFdUtsagec0i4Z7 Lsz1162uzlT1k5lK2vEhp9VrcxkKEDmUORPMcJYjBTSHGVTwjcaWmSgevGyz6x0sokjosyTYMB3i 4Bee9tpRnGXTTSAAqnRzKP//uCvDGvkr2U6dzav+jan0vimkncVe1o5ztZLKaAJjfSNxrlXJVN1j DQLUErs1BWXrMEfIlciKiBNwuwHlOGHtylhqmafIVVSpt8kCZ4/CGjxkuS7oNZ6o8AOcTSt8tq84 V2zCAYgQpkGxLRRYAjphJpNyK+gM/+hpN8UtQ6wULMV3LQsAFOrOvDyhg76aQYosVRqbtg+dSR0M O6dsto8CBdfKt0PUwMrT+6cud4e7n45yhWPcinbxn7G5c/f3DHps67D7Z4nrSNxocmLq2hOKKFgW K/NVrEl/VyfBlFYn/9w6kuGT7oFRKaJbJyL52tOMljKeV3L2TRr6ffOOov4ERnZ3JY+Vd8cjiCTp CHSM/RXYnOKH7E1DqlfNTdFsrTRUpM2jNj0i0Qr+QVO2UHGcUaBKIivwjglvIkerVhYCJpeM6H0/ 67gioQRHKGWTV0EZ5xY9CyhSof3zFpGOrM6Fbr9uNzzaBNk6rJgHhqpKd8dBLq6bWEYTTM8fWZDB JR8CgJwhatgWdbABAlqHAY3b7kYlwAjFwUHQYxsIFqThIK6XS97O+m7tun1S3SQ7L3RszCQVKQ0F fHgNEz97C9j5liu1I0KKnaoYBVi1CypZHrTmdCk5uRbFxdnJ7258l7CKcmRJz0HEu8Wq63vyrtIK z5z04v7clw9pxb2REBJ3ux50S1sJMj From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Wed, 7 Dec 2022 17:31:16 +0800 X-OQ-MSGID: <20221207093122.553668-2-quinkblack@foxmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221207093122.553668-1-quinkblack@foxmail.com> References: <20221207093122.553668-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 1/7] avcodec/mediacodecenc: make each encoder has its own option 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: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 72hfGAXfzFAS From: Zhao Zhili --- libavcodec/mediacodecenc.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/libavcodec/mediacodecenc.c b/libavcodec/mediacodecenc.c index 69246ad693..4f9185342f 100644 --- a/libavcodec/mediacodecenc.c +++ b/libavcodec/mediacodecenc.c @@ -480,19 +480,18 @@ static const AVCodecHWConfigInternal *const mediacodec_hw_configs[] = { #define OFFSET(x) offsetof(MediaCodecEncContext, x) #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM -static const AVOption common_options[] = { - { "ndk_codec", "Use MediaCodec from NDK", - OFFSET(use_ndk_codec), AV_OPT_TYPE_BOOL, {.i64 = -1}, -1, 1, VE }, - { "codec_name", "Select codec by name", - OFFSET(name), AV_OPT_TYPE_STRING, {0}, 0, 0, VE }, - { NULL }, -}; +#define COMMON_OPTION \ + { "ndk_codec", "Use MediaCodec from NDK", \ + OFFSET(use_ndk_codec), AV_OPT_TYPE_BOOL, {.i64 = -1}, -1, 1, VE }, \ + { "codec_name", "Select codec by name", \ + OFFSET(name), AV_OPT_TYPE_STRING, {0}, 0, 0, VE }, \ + #define MEDIACODEC_ENCODER_CLASS(name) \ static const AVClass name ## _mediacodec_class = { \ .class_name = #name "_mediacodec", \ .item_name = av_default_item_name, \ - .option = common_options, \ + .option = name ## _options, \ .version = LIBAVUTIL_VERSION_INT, \ }; \ @@ -517,9 +516,17 @@ const FFCodec ff_ ## short_name ## _mediacodec_encoder = { \ }; \ #if CONFIG_H264_MEDIACODEC_ENCODER +static const AVOption h264_options[] = { + COMMON_OPTION + { NULL, } +}; DECLARE_MEDIACODEC_ENCODER(h264, "H.264", AV_CODEC_ID_H264) #endif #if CONFIG_HEVC_MEDIACODEC_ENCODER +static const AVOption hevc_options[] = { + COMMON_OPTION + { NULL, } +}; DECLARE_MEDIACODEC_ENCODER(hevc, "H.265", AV_CODEC_ID_HEVC) #endif