109 lines
4.3 KiB
C
109 lines
4.3 KiB
C
/*
|
|
*******************************************************************************
|
|
* Copyright (c) 2010-2022 VATICS(KNERON) Inc. All rights reserved.
|
|
*
|
|
* +-----------------------------------------------------------------+
|
|
* | THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED |
|
|
* | AND COPIED IN ACCORDANCE WITH THE TERMS AND CONDITIONS OF SUCH |
|
|
* | A LICENSE AND WITH THE INCLUSION OF THE THIS COPY RIGHT NOTICE. |
|
|
* | THIS SOFTWARE OR ANY OTHER COPIES OF THIS SOFTWARE MAY NOT BE |
|
|
* | PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON. THE |
|
|
* | OWNERSHIP AND TITLE OF THIS SOFTWARE IS NOT TRANSFERRED. |
|
|
* | |
|
|
* | THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT |
|
|
* | ANY PRIOR NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY |
|
|
* | VATICS(KNERON) INC. |
|
|
* +-----------------------------------------------------------------+
|
|
*
|
|
*******************************************************************************
|
|
*/
|
|
#ifndef MSG_VIDEO_H
|
|
#define MSG_VIDEO_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
|
|
#define OSD_STR_SIZE 64
|
|
|
|
/*========== Video Encoder =========*/
|
|
typedef struct
|
|
{
|
|
/* Common */
|
|
unsigned int type; // 0: H.264, 1: H.265, 2: MJPEG
|
|
unsigned int w; // encoding width
|
|
unsigned int h; // encoding height
|
|
unsigned int fps; // encoding fps
|
|
unsigned int qp; // qp
|
|
|
|
unsigned int gop; // gop
|
|
unsigned int bitrate; // bitrate
|
|
unsigned int advanced_mode; /**< consider 0 -> fps priority, 1 - > quality priority, 2 -> customized */
|
|
unsigned int min_qp; // for customized mode only
|
|
unsigned int max_qp; // for customized mode only
|
|
/* H.264 only */
|
|
unsigned int min_fps; // for customized mode only
|
|
} msg_video_t;
|
|
|
|
typedef struct
|
|
{
|
|
int output_index;
|
|
char str[OSD_STR_SIZE];
|
|
} msg_osd_t;
|
|
|
|
typedef struct
|
|
{
|
|
/* ROI window mode */
|
|
unsigned int enable; //! Enable ROI or not
|
|
unsigned int window_idx; //! H.264: 0~7, H.265: 0~63
|
|
//! Window index 7 in H.264 is background window.
|
|
//! Background window can not set position and it will cover all picture.
|
|
/* H264: one macroblock is 16x16 pixels, H265: one macroblock is 64x64 pixels */
|
|
unsigned int start_x; //! The x start position of the macroblock
|
|
unsigned int start_y; //! The y start position of the macroblock
|
|
unsigned int end_x; //! The x end position of the macroblock
|
|
unsigned int end_y; //! The y end position of the macroblock
|
|
|
|
int qp; //! Delta QP
|
|
unsigned int enc_interval; //! Encoding Interval: ROI window in H.265 do not support interval parameter.
|
|
} msg_roi_t;
|
|
|
|
/**
|
|
* @struct msg_fec_t
|
|
* @brief The structure for the fisheye correction.
|
|
*/
|
|
typedef struct
|
|
{
|
|
/* fisheye correction */
|
|
int output_index; /*!< The output index */
|
|
int mode; /*!< 0:ori, 1:p360, 2:p180_a, 3:p180_s, 4:p180_t, 5:6r, 6:4r, 7:1p2r, 8:1o3r, 9: sphere, 10:1r, 11:p360_s */
|
|
float pan; /*!< Pan (reserved): value range depends on de-warping mode, please refer to coeff_gen.h */
|
|
float tilt; /*!< Tilt (reserved): value range depends on de-warping mode, please refer to coeff_gen.h */
|
|
float zoom; /*!< Zoom (reserved) value range depends on de-warping mode, please refer to coeff_gen.h */
|
|
float focal; /*!< Focal: value range depends on de-warping mode, please refer to coeff_gen.h */
|
|
|
|
int cell_idx; /*!< Index of a certain partition of the layout, range: depends on layout */
|
|
int step; /*!< The step count. -1 means infinite or positive integer */
|
|
float pan_step; /*!< The step unit of pan */
|
|
float tilt_step; /*!< The step unit of tilt */
|
|
float zoom_step; /*!< The step unit of zoom */
|
|
float curvature; /*!< The curvature */
|
|
float slope; /*!< The slope */
|
|
float spin; /*!< The spin */
|
|
|
|
int app_type; /*!< The applied type: 0: ceiling, 1: table, 2: wall */
|
|
|
|
int lens; /*!< 0: LENS_STEREOGRAPHIC, 1: LENS_EQUISOLIDANGLE, 2: LENS_EQUIDISTANT, 3: LENS_ORTHOGRAPHIC, 5: LENS_NODISTORT */
|
|
float dst_offset_x; /*!< The destination offset in the x direction. */
|
|
float dst_offset_y; /*!< The destination offset in the y direction. */
|
|
float dst_xy_ratio; /*!< The destination x/y ratio. Range: 0.1 ~ 2 */
|
|
|
|
//int enable_object_tracking;
|
|
} msg_fec_t;
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif |