libyuv如何将android个NV21格式的相机预览数据转为i420格式?
How to convert android camera preview data in NV21 format to i420 by libyuv?
我通过以下方式收到 NV21 格式的预览数据:
public void onPreviewFrame(byte[] data, Camera camera)
我想通过libyuv将data
转换成I420格式。看来 NV21ToI420
或 ConvertToI420
in include/libyuv/convert.h
是我需要的。
// Convert NV21 to I420.
LIBYUV_API
int NV21ToI420(const uint8* src_y, int src_stride_y,
const uint8* src_vu, int src_stride_vu,
uint8* dst_y, int dst_stride_y,
uint8* dst_u, int dst_stride_u,
uint8* dst_v, int dst_stride_v,
int width, int height);
// Convert camera sample to I420 with cropping, rotation and vertical flip.
LIBYUV_API
int ConvertToI420(const uint8* src_frame, size_t src_size,
uint8* dst_y, int dst_stride_y,
uint8* dst_u, int dst_stride_u,
uint8* dst_v, int dst_stride_v,
int crop_x, int crop_y,
int src_width, int src_height,
int dst_width, int dst_height,
enum RotationMode rotation,
uint32 format);
有没有一些例子可以做到这一点?
终于找到了一个demo:
https://github.com/zenith22/libyuvDemo.git
希望对您有所帮助!
更新:
我添加了一个项目:
https://github.com/jpxiong/NV21CameraPreviewToI420Demo.git
更多详情,请阅读README.md
我通过以下方式收到 NV21 格式的预览数据:
public void onPreviewFrame(byte[] data, Camera camera)
我想通过libyuv将data
转换成I420格式。看来 NV21ToI420
或 ConvertToI420
in include/libyuv/convert.h
是我需要的。
// Convert NV21 to I420.
LIBYUV_API
int NV21ToI420(const uint8* src_y, int src_stride_y,
const uint8* src_vu, int src_stride_vu,
uint8* dst_y, int dst_stride_y,
uint8* dst_u, int dst_stride_u,
uint8* dst_v, int dst_stride_v,
int width, int height);
// Convert camera sample to I420 with cropping, rotation and vertical flip.
LIBYUV_API
int ConvertToI420(const uint8* src_frame, size_t src_size,
uint8* dst_y, int dst_stride_y,
uint8* dst_u, int dst_stride_u,
uint8* dst_v, int dst_stride_v,
int crop_x, int crop_y,
int src_width, int src_height,
int dst_width, int dst_height,
enum RotationMode rotation,
uint32 format);
有没有一些例子可以做到这一点?
终于找到了一个demo:
https://github.com/zenith22/libyuvDemo.git
希望对您有所帮助!
更新:
我添加了一个项目:
https://github.com/jpxiong/NV21CameraPreviewToI420Demo.git
更多详情,请阅读README.md