Tencent / vap

VAP是企鹅电竞开发,用于播放特效动画的实现方案。具有高压缩率、硬件解码等优点。同时支持 iOS,Android,Web 平台。
Other
3.91k stars 523 forks source link

调用vap播放mp4 部分高通手机报错 #237

Open pmzcnmb1 opened 2 years ago

pmzcnmb1 commented 2 years ago

issue 模版

  1. 问题描述(重现路径)
  2. 运行环境(手机型号,Android/iOS版本等)
  3. 相关日志
  4. 播放错误的文件(可选)

issue template

1

00 pc 000000000029c694 /vendor/lib64/egl/libGLESv2_adreno.so [arm64-v8a::d23f5f86cfb4c99eb9394bec407fd679]

2

01 pc 00000000002967dc /vendor/lib64/egl/libGLESv2_adreno.so [arm64-v8a::d23f5f86cfb4c99eb9394bec407fd679]

3

02 pc 0000000000266dac /vendor/lib64/egl/libGLESv2_adreno.so [arm64-v8a::d23f5f86cfb4c99eb9394bec407fd679]

4

03 pc 000000000026b3e4 /vendor/lib64/egl/libGLESv2_adreno.so [arm64-v8a::d23f5f86cfb4c99eb9394bec407fd679]

5

04 pc 000000000022eee0 /vendor/lib64/egl/libGLESv2_adreno.so [arm64-v8a::d23f5f86cfb4c99eb9394bec407fd679]

6

05 pc 0000000000180658 /vendor/lib64/egl/libGLESv2_adreno.so [arm64-v8a::d23f5f86cfb4c99eb9394bec407fd679]

7

06 pc 000000000017d25c /vendor/lib64/egl/libGLESv2_adreno.so [arm64-v8a::d23f5f86cfb4c99eb9394bec407fd679]

8

07 pc 000000000019c1b8 /vendor/lib64/egl/libGLESv2_adreno.so [arm64-v8a::d23f5f86cfb4c99eb9394bec407fd679]

9

08 pc 00000000001b65c8 /vendor/lib64/egl/libGLESv2_adreno.so [arm64-v8a::d23f5f86cfb4c99eb9394bec407fd679]

10

09 pc 00000000000c85a0 /vendor/lib64/egl/libGLESv2_adreno.so (glTexImage2D+144) [arm64-v8a::d23f5f86cfb4c99eb9394bec407fd679]

11

10 pc 00000000001ae1b0 /system/lib64/libandroid_runtime.so [arm64-v8a::ec208be44f39fb688d9384de4b967650]

12 java: 13 android.opengl.GLUtils.texImage2D(GLUtils.java:154) 14 com.tencent.qgame.animplayer.util.TextureLoadUtil.loadTexture(TextureLoadUtil.kt:45) 15 com.tencent.qgame.animplayer.mix.MixRender.init(MixRender.kt:50) 16 com.tencent.qgame.animplayer.mix.MixAnimPlugin.onRenderCreate(MixAnimPlugin.kt:92) 17 com.tencent.qgame.animplayer.plugin.AnimPluginManager.onRenderCreate(AnimPluginManager.kt:71) 18 com.tencent.qgame.animplayer.Decoder.preparePlay(Decoder.kt:108) 19 com.tencent.qgame.animplayer.HardDecoder.startPlay(HardDecoder.kt:135) 20 com.tencent.qgame.animplayer.HardDecoder.access$startPlay(HardDecoder.kt:29) 21 com.tencent.qgame.animplayer.HardDecoder$start$1.run(HardDecoder.kt:57) 22 android.os.Handler.handleCallback(Handler.java:938) 23 android.os.Handler.dispatchMessage(Handler.java:99) 24 android.os.Looper.loopOnce(Looper.java:233) 25 android.os.Looper.loop(Looper.java:334) 26 android.os.HandlerThread.run(HandlerThread.java:67) 微信图片_20220613195150

hexleo commented 2 years ago

什么情况下会出这个问题,是否必现?

pmzcnmb1 commented 2 years ago

您好,在特定机型下是必现的 当播放mp4特效后(什么时候触发不确定 但是一定会闪退),感觉像是Adreno GPU的问题 当vap的TextureLoadUtil类调用loadTexture后,调用了openGl的texImage2D 之后native层的libGLESv2_adreno.so报错 根据对日志的观察 应该都是高通系列的手机

pmzcnmb1 commented 2 years ago

再次核实了下 vivo X7 小米 MIX 4 Redmi K40 iQOO Neo5 iQOO Neo5活力版 iQOO 8 清一色的高通cpu 触发场景:调用startPlay

hexleo commented 2 years ago

这个是系统函数,如果必现的话很早就会爆出来才对。麻烦补充下导致必现crash的素材

pmzcnmb1 commented 2 years ago

这个是系统函数,如果必现的话很早就会爆出来才对。麻烦补充下导致必现crash的素材

您怀疑跟特定素材有关系吗?我这边目前只知道是播放mp4特效的时候会出现这个问题

pmzcnmb1 commented 2 years ago

- log.txt

hexleo commented 2 years ago

融合动画的特性已经线上运行很长时间,如果是必现问题,按理说很早就应该暴露出来。所以我怀疑是素材的问题,1 mp4是不是有问题;2 上传的bitmap是不是有问题,比如参数不是8888,之类问题

pmzcnmb1 commented 2 years ago

非常感谢您的耐心帮助! 我这边去拉一下线上特效排一下故障 如果是融合动画的话 那排障范围不大

pmzcnmb1 commented 2 years ago

您好 线上再次反馈这个问题了 这次抓到了日志 我提交给您看一下 vap_log.txt

pmzcnmb1 commented 2 years ago

vap_log2.txt 线上有很多这种报错 都是 cannot find audio track

pmzcnmb1 commented 2 years ago

vap_堆栈信息.txt 对应的出错堆栈日志

pmzcnmb1 commented 2 years ago

vap_log3.txt

pmzcnmb1 commented 2 years ago

vap_log4.txt

pmzcnmb1 commented 2 years ago

vap_pic 似乎是这里没有取到

pmzcnmb1 commented 2 years ago

另外关于您上次解答的内容 核查过后 目前发现 某个融合动画 fetchImage传入的bitmap的inPreferredConfig的确不是8888 而是RGB_565 请问有什么影响吗?因为我看文档说明只说不支持ALPHA_8 谢谢解答

hexleo commented 2 years ago

另外关于您上次解答的内容 核查过后 目前发现 某个融合动画 fetchImage传入的bitmap的inPreferredConfig的确不是8888 而是RGB_565 请问有什么影响吗?因为我看文档说明只说不支持ALPHA_8 谢谢解答

你的具体原因不清楚,目前主要支持8888,因为上次纹理这一步,格式可能会有兼容问题,建议用比较通用的8888

pmzcnmb1 commented 2 years ago

1659967997922 闪退的原因找到了 但是不知道为什么为null

hexleo commented 2 years ago

1659967997922 闪退的原因找到了 但是不知道为什么为null

你用的新版本试试吧,老版本这里没有try catch