aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhao Zhili <zhilizhao@tencent.com>2023-01-10 19:35:46 +0800
committerZhao Zhili <zhilizhao@tencent.com>2023-01-11 18:58:21 +0800
commit9ea6d93218c7d4581584df5b5b86b5f4fe0196b1 (patch)
treefeae8aea7061367a1b3018c78a7b482f3922664a
parent8586540ad16816589ace145c6479bff172b83919 (diff)
downloadffmpeg-9ea6d93218c7d4581584df5b5b86b5f4fe0196b1.tar.gz
avcodec/mediacodecdec: check ff_Build_SDK_INT return value
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
-rw-r--r--libavcodec/mediacodecdec.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/libavcodec/mediacodecdec.c b/libavcodec/mediacodecdec.c
index 11f655a9aa..21464900d1 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);