From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 167A240172 for ; Sun, 4 Dec 2022 17:13:57 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id EAEDF68BBD9; Sun, 4 Dec 2022 19:13:10 +0200 (EET) Received: from out203-205-221-205.mail.qq.com (out203-205-221-205.mail.qq.com [203.205.221.205]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0C9E168B8BE for ; Sun, 4 Dec 2022 19:12:59 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1670173974; bh=swf6Q3VBEnypt7A9SS/5nVSp8JUJBM8VvLufylVVmtA=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=n1e5o37lyd/Z50WNr/86DTzJ/slDLtDGdphUo/bpRFAadOffm1pYq20fSpyXkkRPL hLRfEPKzKM/2PhpapVYoTVL91AE9qL33Fy/UeuYmC2dFf+lYfxNShtEOHFuXavj4Ym F4SfUkerw5vQn2NvIx2WK0sWlZT1hcOFH4xULDds= Received: from localhost.localdomain ([14.153.79.182]) by newxmesmtplogicsvrszb1-0.qq.com (NewEsmtp) with SMTP id 334B3853; Mon, 05 Dec 2022 01:12:52 +0800 X-QQ-mid: xmsmtpt1670173973td1adlvy9 Message-ID: X-QQ-XMAILINFO: NvKyM24IHTKSUfXBQoTSN+iIBiGCvkgQm/pXSWxuznvOYUIVeHi4MSrZVkN7zQ +xs488FJ6eou78NjPDo5eLthyGkYmUy0hFiVVe9gTAnCHzAMYDyhQ/Y+HZ4tXrw6r4wEjr1aXtDW QLEOCdZXqVUDbRx9vXCpJskmQVsweIiHWEn9oeE7Ox/snYMeQWaAsJq+YPq+6vdIexPcqiTuMAP/ 6xzzn275SfQL7fKVqWF4vUeRVhi/DxEwznrbzrTguf7NNAIGsluASTU0sFr1sMylSc7nv3XDBSPj ukvfhgrNEZW1U9nXhavAWfctNsX7UKY39toxLNO0tFbYS9i9Oi3BoeAwp4+kMm34MjjbqzGYWPgB +tRdLNOqMnwaldIl4/gSdz0ght2i4NCLIkG5yg+R4mEd3hCHANKbPSMSWJX498oQ/dLsCVKhJ/1q ncc9JHKVbMGjR7tTMbhJJImnWdmQuXuzixC8RUAfnGhvJhE7Eq4uLRLIcMrTI9muifLXHhwLfKvk RpgoUpf2mEdigak4/qBImGjcz6OADFzZH8GZMI8H3mOhuz9nYlhb2xU5uLx4Ux/RVVaPp25zmbIl VCnCYGUDTSdY8WfLVdCVpRXNPH8p5HwYKTw8wqaONmGuX6mCTD6VhlVbBcEvB7Lftn9KPcSWoYhT Tfaa9X8odZPtOlM104q9IlebBxTg6xC/6lKsJTp0LvMJ/yymV5DypkWvR4ebnqyldwzPF1W3dnWK 2BwuQmaFlRiwCI4ZsI3GjTCG6FDlDZ/MH6/x4vB93rflagOCqv0shEu3kv2ErXjTochd2VII5x8p jnkyOOra13n1Rselm3Cm2XafQL54YCsIBIfYy8tB5O+EtHKq05R9tkOz74hDChd047HjxKJ+dzVr eWwEdpXKP69QagfbFGF0Gi5Nc04DSReDlJrN4E0Mpphj2VKJMm0Ma6A+VGbrra9gC0sS+7xoDyhy gBeQ8lKo0IpwT+61ImjC9MPsgMdxhF From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Mon, 5 Dec 2022 01:12:23 +0800 X-OQ-MSGID: <20221204171228.50160-2-quinkblack@foxmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221204171228.50160-1-quinkblack@foxmail.com> References: <20221204171228.50160-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: From: Zhao Zhili --- libavcodec/mediacodecenc.c | 42 ++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/libavcodec/mediacodecenc.c b/libavcodec/mediacodecenc.c index c8d8f84e46..c28cce56c6 100644 --- a/libavcodec/mediacodecenc.c +++ b/libavcodec/mediacodecenc.c @@ -495,29 +495,27 @@ 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 }, - { "bitrate_mode", "Bitrate control method", - OFFSET(bitrate_mode), AV_OPT_TYPE_INT, {.i64 = -1}, -1, INT_MAX, VE, "bitrate_mode" }, - { "cq", "Constant quality mode", - 0, AV_OPT_TYPE_CONST, {.i64 = BITRATE_MODE_CQ}, 0, 0, VE, "bitrate_mode" }, - { "vbr", "Variable bitrate mode", - 0, AV_OPT_TYPE_CONST, {.i64 = BITRATE_MODE_VBR}, 0, 0, VE, "bitrate_mode" }, - { "cbr", "Constant bitrate mode", - 0, AV_OPT_TYPE_CONST, {.i64 = BITRATE_MODE_CBR}, 0, 0, VE, "bitrate_mode" }, - { "cbr_fd", "Constant bitrate mode with frame drops", - 0, AV_OPT_TYPE_CONST, {.i64 = BITRATE_MODE_CBR_FD}, 0, 0, VE, "bitrate_mode" }, - { 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 }, \ + { "bitrate_mode", "Bitrate control method", \ + OFFSET(bitrate_mode), AV_OPT_TYPE_INT, {.i64 = -1}, -1, INT_MAX, VE, "bitrate_mode" }, \ + { "cq", "Constant quality mode", \ + 0, AV_OPT_TYPE_CONST, {.i64 = BITRATE_MODE_CQ}, 0, 0, VE, "bitrate_mode" }, \ + { "vbr", "Variable bitrate mode", \ + 0, AV_OPT_TYPE_CONST, {.i64 = BITRATE_MODE_VBR}, 0, 0, VE, "bitrate_mode" }, \ + { "cbr", "Constant bitrate mode", \ + 0, AV_OPT_TYPE_CONST, {.i64 = BITRATE_MODE_CBR}, 0, 0, VE, "bitrate_mode" }, \ + { "cbr_fd", "Constant bitrate mode with frame drops", \ + 0, AV_OPT_TYPE_CONST, {.i64 = BITRATE_MODE_CBR_FD}, 0, 0, VE, "bitrate_mode" }, \ #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, \ }; \ @@ -542,9 +540,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 -- 2.25.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".