📄 fmpeg4_avcodec.h
字号:
/// The minimum quantization value. unsigned int u32MinQuant; /**< To set the minimum quantization value range. */ /// The address of current reconstruct frame buffer. unsigned char *pu8ReConFrameCur; /**< * To specify the current reconstruct frame buffer address.\n * In some occasions,user may want to provide his own reconstructed * buffer.\n * Hence, if this variable is not set to NULL, the user-provided current * reconstruct frame buffer is used and pointed by this variable.\n * Otherwise, if this variable is set to NULL, encoder will internally * use the installed @ref pfnDmaMalloc function to allocate the necessary * current reconstruct frame buffer.\n\n * * <B>value of @ref pu8ReConFrameCur</B>: * <ul> * <li> != <B>NULL</B> : Use user-provided buffer as current reconstruct * frame buffer. The requirement of the buffer size in bytes * is '( ((frame width + 15)/16) * (2+((frame height + 15)/16)) + 2) x 256 x 1.5' * <li> == <B>NULL</B> : Use internally current reconstruct frame buffer * which is allocated by using installed @ref pfnDmaMalloc * function. * </ul> * <B>N.B.</B> : the current reconstruct frame buffer address must be <B>physical address</B> with <B>8-byte aligned</B>. * * @see pfnDmaMalloc * @see pfnDmaFree */ /// The address of reference reconstruct frame buffer. unsigned char *pu8ReConFrameRef; /**< * To specify the reference reconstruct frame buffer address.\n * In some occasions,user may want to provide his own reconstructed * buffer.\n * Hence, if this variable is not set to NULL, the user-provided reference * reconstruct frame buffer is used and pointed by this variable.\n * Otherwise, if this variable is set to NULL, encoder will internally * use the installed @ref pfnDmaMalloc function to allocate the necessary * reference reconstruct frame buffer.\n\n * * <B>value of @ref pu8ReConFrameRef</B>: * <ul> * <li> != <B>NULL</B> : Use user-provided buffer as reference reconstruct * frame buffer. The requirement of the buffer size in bytes * is '( ((frame width + 15)/16) * (2+((frame height + 15)/16)) + 2) x 256 x 1.5' * <li> == <B>NULL</B> : Use internally reference reconstruct frame buffer * which is allocated by using installed @ref pfnDmaMalloc * function. * </ul> * <B>N.B.</B> : the reference reconstruct frame buffer address must be <B>physical address</B> with <B>8-byte aligned</B>. * * @see pfnDmaMalloc * @see pfnDmaFree */ /// The address of internal AC DC predictor buffer. unsigned short *p16ACDC; /**< * To specify the internal AC DC perdictor buffer address for encoder.\n * If this variable is not set to NULL, the user-provided buffer * pointed by this variable is used.\n * Otherwise, if this variable is set to NULL, encoder will internally * use the installed @ref pfnDmaMalloc function to allocate the necessary * AC DC predictor buffer.\n\n * * <B>value of @ref p16ACDC</B>: * <ul> * <li> != <B>NULL</B> : Use user-provided buffer as AC DC predictor buffer. * The requirement of the buffer size in bytes * is '((frame width + 15)/16) * 64' * <li> == <B>NULL</B> : Use internally AC DC predictor buffer * which is allocated by using installed @ref pfnDmaMalloc * function. * </ul> * <B>N.B.</B> : the AC DC predictor buffer address must be <B>physical address</B> with <B>16-byte aligned</B>. * * @see pfnDmaMalloc * @see pfnDmaFree */ /// The function pointer to user-defined DMA memory allocation function. void* pfnDmaMalloc; /**< This variable contains the function pointer to the user-defined * DMA malloc function since under OS environment, our hardware device * may need the physical address instead of virtual address. * * @see pfnDmaFree * @see DMA_MALLOC_PTR_enc * @see DMA_FREE_PTR_enc */ /// The function pointer to user-defined DMA free allocation function. void* pfnDmaFree; /**< This variable contains the function pointer to the user-defined * DMA free function since under OS environment, our hardware device * may need the physical address instead of virtual address. * * @see pfnDmaFree * @see DMA_MALLOC_PTR_enc * @see DMA_FREE_PTR_enc */ void* pfnMalloc; void* pfnFree;} FMP4_ENC_PARAM;typedef struct { // for the sake of motion detection int motion_dection_enable; //1:enable 0:disable /// The x-component of coordinate of motion detection region 0, upper-left point int range_mb_x0_LU; /**< The x-component of coordinate of motion detection region 0, upper-left point. */ /// The y-component of coordinate of motion detection region 0, upper-left point. int range_mb_y0_LU; /**< The y-component of coordinate of motion detection region 0, upper-left point. */ /// The x-component of coordinate of motion detection region 0, lower-right point. int range_mb_x0_RD; /**< The x-component of coordinate of motion detection region 0, lower-right point. */ /// The y-component of coordinate of motion detection region 0, lower-right point. int range_mb_y0_RD; /**< The y-component of coordinate of motion detection region 0, lower-right point. */ /// The x-component of coordinate of motion detection region 1, upper-left point. int range_mb_x1_LU; /**< The x-component of coordinate of motion detection region 1, upper-left point. */ /// The y-component of coordinate of motion detection region 1, upper-left point. int range_mb_y1_LU; /**< The y-component of coordinate of motion detection region 1, upper-left point. */ /// The x-component of coordinate of motion detection region 1, lower-right point. int range_mb_x1_RD; /**< The x-component of coordinate of motion detection region 1, lower-right point. */ /// The y-component of coordinate of motion detection region 1, lower-right point. int range_mb_y1_RD; /**< The y-component of coordinate of motion detection region 1, lower-right point. */ /// The x-component of coordinate of motion detection region 2, upper-left point. int range_mb_x2_LU; /**< The x-component of coordinate of motion detection region 2, upper-left point. */ /// The y-component of coordinate of motion detection region 2, upper-left point. int range_mb_y2_LU; /**< The y-component of coordinate of motion detection region 2, upper-left point. */ /// The x-component of coordinate of motion detection region 2, lower-right point. int range_mb_x2_RD; /**< The x-component of coordinate of motion detection region 2, lower-right point. */ /// The y-component of coordinate of motion detection region 2, lower-right point int range_mb_y2_RD; /**< The y-component of coordinate of motion detection region 2, lower-right point. */ /// The threshold of motion vector in region 0. int MV_th0; /**< This variable specifies the threshold of motion vector in region 0. */ /// The threshold of sad in region 0. int sad_th0; /**< This variable specifies the threshold of sad in region 0. */ /// The threshold of delta deviation in region 0. int delta_dev_th0; /**< This variable specifies the threshold of delta deviation in region 0. */ /// The threshold of motion vector in region 1. int MV_th1; /**< This variable specifies the threshold of motion vector in region 1. */ /// The threshold of sad in region 1. int sad_th1; /**< This variable specifies the threshold of sad in region 1. */ /// The threshold of delta deviation in region 1. int delta_dev_th1; /**< This variable specifies the threshold of delta deviation in region 1. */ /// The threshold of motion vector in region 2. int MV_th2; /**< This variable specifies the threshold of motion vector in region 2. */ /// The threshold of sad in region 2. int sad_th2; /**< This variable specifies the threshold of sad in region 2. */ /// The threshold of delta deviation in region 2. int delta_dev_th2; /**< This variable specifies the threshold of delta deviation in region 2. */ /// The interval of frame/time for motion detection operation. int md_interval; /**< This variable specifies the interval of frame/time for motion detection operation. */} MOTION_INFO;union VECTOR1{ unsigned int u32num; struct { short s16y; short s16x; } vec;};//same as MACROBLOCK_Etypedef struct { int16_t quant; /**< This variable indicates the macroblock level quantization value (1 ~ 31) */ int16_t mode; /**< This variable indicates the mode of macroblock. * Possible values are : * <ul> * <li> == INTER_MODE : Indicate that this macroblock is encoded in INTER mode * with 1MV. * <li> == INTER4V_MODE : Indicate that this macroblock is encoded in INTER mode * with 4MV. * <li> == INTRA_MODE : Indicate that this macroblock is encoded in INTRA mode. * </ul> * */ union VECTOR1 mvs[4];/* * - when mode = INTER_MODE : * mvs[n] * --n = 0 ~ 2: invalid. * --n = 3: indicates the motion vector of whole macroblock. * - when mode = INTER4V_MODE : * mvs[n] * --n = 0 ~3: indicates the motion vector of block n within this macroblock. * - when mode = INTRA_MODE : * mvs[n] * --n = 0 ~ 3: invalid. */ int32_t dev; int32_t sad16; // SAD value for inter-VECTOR} MACROBLOCK_INFO;#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -