android版本webrtc使用ffmpeg 解码h264编译报错

1, android studio使用ffmpeg解码h264编译报错:

复制代码
third_party/ffmpeg/ffmpeg_internal/videodsp.o: in function `ff_prefetch_aarch64':
(.text+0x10): relocation truncated to fit: R_AARCH64_CONDBR19 against symbol `ff_prefetch_aarch64' defined in .text section in obj/third_party/ffmpeg/ffmpeg_internal/videodsp.o

2,查看相关代码

复制代码
third_party/ffmpeg/libavcodec/aarch64/videodsp.S

#include "libavutil/aarch64/asm.S"

function ff_prefetch_aarch64, export=1
        subs            w2,  w2,  #2
        prfm            pldl1strm, [x0]
        prfm            pldl1strm, [x0,  x1]
        add             x0,  x0,  x1,  lsl #1
        b.gt            X(ff_prefetch_aarch64)
        ret
endfunc

3,原因:由于链接器如何将部分分配到地址空间造成的

4,修改以下文件

third_party/ffmpeg/libavcodec/aarch64/videodsp.S:

复制代码
#include "libavutil/aarch64/asm.S"

function ff_prefetch_aarch64, export=1
        subs            w2,  w2,  #2
        prfm            pldl1strm, [x0]
        prfm            pldl1strm, [x0,  x1]
        add             x0,  x0,  x1,  lsl #1
        b            X(ff_prefetch_aarch64)
1:
        ret
endfunc
相关推荐
kymjs张涛2 小时前
OpenClaw 学习小组:初识
android·linux·人工智能
范特西林6 小时前
实战演练——从零实现一个高性能 Binder 服务
android
范特西林7 小时前
代码的生成:AIDL 编译器与 Parcel 的序列化艺术
android
范特西林7 小时前
深入内核:Binder 驱动的内存管理与事务调度
android
范特西林7 小时前
解剖麻雀:Binder 通信的整体架构全景图
android
范特西林7 小时前
破冰之旅:为什么 Android 选择了 Binder?
android
奔跑中的蜗牛6669 小时前
一次播放器架构升级:Android 直播间 ANR 下降 60%
android
测试工坊11 小时前
Android 视频播放卡顿检测——帧率之外的第二战场
android
Kapaseker12 小时前
一杯美式深入理解 data class
android·kotlin
鹏多多12 小时前
Flutter使用screenshot进行截屏和截长图以及分享保存的全流程指南
android·前端·flutter