MWCapture SDK Mac 3.4.62314

- Home
- Development Library
- Release Notes

mw_venc_common.h
1#ifndef MW_VENC_COMMON_H
2#define MW_VENC_COMMON_H
3
5// Copyright (c) 2011-2020 Magewell Electronics Co., Ltd. (Nanjing)
6//
7// Permission is hereby granted, free of charge, to any person obtaining a
8// copy of this software and associated documentation files (the "Software"),
9// to deal in the Software without restriction, including without limitation
10// the rights to use, copy, modify, merge, publish, distribute, sublicense,
11// and/or sell copies of the Software, and to permit persons to whom the
12// Software is furnished to do so, subject to the following conditions:
13//
14// The above copyright notice and this permission notice shall be included
15// in all copies or substantial portions of the Software.
16//
17// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23// THE SOFTWARE.
25
26#include <stdint.h>
27
39 typedef enum mw_venc_frame_type
40{
41 MW_VENC_FRAME_TYPE_UNKNOWN,
42 MW_VENC_FRAME_TYPE_IDR,
43 MW_VENC_FRAME_TYPE_I,
44 MW_VENC_FRAME_TYPE_P,
45 MW_VENC_FRAME_TYPE_B,
46 MW_VENC_FRAME_TYPE_COUNT
47}mw_venc_frame_type_t;
48
59 typedef struct mw_venc_frame_info
60{
61 mw_venc_frame_type_t frame_type;
62 int32_t delay;
63 int64_t pts;
64}mw_venc_frame_info_t;
65
74 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);
75
76 typedef void(*MW_ENCODER_CALLBACK_NALU)(void * user_ptr, const uint8_t *p_nalu_buf[], uint32_t nalu_len[], uint32_t nalu_num, mw_venc_frame_info_t *p_frame_info);
77
89 typedef enum mw_venc_code_type
90{
91 MW_VENC_CODE_TYPE_UNKNOWN,
92 MW_VENC_CODE_TYPE_AVC,
93 MW_VENC_CODE_TYPE_HEVC,
94 MW_VENC_CODE_TYPE_H264 = MW_VENC_CODE_TYPE_AVC,
95 MW_VENC_CODE_TYPE_H265 = MW_VENC_CODE_TYPE_HEVC,
96 MW_VENC_CODE_TYPE_COUNT
97}mw_venc_code_type_t;
98
110 typedef enum mw_venc_targetusage
111{
112 MW_VENC_TARGETUSAGE_UNKNOWN,
113 MW_VENC_TARGETUSAGE_BEST_QUALITY,
114 MW_VENC_TARGETUSAGE_BALANCED,
115 MW_VENC_TARGETUSAGE_BEST_SPEED,
116 MW_VENC_TARGETUSAGE_COUNT
117}mw_venc_targetusage_t;
118
132 typedef enum mw_venc_rate_control_mode
133{
134 MW_VENC_RATECONTROL_UNKNOWN,
135 MW_VENC_RATECONTROL_CBR,
136 MW_VENC_RATECONTROL_VBR,
137 MW_VENC_RATECONTROL_CQP,
138 MW_VENC_RATECONTROL_COUNT
139}mw_venc_rate_control_mode_t;
140
152 typedef enum mw_venc_profile
153{
154 MW_VENC_PROFILE_UNKNOWN,
155 MW_VENC_PROFILE_H264_BASELINE,
156 MW_VENC_PROFILE_H264_MAIN,
157 MW_VENC_PROFILE_H264_HIGH,
158 MW_VENC_PROFILE_H265_MAIN,
159 MW_VENC_PROFILE_COUNT
160}mw_venc_profile_t;
161
173 typedef enum mw_venc_level
174{
175 MW_VENC_LEVEL_UNKNOWN,
176 MW_VENC_LEVEL_2_1,
177 MW_VENC_LEVEL_3_1,
178 MW_VENC_LEVEL_4_1,
179 MW_VENC_LEVEL_5_1,
180 MW_VENC_LEVEL_5_2,
181 MW_VENC_LEVEL_6_1,
182 MW_VENC_LEVEL_6_2,
183 MW_VENC_LEVEL_COUNT
184}mw_venc_level_t;
185
197 typedef enum mw_venc_fourcc
198{
199 MW_VENC_FOURCC_UNKNOWN,
200 MW_VENC_FOURCC_NV12,
201 MW_VENC_FOURCC_NV21,
202 MW_VENC_FOURCC_YV12,
203 MW_VENC_FOURCC_I420,
204 MW_VENC_FOURCC_YUY2,
205 MW_VENC_FOURCC_P010,
206 MW_VENC_FOURCC_BGRA,
207 MW_VENC_FOURCC_RGBA,
208 MW_VENC_FOURCC_ARGB,
209 MW_VENC_FOURCC_ABGR,
210 MW_VENC_FOURCC_COUNT
211}mw_venc_fourcc_t;
212
227 typedef struct mw_venc_rate_control
228{
229 mw_venc_rate_control_mode_t mode;
230 union{
231 struct {
232 uint32_t target_bitrate;
233 uint32_t max_bitrate;
234 };
235 struct {
236 uint8_t qpi;
237 uint8_t qpb;
238 uint8_t qpp;
239 uint8_t reserved;
240 };
241 };
242}mw_venc_rate_control_t;
243
257 typedef struct mw_venc_fps{
258 int32_t num;
259 int32_t den;
260}mw_venc_fps_t;
261
272 typedef struct mw_venc_extdata {
273 uint8_t *p_extdata;
274 uint32_t extdata_len;
275 uint32_t len[3];
276}mw_venc_extdata_t;
277
286 typedef enum mw_venc_property
287{
288 MW_VENC_PROPERTY_UNKNOWN,
289 MW_VENC_PROPERTY_RATE_CONTROL,
290 MW_VENC_PROPERTY_FPS,
291 MW_VENC_PROPERTY_GOP_SIZE,
292 MW_VENC_PROPERTY_SLICE_NUM,
293 MW_VENC_PROPERTY_GOP_REF_SIZE,
294 MW_VENC_PROPERTY_EXTDATA,
295 MW_VENC_PROPERTY_FORCE_IDR,
296 MW_VENC_PROPERTY_COUNT
297}mw_venc_property_t;
298
304 typedef enum mw_venc_status
305{
306 MW_VENC_STATUS_SUCCESS,
307 MW_VENC_STATUS_FAIL,
308 MW_VENC_STATUS_UNSUPPORT,
309 MW_VENC_STATUS_BUSY,
310 MW_VENC_STATUS_INVALID_PARAM,
311 MW_VENC_STATUS_UNKNOWN_ERROR,
312 MW_VENC_STATUS_COUNT
313}mw_venc_status_t;
314
315
316//
317
324 typedef enum mw_venc_color_primaries {
325 MW_VENC_COLOR_PRI_RESERVED0 = 0,
326 MW_VENC_COLOR_PRI_BT709 = 1,
327 MW_VENC_COLOR_PRI_UNSPECIFIED = 2,
328 MW_VENC_COLOR_PRI_RESERVED = 3,
329 MW_VENC_COLOR_PRI_BT470M = 4,
330
331 MW_VENC_COLOR_PRI_BT470BG = 5,
332 MW_VENC_COLOR_PRI_SMPTE170M = 6,
333 MW_VENC_COLOR_PRI_SMPTE240M = 7,
334 MW_VENC_COLOR_PRI_FILM = 8,
335 MW_VENC_COLOR_PRI_BT2020 = 9,
336 MW_VENC_COLOR_PRI_SMPTE428 = 10,
337 MW_VENC_COLOR_PRI_SMPTEST428_1 = MW_VENC_COLOR_PRI_SMPTE428,
338 MW_VENC_COLOR_PRI_SMPTE431 = 11,
339 MW_VENC_COLOR_PRI_SMPTE432 = 12,
340 MW_VENC_COLOR_PRI_JEDEC_P22 = 22,
341 MW_VENC_COLOR_PRI_COUNT
342}mw_venc_color_primaries_t;
343
350 typedef enum mw_venc_color_transfer_characteristic {
351 MW_VENC_COLOR_TRC_RESERVED0 = 0,
352 MW_VENC_COLOR_TRC_BT709 = 1,
353 MW_VENC_COLOR_TRC_UNSPECIFIED = 2,
354 MW_VENC_COLOR_TRC_RESERVED = 3,
355 MW_VENC_COLOR_TRC_GAMMA22 = 4,
356 MW_VENC_COLOR_TRC_GAMMA28 = 5,
357 MW_VENC_COLOR_TRC_SMPTE170M = 6,
358 MW_VENC_COLOR_TRC_SMPTE240M = 7,
359 MW_VENC_COLOR_TRC_LINEAR = 8,
360 MW_VENC_COLOR_TRC_LOG = 9,
361 MW_VENC_COLOR_TRC_LOG_SQRT = 10,
362 MW_VENC_COLOR_TRC_IEC61966_2_4 = 11,
363 MW_VENC_COLOR_TRC_BT1361_ECG = 12,
364 MW_VENC_COLOR_TRC_IEC61966_2_1 = 13,
365 MW_VENC_COLOR_TRC_BT2020_10 = 14,
366 MW_VENC_COLOR_TRC_BT2020_12 = 15,
367 MW_VENC_COLOR_TRC_SMPTE2084 = 16,
368 MW_VENC_COLOR_TRC_SMPTEST2084 = MW_VENC_COLOR_TRC_SMPTE2084,
369 MW_VENC_COLOR_TRC_SMPTE428 = 17,
370 MW_VENC_COLOR_TRC_SMPTEST428_1 = MW_VENC_COLOR_TRC_SMPTE428,
371 MW_VENC_COLOR_TRC_ARIB_STD_B67 = 18,
372 MW_VENC_COLOR_TRC_COUNT
373}mw_venc_color_transfer_characteristic_t;
374
381 typedef enum mw_venc_color_space {
382 MW_VENC_COLOR_SPACE_RGB = 0,
383 MW_VENC_COLOR_SPACE_BT709 = 1,
384 MW_VENC_COLOR_SPACE_UNSPECIFIED = 2,
385 MW_VENC_COLOR_SPACE_RESERVED = 3,
386 MW_VENC_COLOR_SPACE_FCC = 4,
387 MW_VENC_COLOR_SPACE_BT470BG = 5,
388 MW_VENC_COLOR_SPACE_SMPTE170M = 6,
389 MW_VENC_COLOR_SPACE_SMPTE240M = 7,
390 MW_VENC_COLOR_SPACE_YCGCO = 8,
391 MW_VENC_COLOR_SPACE_YCOCG = MW_VENC_COLOR_SPACE_YCGCO,
392 MW_VENC_COLOR_SPACE_BT2020_NCL = 9,
393 MW_VENC_COLOR_SPACE_BT2020_CL = 10,
394 MW_VENC_COLOR_SPACE_SMPTE2085 = 11,
395 MW_VENC_COLOR_SPACE_CHROMA_DERIVED_NCL = 12,
396 MW_VENC_COLOR_SPACE_CHROMA_DERIVED_CL = 13,
397 MW_VENC_COLOR_SPACE_ICTCP = 14,
398 MW_VENC_COLOR_SPACE_COUNT
399}mw_venc_color_space_t;
400
401
420 typedef struct mw_venc_param {
421 mw_venc_code_type_t code_type;
422 mw_venc_fourcc_t fourcc;
423 mw_venc_targetusage_t targetusage;
424 mw_venc_rate_control_t rate_control;
425 int32_t width;
426 int32_t height;
427 mw_venc_fps_t fps;
428 int32_t slice_num;
429 int32_t gop_pic_size;
430 int32_t gop_ref_size;
431 mw_venc_profile_t profile;
432 mw_venc_level_t level;
433 int32_t intel_async_depth;
434 int32_t yuv_is_full_range;
435 mw_venc_color_primaries_t color_primaries;
436 mw_venc_color_transfer_characteristic_t color_trc;
437 mw_venc_color_space_t color_space;
438}mw_venc_param_t;
439
440#endif
MW_ENCODER_CALLBACK
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:74
mw_venc_fourcc
mw_venc_fourcc
mw_venc_fourcc_t
Definition: mw_venc_common.h:198
mw_venc_color_space
mw_venc_color_space
mw_venc_color_space_t YUV colorspace type. These values match the ones defined by ISO/IEC 23001-8_201...
Definition: mw_venc_common.h:381
mw_venc_code_type
mw_venc_code_type
mw_venc_code_type_t
Definition: mw_venc_common.h:90
mw_venc_frame_type
mw_venc_frame_type
mw_venc_frame_type_t
Definition: mw_venc_common.h:40
mw_venc_color_primaries
mw_venc_color_primaries
mw_venc_color_primaries_t Chromaticity coordinates of the source primaries. These values match the on...
Definition: mw_venc_common.h:324
mw_venc_frame_type_t
enum mw_venc_frame_type mw_venc_frame_type_t
mw_venc_frame_type_t
mw_venc_code_type_t
enum mw_venc_code_type mw_venc_code_type_t
mw_venc_code_type_t
mw_venc_rate_control_mode_t
enum mw_venc_rate_control_mode mw_venc_rate_control_mode_t
mw_venc_rate_control_mode_t
mw_venc_level
mw_venc_level
mw_venc_level_t
Definition: mw_venc_common.h:174
mw_venc_status
mw_venc_status
mw_venc_status_t
Definition: mw_venc_common.h:305
mw_venc_profile_t
enum mw_venc_profile mw_venc_profile_t
mw_venc_profile_t
mw_venc_color_transfer_characteristic
mw_venc_color_transfer_characteristic
mw_venc_color_transfer_characteristic_t Color Transfer Characteristic. These values match the ones de...
Definition: mw_venc_common.h:350
mw_venc_targetusage
mw_venc_targetusage
mw_venc_targetusage_t
Definition: mw_venc_common.h:111
mw_venc_fourcc_t
enum mw_venc_fourcc mw_venc_fourcc_t
mw_venc_fourcc_t
mw_venc_level_t
enum mw_venc_level mw_venc_level_t
mw_venc_level_t
mw_venc_color_primaries_t
enum mw_venc_color_primaries mw_venc_color_primaries_t
mw_venc_color_primaries_t Chromaticity coordinates of the source primaries. These values match the on...
mw_venc_profile
mw_venc_profile
mw_venc_profile_t
Definition: mw_venc_common.h:153
mw_venc_color_transfer_characteristic_t
enum mw_venc_color_transfer_characteristic mw_venc_color_transfer_characteristic_t
mw_venc_color_transfer_characteristic_t Color Transfer Characteristic. These values match the ones de...
mw_venc_targetusage_t
enum mw_venc_targetusage mw_venc_targetusage_t
mw_venc_targetusage_t
mw_venc_status_t
enum mw_venc_status mw_venc_status_t
mw_venc_status_t
mw_venc_property_t
enum mw_venc_property mw_venc_property_t
mw_venc_property_t
mw_venc_rate_control_mode
mw_venc_rate_control_mode
mw_venc_rate_control_mode_t
Definition: mw_venc_common.h:133
mw_venc_property
mw_venc_property
mw_venc_property_t
Definition: mw_venc_common.h:287
mw_venc_color_space_t
enum mw_venc_color_space mw_venc_color_space_t
mw_venc_color_space_t YUV colorspace type. These values match the ones defined by ISO/IEC 23001-8_201...
MW_VENC_FOURCC_UNKNOWN
@ MW_VENC_FOURCC_UNKNOWN
Unknown.
Definition: mw_venc_common.h:199
MW_VENC_FOURCC_ARGB
@ MW_VENC_FOURCC_ARGB
ARGB equals MWFOURCC_ARGB.
Definition: mw_venc_common.h:208
MW_VENC_FOURCC_ABGR
@ MW_VENC_FOURCC_ABGR
ABGR equals MWFOURCC_ABGR.
Definition: mw_venc_common.h:209
MW_VENC_FOURCC_I420
@ MW_VENC_FOURCC_I420
I420 equals MWFOURCC_I420.
Definition: mw_venc_common.h:203
MW_VENC_FOURCC_RGBA
@ MW_VENC_FOURCC_RGBA
RGBA equals MWFOURCC_RGBA.
Definition: mw_venc_common.h:207
MW_VENC_FOURCC_COUNT
@ MW_VENC_FOURCC_COUNT
The maximum input value.
Definition: mw_venc_common.h:210
MW_VENC_FOURCC_YUY2
@ MW_VENC_FOURCC_YUY2
YUY2 equals MWFOURCC_YUY2.
Definition: mw_venc_common.h:204
MW_VENC_FOURCC_NV21
@ MW_VENC_FOURCC_NV21
NV21 equals MWFOURCC_NV21.
Definition: mw_venc_common.h:201
MW_VENC_FOURCC_YV12
@ MW_VENC_FOURCC_YV12
YV12 equals MWFOURCC_YV12.
Definition: mw_venc_common.h:202
MW_VENC_FOURCC_P010
@ MW_VENC_FOURCC_P010
P010 equals MWFOURCC_P010.
Definition: mw_venc_common.h:205
MW_VENC_FOURCC_BGRA
@ MW_VENC_FOURCC_BGRA
BGRA equals MWFOURCC_BGRA.
Definition: mw_venc_common.h:206
MW_VENC_FOURCC_NV12
@ MW_VENC_FOURCC_NV12
NV12 equals MWFOURCC_NV12.
Definition: mw_venc_common.h:200
MW_VENC_COLOR_SPACE_SMPTE170M
@ MW_VENC_COLOR_SPACE_SMPTE170M
also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC
Definition: mw_venc_common.h:388
MW_VENC_COLOR_SPACE_BT2020_CL
@ MW_VENC_COLOR_SPACE_BT2020_CL
ITU-R BT2020 constant luminance system.
Definition: mw_venc_common.h:393
MW_VENC_COLOR_SPACE_COUNT
@ MW_VENC_COLOR_SPACE_COUNT
Not part of ABI.
Definition: mw_venc_common.h:398
MW_VENC_COLOR_SPACE_RGB
@ MW_VENC_COLOR_SPACE_RGB
order of coefficients is actually GBR, also IEC 61966-2-1 (sRGB)
Definition: mw_venc_common.h:382
MW_VENC_COLOR_SPACE_SMPTE240M
@ MW_VENC_COLOR_SPACE_SMPTE240M
functionally identical to above
Definition: mw_venc_common.h:389
MW_VENC_COLOR_SPACE_SMPTE2085
@ MW_VENC_COLOR_SPACE_SMPTE2085
SMPTE 2085, Y'D'zD'x.
Definition: mw_venc_common.h:394
MW_VENC_COLOR_SPACE_BT709
@ MW_VENC_COLOR_SPACE_BT709
also ITU-R BT1361 / IEC 61966-2-4 xvYCC709 / SMPTE RP177 Annex B
Definition: mw_venc_common.h:383
MW_VENC_COLOR_SPACE_BT2020_NCL
@ MW_VENC_COLOR_SPACE_BT2020_NCL
ITU-R BT2020 non-constant luminance system.
Definition: mw_venc_common.h:392
MW_VENC_COLOR_SPACE_CHROMA_DERIVED_NCL
@ MW_VENC_COLOR_SPACE_CHROMA_DERIVED_NCL
Chromaticity-derived non-constant luminance system.
Definition: mw_venc_common.h:395
MW_VENC_COLOR_SPACE_YCGCO
@ MW_VENC_COLOR_SPACE_YCGCO
Used by Dirac / VC-2 and H.264 FRext, see ITU-T SG16.
Definition: mw_venc_common.h:390
MW_VENC_COLOR_SPACE_CHROMA_DERIVED_CL
@ MW_VENC_COLOR_SPACE_CHROMA_DERIVED_CL
Chromaticity-derived constant luminance system.
Definition: mw_venc_common.h:396
MW_VENC_COLOR_SPACE_BT470BG
@ MW_VENC_COLOR_SPACE_BT470BG
also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM / IEC 61966-2-4 xvYCC601
Definition: mw_venc_common.h:387
MW_VENC_COLOR_SPACE_ICTCP
@ MW_VENC_COLOR_SPACE_ICTCP
ITU-R BT.2100-0, ICtCp.
Definition: mw_venc_common.h:397
MW_VENC_COLOR_SPACE_FCC
@ MW_VENC_COLOR_SPACE_FCC
FCC Title 47 Code of Federal Regulations 73.682 (a)(20)
Definition: mw_venc_common.h:386
MW_VENC_CODE_TYPE_COUNT
@ MW_VENC_CODE_TYPE_COUNT
The maximum input value.
Definition: mw_venc_common.h:96
MW_VENC_CODE_TYPE_HEVC
@ MW_VENC_CODE_TYPE_HEVC
HEVC/H265.
Definition: mw_venc_common.h:93
MW_VENC_CODE_TYPE_H264
@ MW_VENC_CODE_TYPE_H264
H264.
Definition: mw_venc_common.h:94
MW_VENC_CODE_TYPE_H265
@ MW_VENC_CODE_TYPE_H265
H265.
Definition: mw_venc_common.h:95
MW_VENC_CODE_TYPE_UNKNOWN
@ MW_VENC_CODE_TYPE_UNKNOWN
Unknown.
Definition: mw_venc_common.h:91
MW_VENC_CODE_TYPE_AVC
@ MW_VENC_CODE_TYPE_AVC
AVC/H264.
Definition: mw_venc_common.h:92
MW_VENC_FRAME_TYPE_I
@ MW_VENC_FRAME_TYPE_I
I-frame.
Definition: mw_venc_common.h:43
MW_VENC_FRAME_TYPE_B
@ MW_VENC_FRAME_TYPE_B
B-frame.
Definition: mw_venc_common.h:45
MW_VENC_FRAME_TYPE_IDR
@ MW_VENC_FRAME_TYPE_IDR
IDR frame.
Definition: mw_venc_common.h:42
MW_VENC_FRAME_TYPE_UNKNOWN
@ MW_VENC_FRAME_TYPE_UNKNOWN
Unknown frame.
Definition: mw_venc_common.h:41
MW_VENC_FRAME_TYPE_P
@ MW_VENC_FRAME_TYPE_P
P-frame.
Definition: mw_venc_common.h:44
MW_VENC_FRAME_TYPE_COUNT
@ MW_VENC_FRAME_TYPE_COUNT
Number of frame types enumerated.
Definition: mw_venc_common.h:46
MW_VENC_COLOR_PRI_JEDEC_P22
@ MW_VENC_COLOR_PRI_JEDEC_P22
JEDEC P22 phosphors.
Definition: mw_venc_common.h:340
MW_VENC_COLOR_PRI_SMPTE428
@ MW_VENC_COLOR_PRI_SMPTE428
SMPTE ST 428-1 (CIE 1931 XYZ)
Definition: mw_venc_common.h:336
MW_VENC_COLOR_PRI_SMPTE240M
@ MW_VENC_COLOR_PRI_SMPTE240M
functionally identical to above
Definition: mw_venc_common.h:333
MW_VENC_COLOR_PRI_BT470M
@ MW_VENC_COLOR_PRI_BT470M
also FCC Title 47 Code of Federal Regulations 73.682 (a)(20)
Definition: mw_venc_common.h:329
MW_VENC_COLOR_PRI_SMPTE432
@ MW_VENC_COLOR_PRI_SMPTE432
SMPTE ST 432-1 (2010) / P3 D65 / Display P3.
Definition: mw_venc_common.h:339
MW_VENC_COLOR_PRI_BT709
@ MW_VENC_COLOR_PRI_BT709
also ITU-R BT1361 / IEC 61966-2-4 / SMPTE RP177 Annex B
Definition: mw_venc_common.h:326
MW_VENC_COLOR_PRI_BT2020
@ MW_VENC_COLOR_PRI_BT2020
ITU-R BT2020.
Definition: mw_venc_common.h:335
MW_VENC_COLOR_PRI_COUNT
@ MW_VENC_COLOR_PRI_COUNT
Not part of ABI.
Definition: mw_venc_common.h:341
MW_VENC_COLOR_PRI_FILM
@ MW_VENC_COLOR_PRI_FILM
colour filters using Illuminant C
Definition: mw_venc_common.h:334
MW_VENC_COLOR_PRI_SMPTE170M
@ MW_VENC_COLOR_PRI_SMPTE170M
also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC
Definition: mw_venc_common.h:332
MW_VENC_COLOR_PRI_SMPTE431
@ MW_VENC_COLOR_PRI_SMPTE431
SMPTE ST 431-2 (2011) / DCI P3.
Definition: mw_venc_common.h:338
MW_VENC_COLOR_PRI_BT470BG
@ MW_VENC_COLOR_PRI_BT470BG
also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM
Definition: mw_venc_common.h:331
MW_VENC_LEVEL_COUNT
@ MW_VENC_LEVEL_COUNT
The maximum input value.
Definition: mw_venc_common.h:183
MW_VENC_LEVEL_UNKNOWN
@ MW_VENC_LEVEL_UNKNOWN
Unknown.
Definition: mw_venc_common.h:175
MW_VENC_LEVEL_2_1
@ MW_VENC_LEVEL_2_1
Level 2.1.
Definition: mw_venc_common.h:176
MW_VENC_LEVEL_6_1
@ MW_VENC_LEVEL_6_1
Level 6.1.
Definition: mw_venc_common.h:181
MW_VENC_LEVEL_3_1
@ MW_VENC_LEVEL_3_1
Level 3.1.
Definition: mw_venc_common.h:177
MW_VENC_LEVEL_4_1
@ MW_VENC_LEVEL_4_1
Level 4.1.
Definition: mw_venc_common.h:178
MW_VENC_LEVEL_5_2
@ MW_VENC_LEVEL_5_2
Level 5.2.
Definition: mw_venc_common.h:180
MW_VENC_LEVEL_6_2
@ MW_VENC_LEVEL_6_2
Level 6.2.
Definition: mw_venc_common.h:182
MW_VENC_LEVEL_5_1
@ MW_VENC_LEVEL_5_1
Level 5.1.
Definition: mw_venc_common.h:179
MW_VENC_STATUS_BUSY
@ MW_VENC_STATUS_BUSY
Busy.
Definition: mw_venc_common.h:309
MW_VENC_STATUS_COUNT
@ MW_VENC_STATUS_COUNT
The maximum input value.
Definition: mw_venc_common.h:312
MW_VENC_STATUS_SUCCESS
@ MW_VENC_STATUS_SUCCESS
Success.
Definition: mw_venc_common.h:306
MW_VENC_STATUS_INVALID_PARAM
@ MW_VENC_STATUS_INVALID_PARAM
Invalid parameter.
Definition: mw_venc_common.h:310
MW_VENC_STATUS_UNKNOWN_ERROR
@ MW_VENC_STATUS_UNKNOWN_ERROR
Unknown error.
Definition: mw_venc_common.h:311
MW_VENC_STATUS_FAIL
@ MW_VENC_STATUS_FAIL
Fail.
Definition: mw_venc_common.h:307
MW_VENC_STATUS_UNSUPPORT
@ MW_VENC_STATUS_UNSUPPORT
Not supported.
Definition: mw_venc_common.h:308
MW_VENC_COLOR_TRC_BT709
@ MW_VENC_COLOR_TRC_BT709
also ITU-R BT1361
Definition: mw_venc_common.h:352
MW_VENC_COLOR_TRC_ARIB_STD_B67
@ MW_VENC_COLOR_TRC_ARIB_STD_B67
ARIB STD-B67, known as "Hybrid log-gamma".
Definition: mw_venc_common.h:371
MW_VENC_COLOR_TRC_GAMMA28
@ MW_VENC_COLOR_TRC_GAMMA28
also ITU-R BT470BG
Definition: mw_venc_common.h:356
MW_VENC_COLOR_TRC_LINEAR
@ MW_VENC_COLOR_TRC_LINEAR
"Linear transfer characteristics"
Definition: mw_venc_common.h:359
MW_VENC_COLOR_TRC_IEC61966_2_4
@ MW_VENC_COLOR_TRC_IEC61966_2_4
IEC 61966-2-4.
Definition: mw_venc_common.h:362
MW_VENC_COLOR_TRC_BT2020_10
@ MW_VENC_COLOR_TRC_BT2020_10
ITU-R BT2020 for 10-bit system.
Definition: mw_venc_common.h:365
MW_VENC_COLOR_TRC_SMPTE428
@ MW_VENC_COLOR_TRC_SMPTE428
SMPTE ST 428-1.
Definition: mw_venc_common.h:369
MW_VENC_COLOR_TRC_LOG_SQRT
@ MW_VENC_COLOR_TRC_LOG_SQRT
"Logarithmic transfer characteristic (100 * Sqrt(10) : 1 range)"
Definition: mw_venc_common.h:361
MW_VENC_COLOR_TRC_IEC61966_2_1
@ MW_VENC_COLOR_TRC_IEC61966_2_1
IEC 61966-2-1 (sRGB or sYCC)
Definition: mw_venc_common.h:364
MW_VENC_COLOR_TRC_BT1361_ECG
@ MW_VENC_COLOR_TRC_BT1361_ECG
ITU-R BT1361 Extended Colour Gamut.
Definition: mw_venc_common.h:363
MW_VENC_COLOR_TRC_SMPTE170M
@ MW_VENC_COLOR_TRC_SMPTE170M
also ITU-R BT601-6 525 or 625 / ITU-R BT1358 525 or 625 / ITU-R BT1700 NTSC
Definition: mw_venc_common.h:357
MW_VENC_COLOR_TRC_SMPTE2084
@ MW_VENC_COLOR_TRC_SMPTE2084
SMPTE ST 2084 for 10-, 12-, 14- and 16-bit systems.
Definition: mw_venc_common.h:367
MW_VENC_COLOR_TRC_COUNT
@ MW_VENC_COLOR_TRC_COUNT
Not part of ABI.
Definition: mw_venc_common.h:372
MW_VENC_COLOR_TRC_BT2020_12
@ MW_VENC_COLOR_TRC_BT2020_12
ITU-R BT2020 for 12-bit system.
Definition: mw_venc_common.h:366
MW_VENC_COLOR_TRC_GAMMA22
@ MW_VENC_COLOR_TRC_GAMMA22
also ITU-R BT470M / ITU-R BT1700 625 PAL & SECAM
Definition: mw_venc_common.h:355
MW_VENC_COLOR_TRC_LOG
@ MW_VENC_COLOR_TRC_LOG
"Logarithmic transfer characteristic (100:1 range)"
Definition: mw_venc_common.h:360
MW_VENC_TARGETUSAGE_BEST_QUALITY
@ MW_VENC_TARGETUSAGE_BEST_QUALITY
Quality first.
Definition: mw_venc_common.h:113
MW_VENC_TARGETUSAGE_BEST_SPEED
@ MW_VENC_TARGETUSAGE_BEST_SPEED
Speed first.
Definition: mw_venc_common.h:115
MW_VENC_TARGETUSAGE_COUNT
@ MW_VENC_TARGETUSAGE_COUNT
The maximum input value.
Definition: mw_venc_common.h:116
MW_VENC_TARGETUSAGE_BALANCED
@ MW_VENC_TARGETUSAGE_BALANCED
Balance the coding quality and speed.
Definition: mw_venc_common.h:114
MW_VENC_TARGETUSAGE_UNKNOWN
@ MW_VENC_TARGETUSAGE_UNKNOWN
Unknown.
Definition: mw_venc_common.h:112
MW_VENC_PROFILE_H264_HIGH
@ MW_VENC_PROFILE_H264_HIGH
H264 high.
Definition: mw_venc_common.h:157
MW_VENC_PROFILE_COUNT
@ MW_VENC_PROFILE_COUNT
The maximum input value.
Definition: mw_venc_common.h:159
MW_VENC_PROFILE_UNKNOWN
@ MW_VENC_PROFILE_UNKNOWN
Unknown.
Definition: mw_venc_common.h:154
MW_VENC_PROFILE_H265_MAIN
@ MW_VENC_PROFILE_H265_MAIN
H265 main.
Definition: mw_venc_common.h:158
MW_VENC_PROFILE_H264_BASELINE
@ MW_VENC_PROFILE_H264_BASELINE
H264 baseline.
Definition: mw_venc_common.h:155
MW_VENC_PROFILE_H264_MAIN
@ MW_VENC_PROFILE_H264_MAIN
H264 main.
Definition: mw_venc_common.h:156
MW_VENC_RATECONTROL_UNKNOWN
@ MW_VENC_RATECONTROL_UNKNOWN
Unknown.
Definition: mw_venc_common.h:134
MW_VENC_RATECONTROL_CQP
@ MW_VENC_RATECONTROL_CQP
Constant Quantization Parameter.
Definition: mw_venc_common.h:137
MW_VENC_RATECONTROL_CBR
@ MW_VENC_RATECONTROL_CBR
Constant Bit Rate.
Definition: mw_venc_common.h:135
MW_VENC_RATECONTROL_COUNT
@ MW_VENC_RATECONTROL_COUNT
The maximum input value.
Definition: mw_venc_common.h:138
MW_VENC_RATECONTROL_VBR
@ MW_VENC_RATECONTROL_VBR
Variable Bit Rate.
Definition: mw_venc_common.h:136
MW_VENC_PROPERTY_FORCE_IDR
@ MW_VENC_PROPERTY_FORCE_IDR
Force IDR.
Definition: mw_venc_common.h:295
MW_VENC_PROPERTY_GOP_SIZE
@ MW_VENC_PROPERTY_GOP_SIZE
GOP: int32_t default 60.
Definition: mw_venc_common.h:291
MW_VENC_PROPERTY_EXTDATA
@ MW_VENC_PROPERTY_EXTDATA
Extened data: mw_venc_extdata_t just get vps sps pps.
Definition: mw_venc_common.h:294
MW_VENC_PROPERTY_RATE_CONTROL
@ MW_VENC_PROPERTY_RATE_CONTROL
Rate: mw_venc_rate_control_t default MW_VENC_RATECONTROL_CBR 4096k.
Definition: mw_venc_common.h:289
MW_VENC_PROPERTY_SLICE_NUM
@ MW_VENC_PROPERTY_SLICE_NUM
Number of slices: int32_t default 1.
Definition: mw_venc_common.h:292
MW_VENC_PROPERTY_UNKNOWN
@ MW_VENC_PROPERTY_UNKNOWN
Unknown.
Definition: mw_venc_common.h:288
MW_VENC_PROPERTY_COUNT
@ MW_VENC_PROPERTY_COUNT
The maximum input value.
Definition: mw_venc_common.h:296
MW_VENC_PROPERTY_FPS
@ MW_VENC_PROPERTY_FPS
Frame rate: mw_venc_fps_t default 60/1.
Definition: mw_venc_common.h:290
MW_VENC_PROPERTY_GOP_REF_SIZE
@ MW_VENC_PROPERTY_GOP_REF_SIZE
GOP reference size: int32_t defalut 0, if = 1 -> no b-frame.
Definition: mw_venc_common.h:293
mw_venc_fps_t
struct mw_venc_fps mw_venc_fps_t
mw_venc_fps_t
mw_venc_frame_info_t
struct mw_venc_frame_info mw_venc_frame_info_t
mw_venc_frame_info_t @detials Defines the types infomation of frame to be encoded....
mw_venc_extdata_t
struct mw_venc_extdata mw_venc_extdata_t
mw_venc_extdata_t
mw_venc_param_t
struct mw_venc_param mw_venc_param_t
mw_venc_param_t
mw_venc_rate_control_t
struct mw_venc_rate_control mw_venc_rate_control_t
mw_venc_rate_control_t
mw_venc_extdata
mw_venc_extdata_t
Definition: mw_venc_common.h:272
mw_venc_extdata::len
uint32_t len[3]
len[0] vps_len;len[1] sps_len;len[2] pps_len
Definition: mw_venc_common.h:275
mw_venc_extdata::extdata_len
uint32_t extdata_len
The total length of entended data.
Definition: mw_venc_common.h:274
mw_venc_extdata::p_extdata
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:273
mw_venc_fps
mw_venc_fps_t
Definition: mw_venc_common.h:257
mw_venc_fps::den
int32_t den
Denominator of frames.
Definition: mw_venc_common.h:259
mw_venc_fps::num
int32_t num
Numerator of frames.
Definition: mw_venc_common.h:258
mw_venc_frame_info
mw_venc_frame_info_t @detials Defines the types infomation of frame to be encoded....
Definition: mw_venc_common.h:60
mw_venc_param
mw_venc_param_t
Definition: mw_venc_common.h:420
mw_venc_param::level
mw_venc_level_t level
Level.
Definition: mw_venc_common.h:432
mw_venc_param::targetusage
mw_venc_targetusage_t targetusage
Preset.
Definition: mw_venc_common.h:423
mw_venc_param::gop_ref_size
int32_t gop_ref_size
Referenced GOP size.
Definition: mw_venc_common.h:430
mw_venc_param::height
int32_t height
Height of input video.
Definition: mw_venc_common.h:426
mw_venc_param::rate_control
mw_venc_rate_control_t rate_control
Frame control.
Definition: mw_venc_common.h:424
mw_venc_param::profile
mw_venc_profile_t profile
Profile.
Definition: mw_venc_common.h:431
mw_venc_param::code_type
mw_venc_code_type_t code_type
Code type, H264 or H265.
Definition: mw_venc_common.h:421
mw_venc_param::width
int32_t width
width of input video
Definition: mw_venc_common.h:425
mw_venc_param::gop_pic_size
int32_t gop_pic_size
GOP size.
Definition: mw_venc_common.h:429
mw_venc_param::fourcc
mw_venc_fourcc_t fourcc
Color format of input data.
Definition: mw_venc_common.h:422
mw_venc_param::fps
mw_venc_fps_t fps
Frame rate.
Definition: mw_venc_common.h:427
mw_venc_param::slice_num
int32_t slice_num
Slice number.
Definition: mw_venc_common.h:428
mw_venc_rate_control
mw_venc_rate_control_t
Definition: mw_venc_common.h:228
mw_venc_rate_control::target_bitrate
uint32_t target_bitrate
Target bitrate(kbit/s): only valid when the bitrate is variable or constant.
Definition: mw_venc_common.h:232
mw_venc_rate_control::qpp
uint8_t qpp
P-Frame QP.
Definition: mw_venc_common.h:238
mw_venc_rate_control::mode
mw_venc_rate_control_mode_t mode
Bitrate controlling methods.
Definition: mw_venc_common.h:229
mw_venc_rate_control::reserved
uint8_t reserved
Reserved.
Definition: mw_venc_common.h:239
mw_venc_rate_control::qpb
uint8_t qpb
B-Frame QP.
Definition: mw_venc_common.h:237
mw_venc_rate_control::qpi
uint8_t qpi
I-Frame QP.
Definition: mw_venc_common.h:236
mw_venc_rate_control::max_bitrate
uint32_t max_bitrate
The maximun bitrate(kbit/s): only valid when the bitrate is variable.
Definition: mw_venc_common.h:233