https://chromium.googlesource.com/libyuv/libyuv/+/master/docs/getting_started.md
进入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);
}