libyuv交叉编译

https://chromium.googlesource.com/libyuv/libyuv/+/master/docs/getting_started.md

libyuv交叉编译_第1张图片

进入linux.mk中设置交叉编译工具,修改其中的第四行CC ,第八行CXX? 指定交叉编译工具链路径 或者直接修改 $(CC) $(CXX)为指定的交叉编译链.

设置完成后我们使用make V=1 -f linux.mk 进行编译即可.

交叉编译完成后,使用 file yuvconvert 命令查看当前是不是生成的arm格式的文件.

我们在libyuv文件夹的根目录下会生成libyuv.a的静态库,后续我们使用只需要该静态库和 include目录下的头文件即可.

QT中使用libyuv静态库:

INCLUDEPATH += /home/galaxy/raspi/sysroot/usr/local/libyuv/include
LIBS += -ldl -lm -lc $$PWD/libyuv/lib/libyuv.a

NV21转RGB

void CameraView::showTrack(char* filename, unsigned char *yuv_data, int width, int height)
{     
    int size_dest = width * height * 4;
    uint8_t *imgDst = (uint8_t *)malloc(size_dest);

    int src_y_size = width*height;
    uint8_t *src_nv21_y_data = yuv_data;
    uint8_t *src_nv21_vu_data = yuv_data + src_y_size;

    libyuv::NV21ToARGB(src_nv21_y_data,width,src_nv21_vu_data,width,imgDst,width*4,width,height);

    QImage *image = new QImage(imgDst,width, height, QImage::Format_ARGB32);

}

你可能感兴趣的:(Linux)