#ifndef _MATERIAL_BUFFER_H_
|
#define _MATERIAL_BUFFER_H_
|
|
#include <stddef.h>
|
#include <stdint.h>
|
|
// timeval
|
#if defined(WIN32) || defined(_MSC_VER)
|
#include <Winsock2.h>
|
#else
|
#include <sys/time.h>
|
#endif
|
|
struct MB_Frame
|
{
|
enum MBFType
|
{
|
MBFT__FIRST,
|
|
MBFT_SDP, // buffer = char[N], buffSize = N
|
MBFT_FMTP, // buffer = char[N], buffSize = N
|
|
MBFT_INDEX, // buffer = int, buffSize=sizeof(int)
|
MBFT_PTR_AVFRAME, // buffer = AVFrame*, buffSize = 0
|
|
MBFT_H264_NALU, // buffer = uint8_t[N], buffSize = N
|
MBFT_H264_NALU_AUX, // buffer = uint8_t[N], buffSize = N//#todo support!
|
|
MBFT_JPEG, // buffer = uint8_t[N], buffSize = N
|
|
MBFT_YUV, // buffer = uint8_t[N], buffSize = N
|
MBFT_Y8, // buffer = uint8_t[N], buffSize = N
|
MBFT_YUV420, // buffer = uint8_t[N], buffSize = N
|
MBFT_NV12, // buffer = uint8_t[N], buffSize = N
|
|
MBFT_RGB, // buffer = uint8_t[N], buffSize = N
|
MBFT_RGB888, // buffer = uint8_t[N], buffSize = N
|
MBFT_RGB565, // buffer = uint8_t[N], buffSize = N
|
|
MBFT_RGBA, // buffer = uint8_t[N], buffSize = N
|
|
MBFT_BGRA, // buffer = uint8_t[N], buffSize = N
|
MBFT_BGRA8888, // buffer = uint8_t[N], buffSize = N
|
MBFT_ABGR8888, // buffer = uint8_t[N], buffSize = N
|
|
MBFT_ARGB8888, // buffer = uint8_t[N], buffSize = N
|
|
MBFT__LAST
|
};
|
|
MBFType type;
|
void* buffer;
|
size_t buffSize;
|
int width;
|
int height;
|
timeval pts;
|
|
MB_Frame() :
|
type(MBFT__FIRST), buffer(nullptr), buffSize(0),
|
width(0), height(0), pts()
|
{ }
|
|
void reset()
|
{
|
MB_Frame _temp;
|
*this = _temp;
|
}
|
};
|
|
#endif
|