From patchwork Sun Nov 27 16:55:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 39489 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp6952552pzb; Sun, 27 Nov 2022 08:55:44 -0800 (PST) X-Google-Smtp-Source: AA0mqf4hasbFbIaYVOAJigGsB4aa54tWBjdNb4FOYp6SaBeNWMyoNoZkMhpIJtTT0OLHtcMasZmu X-Received: by 2002:a17:906:d211:b0:79d:f5f2:6f55 with SMTP id w17-20020a170906d21100b0079df5f26f55mr22528393ejz.531.1669568143808; Sun, 27 Nov 2022 08:55:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669568143; cv=none; d=google.com; s=arc-20160816; b=bM9Evsu8mbmEqMnwEk2/tOpLZqDrWT+aqhzI2i06xn9+pYDUxvThfn8KrqC3M14BFi HNr7qVttvq5sWwl4Qw7cnnel2IJPpZJNHkAQDy4CiSeKRReXUkZQDRy1d7ci3BIkY2p7 E6YCTv2bRrH7PkYL19jSK98sMWc4jpkAqojAgyEx9tq6JEVo/4gV1D7LcRiZ7wNFVPdG ypmR+19PDEH8ASL0Ania27ZWA1E9OWZxu+e8KK3oTyLt+G2FBHK4Fxs3t7x5KsgtxHCt 5gZnL4sTzS3Hibdld/F0nBGFTFGW+fbKtIf4ZFvHy7GED1Xrq4wfRsPsR1iR7X+ITGpP GXQw== 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:date:to:from:message-id :dkim-signature:delivered-to; bh=8ZSZ+yf43/dusA1KdOp9O1or+6//qGnEPHyeXEEq3xw=; b=orIZnHjm4fbVwo/C9OYrywlpcKO3WzcpSMlAUGieVumiubllkECj5Vk26deBMfqtlw MYvpHprzKF0oXAtnTtn0XTyVmvuYpG65W1r0f3vuGekpCnF1EauaCR78XUmbU7kcwn5i RgMkCVffs5yOA3iLtyzGi6GotmyfUxOc4UVbHbt5uh6+DxNywO2LMkKhxQN9a6AXDCzZ vmwW/0r7Iem5UCRsGsNaljXDdCU3/bXKzHbgZr20034y4L8y4FZPoYOGs3DjkLR3CneQ IYn6oyCkP6n0dw910Bzau3CrneDi86ayBdMCbx7qYUXXBS8suC/Nc+pa7t4tV49q9ERi tEkA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=J3DfBlxt; 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 r23-20020aa7d157000000b0046900390cf2si7529620edo.276.2022.11.27.08.55.42; Sun, 27 Nov 2022 08:55:43 -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=J3DfBlxt; 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 2608968B695; Sun, 27 Nov 2022 18:55:40 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out162-62-57-252.mail.qq.com (out162-62-57-252.mail.qq.com [162.62.57.252]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 723E668B5D7 for ; Sun, 27 Nov 2022 18:55:33 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1669568129; bh=x6ffriOH7Fd9UFGO4927mRXnD3k2PMZ+bgci3y0g7NA=; h=From:To:Cc:Subject:Date; b=J3DfBlxtT/u6ZGWMhvLsohw+x5tzWMtBRAIErRYoCHmYxxd0B8vrk7Vtm5KVwb0PT bOleaOT3b6OscbgO3r2+3qm93LDeKhzqPlESR27i8BZX7ZjRubhhDHwpXobM8Ak9fU RS4ee9nAWXTb83OxR90os7e5YuX654dh5gNqfs6w= Received: from localhost.localdomain ([121.35.184.176]) by newxmesmtplogicsvrsza10-0.qq.com (NewEsmtp) with SMTP id DDC26A28; Mon, 28 Nov 2022 00:55:28 +0800 X-QQ-mid: xmsmtpt1669568128tdpop0ium Message-ID: X-QQ-XMAILINFO: OdIVOfqOaVcrYWx9c+7HjzCgyp5J6e/J9AJj9P4doU3epFgsCiUQ5XQcPbXJG6 dnT7gWwlA0v6La7VX08WF0tFmq7UTpJ/N/KdN4Nfpm2L0yhPvV18AQ+gwweirgr3FhSbbicCe21H ZjVfb9BGw3vVHobFn2BXv2ELB9nMV54WTqsjan6XNa+iDlETQDSbbdit/xrlTlFKnUKumr0RBkyN oz9E0ucESVbrWDzKagF6vzNHNqcb21YaJN+XA10Cu81RnMOih1ozfZU70dYXqyTKiTgMPG+riH+D 4KZsPkXb7xWeLu9Uo1DDg3GqKb0XtUlV8K0L4zf+aHs+VpH+pJU4Fzh40/p2Eb4EeJEYB6hsjINq RxWJgXiqnyqjeHDGb8HgBROuOFOg4igU7n1HWNRLoO8mXkdq0TgsoT6P72ql/qvOJLPtZRla0Ax7 LKrk3Pwq8eGE452EdPxcFiNN3jHkCMjOfEtpr02FIaJiIOjbC2OaHVf7j09S4q4aiz9mOoLYS/eQ jU3SxZOH8Au41GjYxN1ZrhZ8gktDI8MtO/u2TiNJU9Q/jPezHTYBLQKdqOf7glnRhG+f/qU8CxaA etPFiSXAJ52tEfzgom+5Om/CTdZEIoq895+h28OgvPtApi78U4TzNo+8M0jMn/cFkib/Ty46VFgT YtVYfB1NEQAYCe447kJlA+UiF46ASA+YLnM1sjPhqQjo27IFuCzcFYtfXY16TG1KrpNYYy2jYbIR 6kfKcaT9mIJxpY4sVhz9TyOB3L95rkPwHAGrcpbBwt1OYGQMp4VyU4Or2XDumh5TYg6S8gspXCzf sniMePqVNn/HjwHnx9pW5Ayv9gsC86fNsI0GAJJ3wZttNUW9Hi7Vc0EVPtIQHiw2rF1xd+aDTCeh neYWQn13XGxzUIeqVpCnb8tfg589dmu8ugsogSkYQA0XDr+2CbbZhgJuub/p/nsfNljH526KNyrI 2oK9GGgBI= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Mon, 28 Nov 2022 00:55:02 +0800 X-OQ-MSGID: <20221127165504.24796-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/3] avcodec/mediacodecenc: add option to select codec by name 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: 8CtQHt7FlUSH From: Zhao Zhili --- libavcodec/mediacodecenc.c | 8 +++++++- libavcodec/version.h | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/libavcodec/mediacodecenc.c b/libavcodec/mediacodecenc.c index a4390a9df6..693faca118 100644 --- a/libavcodec/mediacodecenc.c +++ b/libavcodec/mediacodecenc.c @@ -43,6 +43,7 @@ typedef struct MediaCodecEncContext { AVClass *avclass; FFAMediaCodec *codec; int use_ndk_codec; + const char *name; FFANativeWindow *window; int fps; @@ -126,7 +127,10 @@ static av_cold int mediacodec_init(AVCodecContext *avctx) av_assert0(0); } - s->codec = ff_AMediaCodec_createEncoderByType(codec_mime, s->use_ndk_codec); + if (s->name) + s->codec = ff_AMediaCodec_createCodecByName(s->name, s->use_ndk_codec); + else + s->codec = ff_AMediaCodec_createEncoderByType(codec_mime, s->use_ndk_codec); if (!s->codec) { av_log(avctx, AV_LOG_ERROR, "Failed to create encoder for type %s\n", codec_mime); @@ -474,6 +478,8 @@ static const AVCodecHWConfigInternal *const mediacodec_hw_configs[] = { 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 }, }; diff --git a/libavcodec/version.h b/libavcodec/version.h index d149bc6c46..9e66920593 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -30,7 +30,7 @@ #include "version_major.h" #define LIBAVCODEC_VERSION_MINOR 54 -#define LIBAVCODEC_VERSION_MICRO 100 +#define LIBAVCODEC_VERSION_MICRO 101 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ LIBAVCODEC_VERSION_MINOR, \