You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
125 lines
4.2 KiB
125 lines
4.2 KiB
1 year ago
|
#ifndef __ZMF_UTILS_H__
|
||
|
#define __ZMF_UTILS_H__
|
||
|
#include <stdarg.h>
|
||
|
#if __GNUC__
|
||
|
#pragma GCC visibility push(default)
|
||
|
#endif
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
typedef enum {
|
||
|
ZmfLogDebug = 0,
|
||
|
ZmfLogInfo = 1,
|
||
|
ZmfLogWarn = 2,
|
||
|
ZmfLogError = 3,
|
||
|
} ZmfLogLevel;
|
||
|
|
||
|
void Zmf_LogV(int iLogLevel, const char *format, va_list argv);
|
||
|
|
||
|
/**
|
||
|
* The pixel format supported by ZMF
|
||
|
*/
|
||
|
typedef enum {
|
||
|
ZmfPixelFormatI420 = 1,
|
||
|
ZmfPixelFormatIYUV = 2,
|
||
|
ZmfPixelFormatRGB24 = 3,
|
||
|
ZmfPixelFormatABGR = 4,
|
||
|
ZmfPixelFormatARGB = 5,
|
||
|
ZmfPixelFormatARGB4444 = 6,
|
||
|
ZmfPixelFormatRGB565 = 7,
|
||
|
ZmfPixelFormatARGB1555 = 8,
|
||
|
ZmfPixelFormatYUY2 = 9,
|
||
|
ZmfPixelFormatYV12 = 10,
|
||
|
ZmfPixelFormatUYVY = 11,
|
||
|
ZmfPixelFormatMJPG = 12,
|
||
|
ZmfPixelFormatNV21 = 13,
|
||
|
ZmfPixelFormatNV12 = 14,
|
||
|
ZmfPixelFormatBGRA = 15
|
||
|
} ZmfPixelFormatType;
|
||
|
|
||
|
/**
|
||
|
* utility for convert pixel from I420
|
||
|
*
|
||
|
* @param[in] dstFrame the buffer to save the convert result
|
||
|
* @param[in] dstFormat the convert result pixel format @see ZmfPixelFormatType
|
||
|
* @param[in] srcFrame the source I420 buffer
|
||
|
* @param[in] srcWidth the width of image
|
||
|
* @param[in] srcHeight the height of image
|
||
|
*
|
||
|
* @return 0 on succeed, otherwise failed.
|
||
|
*/
|
||
|
int Zmf_ConvertFromI420 (void* dstFrame, int dstFormat,
|
||
|
const void* srcFrame, int srcWidth, int srcHeight);
|
||
|
|
||
|
/**
|
||
|
* utility for convert pixel from YV12
|
||
|
*
|
||
|
* @param[in] dstFrame the buffer to save the convert result
|
||
|
* @param[in] dstFormat the convert result pixel format @see ZmfPixelFormatType
|
||
|
* @param[in] srcFrame the source I420 buffer
|
||
|
* @param[in] srcWidth the width of image
|
||
|
* @param[in] srcHeight the height of image
|
||
|
*
|
||
|
* @return 0 on succeed, otherwise failed.
|
||
|
*/
|
||
|
int Zmf_ConvertFromYV12 (void* dstFrame, int dstFormat,
|
||
|
const void* srcFrame, int srcWidth, int srcHeight);
|
||
|
/**
|
||
|
* utility for convert pixel to I420
|
||
|
*
|
||
|
* @param[in] dstFrame the I420 buffer to save the convert result
|
||
|
* @param[in] srcFormat the srouce pixel format @see ZmfPixelFormatType
|
||
|
* @param[in] srcFrame the source buffer
|
||
|
* @param[in] srcBufLen the source buffer length
|
||
|
* @param[in] srcWidth the width of image
|
||
|
* @param[in] srcHeight the height of image
|
||
|
* @param[in] crop_x,crop_y the crop offset at left-top
|
||
|
* @param[in,out] iWidth the desired width at least align 4,
|
||
|
* return the cropped width of dstframe.
|
||
|
* @param[in,out] iHeight the desired height at least align 4.
|
||
|
* return the cropped height of dstframe.
|
||
|
* @param[in] rotateAngle the clockwise rotation angle
|
||
|
* @return 0 on succeed, otherwise failed.
|
||
|
*/
|
||
|
int Zmf_ConvertToI420(void* dstframe,
|
||
|
int srcFormat, const void* srcFrame, unsigned srcBufLen,
|
||
|
int srcWidth, int srcHeight, int crop_x, int crop_y,
|
||
|
int *dstWidth, int *dstHeight, int rotateAngle);
|
||
|
|
||
|
/**
|
||
|
* utility for scale i420
|
||
|
*
|
||
|
* @param[in] srcFrame the source buffer
|
||
|
* @param[in] srcWidth the source width of image
|
||
|
* @param[in] srcHeight the source height of image
|
||
|
* @param[in] dstFrame the I420 buffer to save the convert result
|
||
|
* @param[in] dstWidth the target width of image
|
||
|
* @param[in] dstHeight the target height of image
|
||
|
*
|
||
|
* @return 0 on succeed, otherwise failed.
|
||
|
*/
|
||
|
int Zmf_ScaleI420(void* srcframe, int srcWidth, int srcHeight,
|
||
|
void* dstframe, int dstWidth, int dstHeight);
|
||
|
|
||
|
/**
|
||
|
* utility for mirror i420
|
||
|
*
|
||
|
* @param[in] srcFrame the source buffer
|
||
|
* @param[in] dstFrame the I420 buffer to save the convert result
|
||
|
* @param[in] width image width
|
||
|
* @param[in] height image height
|
||
|
*
|
||
|
* @return 0 on succeed, otherwise failed.
|
||
|
*/
|
||
|
int Zmf_MirrorI420UpDown(void* src_frame, void* dst_frame,
|
||
|
int width, int height);
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif /* __cplusplus */
|
||
|
#if __GNUC__
|
||
|
#pragma GCC visibility pop
|
||
|
#endif
|
||
|
#endif
|