From patchwork Tue Jan 10 11:30:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 39948 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:bc95:b0:ad:ade2:bfd2 with SMTP id fx21csp3607630pzb; Mon, 9 Jan 2023 19:30:26 -0800 (PST) X-Google-Smtp-Source: AMrXdXs3xoafQFHAJGys2Zwdn2F/OD6SmHotIvl+WFfxCAsMTwxKaD/DnHBJ9QV8+SOey0Ph6Oiw X-Received: by 2002:a17:906:703:b0:84d:1366:c74d with SMTP id y3-20020a170906070300b0084d1366c74dmr14487596ejb.63.1673321425972; Mon, 09 Jan 2023 19:30:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673321425; cv=none; d=google.com; s=arc-20160816; b=oj5sFmd+E1cLoiHVCQo7H1ohKXc0BT9lJ1IoOu+jKW/DVefnVNXcKmLop0+25X6+XF GjDCm580YLvE+pZhNTckY3ZtbhVu0JKW8HAiRfI+yyHxE2fT1GZzg0VINAGFuUCb0Y3d XKMDxDv8I05oruRQTJbhbkJg0//oiOiMfeTJgtHl7cFJY5KnaoTN7gOAe6mPCbv846Bn xDizXBpg6w2V9lOmN68Ye5mwwZjH8hYx68K1yBCKqnzi3bv6WfobvyQfq+Bj8bb1dsdq XvKfd9Jp3gve/KMGfxHMcwVEUm2DAE5Yy3ah6be4LyluBkIMxld/PFi+IRIsabAOgYAH apWQ== 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=XuLhJH7YRobCBRk0W2lG8UpzCCbQg1RbS5H0lMRS9lQ=; b=ZSJuQmpE+iDpmskjkGtBrND3D/ymxIbVcFPFt+eJpgAen3ewpLyDNdfU0c3VcAzkzy 8wFSaAXkpFB/2DhZc/3tccBoXJ0PWHC0OC9mOsdBMOklqz3m/c5bb5kjk5P8psPgq4BK nJpurvojK7+wgV9Ll3Z4mimt2PV8ojvkJfAUwKI+oJ3V3hEX/hp5V6zK40sAgEp/YIwi IV5rOxuEnUBWgFKkB46qelfMFlG6n97im+FieXrZg8XgrJ1U/SLaZYfKfmEw+25ObWYj r9jeba+olgkDzV5NZ9YpBrOVt7BJnzsgNApigCz9xz2EIqRyYKO8891yGkEhg7xdCyOW dTTQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b="mWH/uNQP"; 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 js10-20020a17090797ca00b007707b853e46si11983323ejc.882.2023.01.09.19.30.25; Mon, 09 Jan 2023 19:30: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=@foxmail.com header.s=s201512 header.b="mWH/uNQP"; 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 8B41B687F61; Tue, 10 Jan 2023 05:30:21 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-221-245.mail.qq.com (out203-205-221-245.mail.qq.com [203.205.221.245]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6EAF9687F61 for ; Tue, 10 Jan 2023 05:30:12 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1673321409; bh=Ud+YzsxOa09CIIrL0d8ntjSXCbCBIPQ/eLB5LZePbII=; h=From:To:Cc:Subject:Date; b=mWH/uNQPmTOtt5mOstvN2HDIR2W8+A9oG0CFeuw4yBJ25fg1wINhzHHOafE6aKPko 9+JZEO9b1aW4eb1lfNb4st+0kDcaU5hfYGdFmsFVCSnsbDtJQitmTeNctBJoDF+su0 fNXJ0ltUyPiiO8fHO1wCQ2K3JyTjNhTQF4NOmh0I= Received: from localhost.localdomain ([59.37.125.102]) by newxmesmtplogicsvrszc1-0.qq.com (NewEsmtp) with SMTP id 7883185A; Tue, 10 Jan 2023 11:30:08 +0800 X-QQ-mid: xmsmtpt1673321408t4d24vblr Message-ID: X-QQ-XMAILINFO: N4CzT1PKe+qFOFPTjwSCFx4vz/Hpdy9pDSMfcPBvDGoJWtL5NipDcXDM175qM2 BNCwtpfdTARu5+qWEtdhgny1yeCk3tTbsGGVXDXuCnE25yXfQ4LjwjlhwLnqLj/iijilXTBQM44c 7xCBL5zZp/ClWnNgSXETcOjYaXA3XZEzNwzjafPWLwI6fEgaWAseJtwI7007xo0cTJORHVcDNxK7 SNsvKHlk9qi2UbLq8tL9bBHQ3wyH/E39DtK0JkI+PDJgXelN2gJgojQoPJ2CZuFfqytkXNd7cP3v H6tKWjLuTUR0ulkqu98UkPMb67w6cUdLk362s66/yiTda37tOj8zJC9/+Bx6xfkJmAR8x7lB2gIy tcHaO5A3rciVZPLmmT0us7iEqiECZEwaCRgxwegWXu3HoWde0rQzuCluIP/fE6uEJQxKUMqahqWu 9KFEY6V94CeX+e3gynAbkkmadMl3GGmTKo7TcpKH5eCwvjKVakK27TGIwGE0r2jJusfdPwPW6Izs cl0UbJMR5oh9cc6DDUZWIxSvMCr3qY06+GRXU+XFvgjAXQVZ6qE8wwW9cegx66k51R1bH1HnjxAt r9tP/bDC07iCoJOMKE9aL+uGFGSbLdXt+ApXOv+Px+/p2ZbOL6k6jRmgQjtDn2qlXkq18reElFLm S0M4Whf7kUGnKO6QOWOoG3PIhw7fWUFAw5qT7MaSR62wdF2L8AYKSkvUdlSDNnikBAXR3uWoli3a e+0KU1dAizhzyNJ22WFoHQ7KkjBapgPGpFECkbMbsEoenPgww9b8a5zir8YT4Fmafy+zAtJED0pg 220i+m5DGDuhSyw0zfF10bVsKtO/0WYJTBO+uoQXdhoZJ6NcwvjwpRV/klPvXQV2HjUW3YPRifL3 tEYN5JBD7Zp/AWa3XE/7/ZulMuKT+e0lkQ/pnpcPLHnjmfwQ0GcRRqSTmQa67OR/X99Ou80vEPQA 2f/rxz9OmLElkxpCaKB00IqQf4cker From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Tue, 10 Jan 2023 19:30:07 +0800 X-OQ-MSGID: <20230110113008.372558-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 1/2] avcodec/mediacodec_wrapper: get api level via NDK method 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: ShNl4tDVP+0Z From: Zhao Zhili android_get_device_api_level() is a static inline before API level 29. It was implemented via __system_property_get(). We can do the same thing, but I don't want to mess up with __system_property_get. --- libavcodec/mediacodec_wrapper.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/libavcodec/mediacodec_wrapper.c b/libavcodec/mediacodec_wrapper.c index 4d6e9487b8..34ec2134aa 100644 --- a/libavcodec/mediacodec_wrapper.c +++ b/libavcodec/mediacodec_wrapper.c @@ -2513,6 +2513,21 @@ FFAMediaCodec* ff_AMediaCodec_createEncoderByType(const char *mime_type, int ndk int ff_Build_SDK_INT(AVCodecContext *avctx) { int ret = -1; + +#if __ANDROID_API__ >= 24 + // android_get_device_api_level() is a static inline before API level 29. + // dlsym() might doesn't work. + // + // We can implement android_get_device_api_level() by + // __system_property_get(), but __system_property_get() has created a lot of + // troubles and is deprecated. So avoid using __system_property_get() for + // now. + // + // Hopy we can remove the conditional compilation finally by bumping the + // required API level. + // + ret = android_get_device_api_level(); +#else JNIEnv *env = NULL; jclass versionClass; jfieldID sdkIntFieldID; @@ -2522,5 +2537,8 @@ int ff_Build_SDK_INT(AVCodecContext *avctx) sdkIntFieldID = (*env)->GetStaticFieldID(env, versionClass, "SDK_INT", "I"); ret = (*env)->GetStaticIntField(env, versionClass, sdkIntFieldID); (*env)->DeleteLocalRef(env, versionClass); +#endif + av_log(avctx, AV_LOG_DEBUG, "device api level %d\n", ret); + return ret; } From patchwork Tue Jan 10 11:30:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 39949 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:bc95:b0:ad:ade2:bfd2 with SMTP id fx21csp3607700pzb; Mon, 9 Jan 2023 19:30:35 -0800 (PST) X-Google-Smtp-Source: AMrXdXumwugQ4Nw98djboNL1vbxEdcH57jOKt9u8oMKNwsxfOYIFaYSBQxQdA2ZzbBKBmUPrcBPn X-Received: by 2002:a17:907:cb84:b0:836:e8a6:f6f5 with SMTP id un4-20020a170907cb8400b00836e8a6f6f5mr59158849ejc.66.1673321435188; Mon, 09 Jan 2023 19:30:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673321435; cv=none; d=google.com; s=arc-20160816; b=okd8kOIu+gP1rCEmSTb/p66AcbSJW1RTib2dAWurHHgCosQI0pEJ8yp0Raiqnzz+vK dJdn10PPhEK90ta3ilNXoSV8Je4o8CbEMgH14Psh5A+ergSr8LTx3FQc1QsLyNUY7/+j 8NL89iDApF0BFEle9OFb3wRJRvcznNaHkAwTIlYKAzArRO2YPGGsxzo5xRVItm9C3Nv6 9hSzoW97XWj/vfgS39btl1GtAWUTKorP8WXnaJGgCelTye32HkhJNO1OZcRhpcq83TM3 gR2ILFHmjZ07XxlH137pE710Aj8Kxjh6R5OCtEqTkfz+Roe0oFgjmquOP4lh1sCnRPC6 W66A== 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=WpVJkDUw5usu7ogjtlakFDKgZNrDqGPPKU6wJ8r+/E0=; b=bOE/L05JuZ37azeLmq/CK64WFKsRnU7QcyfBz4/ia+ALi4WO/TUFFMyamJTWGaUplB h7G3JB5Ad1165JZvZk/CggW+bvHx6YOUE8G1OGOtOm8v9Q2mcsP7sR6Wl3U/FqgJPKqP KTfS7YHsVWDM8KgVLDiQ3jxiSBjr40eXkonTjXVJ1U+CV/dv+D8Ch1lu7PiYns+zZRQp pSjqkh77sWNmjGwhoMWAnbeNP0r4HNt2YyvqRv0sc4pFgEF6zDYy+7nSczsJ5H5IZAW8 HX9bcpvpJ7dwaR8ZV/oxxsCoE50NsmiiawE6dyYCB2V7/TVXGbxOtrnDyhwKI1swPJKy DjWQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=Lb3UdvzY; 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 s19-20020a170906455300b007b5ce4a436csi7838539ejq.227.2023.01.09.19.30.34; Mon, 09 Jan 2023 19:30:35 -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=Lb3UdvzY; 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 814C968BC41; Tue, 10 Jan 2023 05:30:22 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out162-62-58-211.mail.qq.com (out162-62-58-211.mail.qq.com [162.62.58.211]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 925A8687F61 for ; Tue, 10 Jan 2023 05:30:14 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1673321411; bh=vJ/NrmOEVh14hy8c3Z0XTZmnYjT9MhdMT1EMYDTZCb8=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=Lb3UdvzYCYP5GvTVVUz8W3hzujg8Lpa3y9RWa5myxXBsLc/m6dE8AKdGZTbjQII4C mNm+6joVkTv8WXwE635SZqDhkWm0Dpg7kz1cOKfR0QUAN4G7/E9qbluv6/uPyTawVv e8anr+ShPddCUmijJQ0o3iriVZD1BWea76xMr5xo= Received: from localhost.localdomain ([59.37.125.102]) by newxmesmtplogicsvrszc1-0.qq.com (NewEsmtp) with SMTP id 7883185A; Tue, 10 Jan 2023 11:30:08 +0800 X-QQ-mid: xmsmtpt1673321409tjg89iilm Message-ID: X-QQ-XMAILINFO: NKv2G1wnhDBnK5RFc3JW1VKydZtEIQO0qMfkmWQSYt0G5eRuPqGsOMKvxizswz x+mCilgx5q30eSGJnEXE5hDTJP9maPjVp1S80JS9FP/xsH0tJkYBj9ikVF7eLw9D9hSxbyJokaQ5 AKHE1Bv38kuVxw8l8RjHp2jUxXeXZ1TFG8SWJbb72qe3AQ6BZbgc7PUok97nYfUjQBfjK0Ae/Ndb aLzXOWDkE737skJs0v49UPaGhjMA9lpBYfT+vibaXb7HYZujYbBHqQDgL38IAomdfVxsdmwEXOqi MvI7bO36Nr504VMU95OfQfxQd309ejsF2I0BGmjDGs+GeAmZTorpnXkEbmLM7ySEwYb/Llbd0A68 4tHOv+K4hvq8nBasXH2Yt7R+lanZFvGIlcfSB6dW1v6qluRbbc4o0TON+a6TlXHxM+k3IqSe+QqB QUgkfXAmGmnFIPv0wQCdkQyjY5fB+2/9/CuArOS6pX0FyoSkPUoc5bWfTiM3Xn96MOAN90b8Iq3K hXBdNkpLIMRJVYtiTnQac9o3Mn/FSRw5p3au2gfueTTgTtai7Jj7GE9iXPJLmcJwpwDvF7ZaYYlf qSp7WXHcWcyTjqW94/zXdvIz3h/KTvfJjhPTNmYUYXrpVuWunludZiNQWkRYi0L+/eMdBRDTDnHN GkYly5fgNFoBeH80XIOWyPf4ipObO+WlyJZFDGuRjcF7dmTY6ng/QJCTIGYcEQ0awKDBc75R52Kr 126pCCejclVk1xuWea56A5PzkAoSU5zqWW+WnvLVXxKkBLHaL4UY355gC7uvIRyYV4NLFMEavwGG FmpYATYwsHKOhz2MsOriEmVs7QtgNsMcLipRJsvDv7AqmwwEIqV6jQoey49SUAdugitVl1J2DNmL 2eYahbADnB3/e+RVaD9/mVnAxYnitSDOKGm+bzhY5wDnxhW8vCBd41y6xE1voEYvhC6t8wSxN4Ko ysU7SZGz+npGZrclngW4YLrZ3kuNNC From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Tue, 10 Jan 2023 19:30:08 +0800 X-OQ-MSGID: <20230110113008.372558-2-quinkblack@foxmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230110113008.372558-1-quinkblack@foxmail.com> References: <20230110113008.372558-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 2/2] avcodec/mediacodecdec: check ff_Build_SDK_INT return value 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: q8tqqpRiZwJW From: Zhao Zhili --- libavcodec/mediacodecdec.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libavcodec/mediacodecdec.c b/libavcodec/mediacodecdec.c index 11f655a9aa..6a28974d14 100644 --- a/libavcodec/mediacodecdec.c +++ b/libavcodec/mediacodecdec.c @@ -415,7 +415,13 @@ static av_cold int mediacodec_decode_init(AVCodecContext *avctx) s->ctx->codec_name, ret); sdk_int = ff_Build_SDK_INT(avctx); - if (sdk_int <= 23 && + /* ff_Build_SDK_INT can fail when target API <= 24 and JVM isn't available. + * If we don't check sdk_int > 0, the workaround might be enabled by + * mistake. + * JVM is required to make the workaround works reliably. On the other hand, + * missing a workaround should not be a serious issue, we do as best we can. + */ + if (sdk_int > 0 && sdk_int <= 23 && strcmp(s->ctx->codec_name, "OMX.amlogic.mpeg2.decoder.awesome") == 0) { av_log(avctx, AV_LOG_INFO, "Enabling workaround for %s on API=%d\n", s->ctx->codec_name, sdk_int);