51 lines
1.8 KiB
C
51 lines
1.8 KiB
C
|
|
||
|
/*!
|
||
|
************************************************************************
|
||
|
* \file frame.h
|
||
|
*
|
||
|
* \brief
|
||
|
* headers for frame format related information
|
||
|
*
|
||
|
* \author
|
||
|
*
|
||
|
************************************************************************
|
||
|
*/
|
||
|
#ifndef H264_FRAME_H_
|
||
|
#define H264_FRAME_H_
|
||
|
#pragma once
|
||
|
|
||
|
typedef enum {
|
||
|
CM_UNKNOWN = -1,
|
||
|
CM_YUV = 0,
|
||
|
CM_RGB = 1,
|
||
|
CM_XYZ = 2
|
||
|
} ColorModel;
|
||
|
|
||
|
typedef enum {
|
||
|
CF_UNKNOWN = -1, //!< Unknown color format
|
||
|
YUV400 = 0, //!< Monochrome
|
||
|
YUV420 = 1, //!< 4:2:0
|
||
|
YUV422 = 2, //!< 4:2:2
|
||
|
YUV444 = 3 //!< 4:4:4
|
||
|
} ColorFormat;
|
||
|
|
||
|
typedef struct frame_format
|
||
|
{
|
||
|
ColorFormat yuv_format; //!< YUV format (0=4:0:0, 1=4:2:0, 2=4:2:2, 3=4:4:4)
|
||
|
int width; //!< luma component frame width
|
||
|
int height; //!< luma component frame height
|
||
|
int height_cr; //!< chroma component frame width
|
||
|
int width_cr; //!< chroma component frame height
|
||
|
int width_crop; //!< width after cropping consideration
|
||
|
int height_crop; //!< height after cropping consideration
|
||
|
int mb_width; //!< luma component frame width
|
||
|
int mb_height; //!< luma component frame height
|
||
|
int size_cmp[3]; //!< component sizes
|
||
|
int size; //!< total image size
|
||
|
int bit_depth[3]; //!< component bit depth
|
||
|
int max_value[3]; //!< component max value
|
||
|
int max_value_sq[3]; //!< component max value squared
|
||
|
} FrameFormat;
|
||
|
|
||
|
#endif
|