-
Notifications
You must be signed in to change notification settings - Fork 8.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ijkplayer: convert pointer to string instead of using av_dict_set_int
- Loading branch information
zhenghanchao
committed
Feb 7, 2021
1 parent
86e8d33
commit e99d640
Showing
10 changed files
with
79 additions
and
39 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
e99d640
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it seems that it mainly 1. add the check for c->>app_ctx and 2. turns the int64 ptr to uint64 ptr, which one solve the problem from memory tagging please? @zhangchn
e99d640
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
同问同问,究竟哪里和memory tagging有冲突的,现在手机开启MTE后,bilibili直接无法播放视频
e99d640
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cyberhorse208 目前来看是之前的代码是有问题的 导致指针访问越界了 这个修改把检查前置了 所以必须要更新
e99d640
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Gunkkk 能有更详细一点分析不?我遇到的问题堆栈长这样, bilibili 7.55.0版本。不知道这个版本有没有合入这个修改。
pid: 13025, tid: 13758, name: amediacodec_inp >>> tv.danmaku.bili:ijkservice <<<
signal 11 (SIGSEGV), code -6 (SI_TKILL), fault addr --------
x0 0000007cdf79358c x1 000000791ab11480 x2 0000000000000000 x3 000000791ab11680
x4 000000791ab11700 x5 0000000000000004 x6 0000001600000000 x7 0000000000000000
x8 0000000000000001 x9 000000000000b480 x10 0000000000000040 x11 000000000000000c
x12 0000000000000028 x13 0000007cdfa0c168 x14 0000000000002393 x15 00000000000000f8
x16 0000007cdf785dc0 x17 0000007cdf70eb20 x18 00000078c6612000 x19 0b00007b2ad0e130
x20 0800007a4aee1ca0 x21 0e00007b5ac420f0 x22 0000000000000000 x23 0e00007b5ac420f0
x24 0f00007b8b0659b0 x25 0c00007b8b01c3a0 x26 0000000000000001 x27 0c00007b8b01c3a0
x28 0000000000000000 x29 0200007b0ac314c8
lr 0000007987eddc78 sp 000000791ab11870 pc 0000007987eddc54 pst 0000000060001000
backtrace:
#00 pc 0000000000397c54 /data/app/~~4a0vaTYjbxf1168SOgYZlA==/tv.danmaku.bili-YPYLZb7iiZT-iyQgmh1k1w==/lib/arm64/libijkffmpeg.so (ff_hevc_decode_nal_vps+1036)
#1 pc 0000000000396fb8 /data/app/~~4a0vaTYjbxf1168SOgYZlA==/tv.danmaku.bili-YPYLZb7iiZT-iyQgmh1k1w==/lib/arm64/libijkffmpeg.so
#2 pc 0000000000409048 /data/app/~~4a0vaTYjbxf1168SOgYZlA==/tv.danmaku.bili-YPYLZb7iiZT-iyQgmh1k1w==/lib/arm64/libijkffmpeg.so (av_parser_parse2+236)
#3 pc 000000000006a95c /data/app/~~4a0vaTYjbxf1168SOgYZlA==/tv.danmaku.bili-YPYLZb7iiZT-iyQgmh1k1w==/lib/arm64/libijkplayer.so (BuildId: f72316d2a7e0d23bd40f5b7936de12850fd422f0)
#4 pc 000000000007c1dc /data/app/~~4a0vaTYjbxf1168SOgYZlA==/tv.danmaku.bili-YPYLZb7iiZT-iyQgmh1k1w==/lib/arm64/libijksdl.so (BuildId: 07820b94e2a1f3b676bc030086682d2ccaaa8079)
#5 pc 00000000000c2300 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+224) (BuildId: 0ed80cba964aae11aaa75d1a46f5fe95)
#6 pc 00000000000556e0 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: 0ed80cba964aae11aaa75d1a46f5fe95)
e99d640
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cyberhorse208 你确定和这个commit相关吗,如下代码这个只是对context传入的AVApplicationContext做解析,如果传入的内容有问题就返回空,这个commit之前没有这个判断导致走到后面访问偏移OOB后报错,但可能实际影响较小,在内存安全检测下才会报,这个应该主要是解决android 11 targetsdk30+的memory tagging带来的报错的 乍看和你的问题似乎没啥关系
e99d640
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
嗯,我的问题堆栈显示崩溃在ff_hevc_decode_nal_vps,和ijk_av_dict_strtoptr么有关系。
只是在开启MTE的设备上面播放视频老是挂掉,想知道原因,会不会也是类似的问题
e99d640
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cyberhorse208 ijk_av_dict_strtoptr?你的对堆栈里没看到呀 你手里有MTE的设备吗? 方便的话可以私下联系 :d2VpeGluOiBvcjJ6eno=
e99d640
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
好的