V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hashdog
V2EX  ›  Android

请教一个 libyuv 的问题

  •  
  •   hashdog · 2021-10-20 11:56:19 +08:00 · 9088 次点击
    这是一个创建于 1130 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在 Android 上使用 libyuv,bitmap 转换 i420 数据时,部分手机会直接奔溃掉,出现概率比较低,这个问题很难复现,测试机器都试过没问题,但是线上的版本有出现闪退。实在找不出什么原因了,跪求大佬帮忙。

    #00 pc 0001f012 ABGRToUVRow_NEON + 55 [armeabi-v7a]
    #01 pc 0000f529 ABGRToI420 + 220 [armeabi-v7a]
    #02 pc 00020911 Java_cn_test_library_yuv_YuvUtils_bitmap2i420WithC + 120 [armeabi-v7a]
    

    代码

    代码

    8 条回复    2021-11-04 09:48:32 +08:00
    771007147
        1
    771007147  
       2021-10-20 12:33:04 +08:00 via Android
    看看源码里这个函数 ABGRToUVRow_NEON ?有些设备对 NEON 支持有问题?库是你自己编译的?
    newmlp
        2
    newmlp  
       2021-10-20 12:51:06 +08:00
    一般是 yuv 三个分量的 stride 计算有问题,你这为什么要先加 1 再除以 2 啊,不是直接除以 2 吗
    hashdog
        3
    hashdog  
    OP
       2021-10-20 14:57:30 +08:00
    @771007147 是自己编译的
    hashdog
        4
    hashdog  
    OP
       2021-10-20 14:59:27 +08:00
    @newmlp 接手前辈的代码,理论上计算有问题应该所有手机都会崩溃
    luny
        5
    luny  
       2021-10-22 11:40:18 +08:00
    把 neon 加速关了试试
    zhanlanhuizhang
        6
    zhanlanhuizhang  
       2021-10-28 10:18:10 +08:00
    好像跟长宽的像素有关。
    hashdog
        7
    hashdog  
    OP
       2021-10-28 16:30:55 +08:00
    @zhanlanhuizhang 那要怎么计算呢,我看网上的基本都是 width/2 ,我更新了新版本把+1 去掉了还是有问题,第一次接触这个还不太会。
    zhanlanhuizhang
        8
    zhanlanhuizhang  
       2021-11-04 09:48:32 +08:00
    你要看你的 bitmap 数据哪里来的。看 bitmap 原先的像素比例,然后不够的要填充,或者裁切。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2818 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 07:45 · PVG 15:45 · LAX 23:45 · JFK 02:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.