#ifndef _MATERIAL_BUFFER_H_ #define _MATERIAL_BUFFER_H_ #include #include // timeval #if defined(WIN32) || defined(_MSC_VER) #include #else #include #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 }; enum MBFUsage { MBFU__FIRST, MBFU_ORIGIN_IMAGE, MBFU_PROCESSED_IMAGE, MBFU_INFORMATION, MBFU__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