MWCapture SDK Linux  3.3.1.LAST_SVN_COMMIT_NUM
mw_venc_common.h
1 #ifndef MW_VENC_COMMON_H
2 #define MW_VENC_COMMON_H
3 
4 #include <stdint.h>
5 
17 typedef enum mw_venc_frame_type
18 {
26 
37 typedef struct mw_venc_frame_info
38 {
39  mw_venc_frame_type_t frame_type;
40  int32_t delay;
41  int64_t pts;
43 
52 typedef void(*MW_ENCODER_CALLBACK)(void * user_ptr, const uint8_t * p_frame, uint32_t frame_len, mw_venc_frame_info_t *p_frame_info);
53 
63 typedef enum mw_venc_platform
64 {
71 
83 typedef enum mw_venc_code_type
84 {
92 
105 {
112 
127 {
134 
146 typedef enum mw_venc_profile
147 {
155 
167 typedef enum mw_venc_level
168 {
179 
191 typedef enum mw_venc_fourcc
192 {
206 
221 typedef struct mw_venc_rate_control
222 {
224  union{
225  struct {
226  uint32_t target_bitrate;
227  uint32_t max_bitrate;
228  };
229  struct {
230  uint8_t qpi;
231  uint8_t qpb;
232  uint8_t qpp;
233  uint8_t reserved;
234  };
235  };
237 
251 typedef struct mw_venc_fps{
252  int32_t num;
253  int32_t den;
255 
266 typedef struct mw_venc_extdata {
267  uint8_t *p_extdata;
268  uint32_t extdata_len;
269  uint32_t len[3];
271 
280 typedef enum mw_venc_property
281 {
292 
298 typedef enum mw_venc_status
299 {
308 
317 typedef enum mw_venc_amd_mem_type {
326 
345 typedef struct mw_venc_param {
350  int32_t width;
351  int32_t height;
353  int32_t slice_num;
354  int32_t gop_pic_size;
355  int32_t gop_ref_size;
358  int32_t intel_async_depth;
361 
372 typedef struct mw_venc_gpu_info {
373  char gpu_name[128];
374  mw_venc_platform_t platform;
376 
377 #endif
The maximum input value.
Definition: mw_venc_common.h:153
The maximum input value.
Definition: mw_venc_common.h:132
enum mw_venc_frame_type mw_venc_frame_type_t
mw_venc_frame_type_t
mw_venc_extdata_t
Definition: mw_venc_common.h:266
P010 equals MWFOURCC_P010.
Definition: mw_venc_common.h:199
enum mw_venc_property mw_venc_property_t
mw_venc_property_t
The maximum input value.
Definition: mw_venc_common.h:110
Level 6.2.
Definition: mw_venc_common.h:176
mw_venc_fourcc
mw_venc_fourcc_t
Definition: mw_venc_common.h:191
Not supported.
Definition: mw_venc_common.h:302
struct mw_venc_rate_control mw_venc_rate_control_t
mw_venc_rate_control_t
H264.
Definition: mw_venc_common.h:88
uint8_t qpb
B-Frame QP.
Definition: mw_venc_common.h:231
ABGR equals MWFOURCC_ABGR.
Definition: mw_venc_common.h:203
struct mw_venc_fps mw_venc_fps_t
mw_venc_fps_t
The maximum input value.
Definition: mw_venc_common.h:306
mw_venc_targetusage
mw_venc_targetusage_t
Definition: mw_venc_common.h:104
HEVC/H265.
Definition: mw_venc_common.h:87
Variable Bit Rate.
Definition: mw_venc_common.h:130
Uses memory.
Definition: mw_venc_common.h:319
Number of slices: int32_t default 1.
Definition: mw_venc_common.h:286
Quality first.
Definition: mw_venc_common.h:107
Level 3.1.
Definition: mw_venc_common.h:171
int32_t num
Numerator of frames.
Definition: mw_venc_common.h:252
mw_venc_amd_mem_type
mw_venc_amd_mem_type_t
Definition: mw_venc_common.h:317
The maximum input value.
Definition: mw_venc_common.h:69
Unknown error.
Definition: mw_venc_common.h:305
mw_venc_targetusage_t targetusage
Preset.
Definition: mw_venc_common.h:348
Unknown.
Definition: mw_venc_common.h:193
YV12 equals MWFOURCC_YV12.
Definition: mw_venc_common.h:196
P-frame.
Definition: mw_venc_common.h:22
Uses DX9.
Definition: mw_venc_common.h:320
int32_t height
Height of input video.
Definition: mw_venc_common.h:351
mw_venc_fps_t fps
Frame rate.
Definition: mw_venc_common.h:352
uint32_t target_bitrate
Target bitrate: only valid when the bitrate is variable or constant.
Definition: mw_venc_common.h:226
Invalid parameter.
Definition: mw_venc_common.h:304
Unknown hardware type, the binary value is 0000 0000.
Definition: mw_venc_common.h:65
GOP: int32_t default 60.
Definition: mw_venc_common.h:285
mw_venc_code_type
mw_venc_code_type_t
Definition: mw_venc_common.h:83
Nvidia graphics, the binary value is 0000 0100.
Definition: mw_venc_common.h:68
NV21 equals MWFOURCC_NV21.
Definition: mw_venc_common.h:195
Level 4.1.
Definition: mw_venc_common.h:172
enum mw_venc_profile mw_venc_profile_t
mw_venc_profile_t
Level 2.1.
Definition: mw_venc_common.h:170
Constant Bit Rate.
Definition: mw_venc_common.h:129
uint8_t reserved
Reserved.
Definition: mw_venc_common.h:233
mw_venc_code_type_t code_type
Code type, H264 or H265.
Definition: mw_venc_common.h:346
struct mw_venc_extdata mw_venc_extdata_t
mw_venc_extdata_t
Frame rate: mw_venc_fps_t default 60/1.
Definition: mw_venc_common.h:284
struct mw_venc_param mw_venc_param_t
mw_venc_param_t
I420 equals MWFOURCC_I420.
Definition: mw_venc_common.h:197
AMD graphics, the binary value is 0000 0001.
Definition: mw_venc_common.h:66
mw_venc_rate_control_t rate_control
Frame control.
Definition: mw_venc_common.h:349
The maximum input value.
Definition: mw_venc_common.h:90
mw_venc_rate_control_mode_t mode
Bitrate controlling methods.
Definition: mw_venc_common.h:223
void(* MW_ENCODER_CALLBACK)(void *user_ptr, const uint8_t *p_frame, uint32_t frame_len, mw_venc_frame_info_t *p_frame_info)
Callback functions.
Definition: mw_venc_common.h:52
Speed first.
Definition: mw_venc_common.h:109
BGRA equals MWFOURCC_BGRA.
Definition: mw_venc_common.h:200
enum mw_venc_targetusage mw_venc_targetusage_t
mw_venc_targetusage_t
Unknown.
Definition: mw_venc_common.h:106
H264 main.
Definition: mw_venc_common.h:150
enum mw_venc_level mw_venc_level_t
mw_venc_level_t
mw_venc_level_t level
Level.
Definition: mw_venc_common.h:357
Unknown.
Definition: mw_venc_common.h:282
Unknown.
Definition: mw_venc_common.h:148
mw_venc_status
mw_venc_status_t
Definition: mw_venc_common.h:298
int32_t width
width of input video
Definition: mw_venc_common.h:350
mw_venc_property
mw_venc_property_t
Definition: mw_venc_common.h:280
The maximum input value.
Definition: mw_venc_common.h:204
enum mw_venc_platform mw_venc_platform_t
mw_venc_platform_t
Success.
Definition: mw_venc_common.h:300
uint32_t extdata_len
The total length of entended data.
Definition: mw_venc_common.h:268
mw_venc_gpu_info_t
Definition: mw_venc_common.h:372
uint32_t max_bitrate
The maximun bitrate: only valid when the bitrate is variable.
Definition: mw_venc_common.h:227
mw_venc_fourcc_t fourcc
Color format of input data.
Definition: mw_venc_common.h:347
ARGB equals MWFOURCC_ARGB.
Definition: mw_venc_common.h:202
NV12 equals MWFOURCC_NV12.
Definition: mw_venc_common.h:194
Unknown.
Definition: mw_venc_common.h:128
Level 5.2.
Definition: mw_venc_common.h:174
uint8_t * p_extdata
Extended data pointer. The data includes vps(Video Parameter Set),sps(Sequence Parameter Set) and pps...
Definition: mw_venc_common.h:267
The maximum input value.
Definition: mw_venc_common.h:177
B-frame.
Definition: mw_venc_common.h:23
H265 main.
Definition: mw_venc_common.h:152
uint8_t qpi
I-Frame QP.
Definition: mw_venc_common.h:230
mw_venc_frame_type
mw_venc_frame_type_t
Definition: mw_venc_common.h:17
H264 baseline.
Definition: mw_venc_common.h:149
mw_venc_rate_control_mode
mw_venc_rate_control_mode_t
Definition: mw_venc_common.h:126
enum mw_venc_fourcc mw_venc_fourcc_t
mw_venc_fourcc_t
mw_venc_param_t
Definition: mw_venc_common.h:345
RGBA equals MWFOURCC_RGBA.
Definition: mw_venc_common.h:201
enum mw_venc_amd_mem_type mw_venc_amd_mem_type_t
mw_venc_amd_mem_type_t
Unknown.
Definition: mw_venc_common.h:169
YUY2 equals MWFOURCC_YUY2.
Definition: mw_venc_common.h:198
Unknown.
Definition: mw_venc_common.h:85
GOP reference size: int32_t defalut 0, if = 1 -> no b-frame.
Definition: mw_venc_common.h:287
Force IDR.
Definition: mw_venc_common.h:289
H264 high.
Definition: mw_venc_common.h:151
AVC/H264.
Definition: mw_venc_common.h:86
IDR frame.
Definition: mw_venc_common.h:20
uint8_t qpp
P-Frame QP.
Definition: mw_venc_common.h:232
mw_venc_platform
mw_venc_platform_t
Definition: mw_venc_common.h:63
mw_venc_frame_info_t Defines the types infomation of frame to be encoded. Related type(s): mw_venc_...
Definition: mw_venc_common.h:37
Extened data: mw_venc_extdata_t just get vps sps pps.
Definition: mw_venc_common.h:288
Number of frame types enumerated.
Definition: mw_venc_common.h:24
mw_venc_profile
mw_venc_profile_t
Definition: mw_venc_common.h:146
enum mw_venc_rate_control_mode mw_venc_rate_control_mode_t
mw_venc_rate_control_mode_t
mw_venc_rate_control_t
Definition: mw_venc_common.h:221
struct mw_venc_frame_info mw_venc_frame_info_t
mw_venc_frame_info_t Defines the types infomation of frame to be encoded. Related type(s): mw_venc_...
int32_t gop_ref_size
Referenced GOP size.
Definition: mw_venc_common.h:355
Uses OpenGL.
Definition: mw_venc_common.h:322
mw_venc_fps_t
Definition: mw_venc_common.h:251
Intel graphics, the binary value is 0000 0010.
Definition: mw_venc_common.h:67
Level 6.1.
Definition: mw_venc_common.h:175
Balance the coding quality and speed.
Definition: mw_venc_common.h:108
The maximum input value.
Definition: mw_venc_common.h:290
mw_venc_level
mw_venc_level_t
Definition: mw_venc_common.h:167
Level 5.1.
Definition: mw_venc_common.h:173
I-frame.
Definition: mw_venc_common.h:21
Busy.
Definition: mw_venc_common.h:303
Uses memory determined by system.
Definition: mw_venc_common.h:318
enum mw_venc_status mw_venc_status_t
mw_venc_status_t
enum mw_venc_code_type mw_venc_code_type_t
mw_venc_code_type_t
Rate: mw_venc_rate_control_t default MW_VENC_RATECONTROL_CBR 4096k.
Definition: mw_venc_common.h:283
Constant Quantization Parameter.
Definition: mw_venc_common.h:131
Uses Vulkan.
Definition: mw_venc_common.h:323
The maximum input value.
Definition: mw_venc_common.h:324
struct mw_venc_gpu_info mw_venc_gpu_info_t
mw_venc_gpu_info_t
Fail.
Definition: mw_venc_common.h:301
Unknown frame.
Definition: mw_venc_common.h:19
mw_venc_amd_mem_type_t amd_mem_reserved
Intel.
Definition: mw_venc_common.h:359
mw_venc_profile_t profile
Profile.
Definition: mw_venc_common.h:356
int32_t gop_pic_size
GOP size.
Definition: mw_venc_common.h:354
int32_t slice_num
Slice number.
Definition: mw_venc_common.h:353
Uses DX11.
Definition: mw_venc_common.h:321
H265.
Definition: mw_venc_common.h:89
int32_t den
Denominator of frames.
Definition: mw_venc_common.h:253