V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
hashdog
V2EX  ›  Android

请教一个 libyuv 的问题

  •  
  •   hashdog · Oct 20, 2021 · 13292 views
    This topic created in 1664 days ago, the information mentioned may be changed or developed.

    我在 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 replies    2021-11-04 09:48:32 +08:00
    771007147
        1
    771007147  
       Oct 20, 2021 via Android
    看看源码里这个函数 ABGRToUVRow_NEON ?有些设备对 NEON 支持有问题?库是你自己编译的?
    newmlp
        2
    newmlp  
       Oct 20, 2021
    一般是 yuv 三个分量的 stride 计算有问题,你这为什么要先加 1 再除以 2 啊,不是直接除以 2 吗
    hashdog
        3
    hashdog  
    OP
       Oct 20, 2021
    @771007147 是自己编译的
    hashdog
        4
    hashdog  
    OP
       Oct 20, 2021
    @newmlp 接手前辈的代码,理论上计算有问题应该所有手机都会崩溃
    luny
        5
    luny  
       Oct 22, 2021
    把 neon 加速关了试试
    zhanlanhuizhang
        6
    zhanlanhuizhang  
       Oct 28, 2021
    好像跟长宽的像素有关。
    hashdog
        7
    hashdog  
    OP
       Oct 28, 2021
    @zhanlanhuizhang 那要怎么计算呢,我看网上的基本都是 width/2 ,我更新了新版本把+1 去掉了还是有问题,第一次接触这个还不太会。
    zhanlanhuizhang
        8
    zhanlanhuizhang  
       Nov 4, 2021
    你要看你的 bitmap 数据哪里来的。看 bitmap 原先的像素比例,然后不够的要填充,或者裁切。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3278 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 54ms · UTC 13:10 · PVG 21:10 · LAX 06:10 · JFK 09:10
    ♥ Do have faith in what you're doing.