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 8FBA845140 for ; Tue, 10 Jan 2023 03:30:24 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4AB9868BC1A; Tue, 10 Jan 2023 05:30:21 +0200 (EET) 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 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 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; } -- 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".