ffmpeg解码得到的yuv帧数据如何给surface显示
yuv2rgb,做下运算,然后拷贝到surface buffer中,或直接利用surface的buffer,直接算到里面就可以了。
没有C++及OOP的知识,基本搞不定。
Android和MTK毕竟不是一个档次的
简单,你参考一下opencore中的MediaoutputNOde就知道怎么作了运动会加油稿
我现在解析出来的帧数据的结构体是这样的
struct FRAME
{
int iVideoFormat;
unsigned char* pData0; ///< Y or YCbCr or Ytop or R or RGB
unsigned char* pData1; ///< Cb or CbCr or Ybottom or G
unsigned char* pData2; ///< Cr or Ctop or B
unsigned char* pData3; ///< Cbottom
unsigned int lineSize0; ///< width + padded bytes size for pData0
unsigned int lineSize1; ///< width + padded bytes size for pData1
unsigned int lineSize2; ///< width + padded bytes size for pData2
unsigned int lineSize3; ///< width + padded bytes size for pData3
unsigned int width; ///< Frame Width
unsigned int height; ///< Frame Height
MD_PIXEL_FORMAT eColorFormat; ///< Frame Color Format
unsigned long long pts; ///< Presentation Time Stamp
int iKeyFrame; ///< Key Frame Flag
int iFrameDimension;
void* pPlatformData; ///< platform dependent frame data structure
};
这个帧的格式是YCbCr420的帧
这个要如何操作然后才能放在bufferHeap里面啊?
OpenCore解析出来的数据包括uint8* aData和uint32 aDataLen,
我要怎么做才能将我的帧数据转化成和OpenCore解析出来的数据结构一样的数据呢?