H.264 Codec for ESP32-S3
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Enumerations
codec_app_def.h File Reference

Data and /or structures introduced in Cisco OpenH264 application. More...

#include "codec_def.h"
Include dependency graph for codec_app_def.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _tagVersion
 Struct of OpenH264 version. More...
 
struct  SLTRRecoverRequest
 Structure for LTR recover request. More...
 
struct  SLTRMarkingFeedback
 Structure for LTR marking feedback. More...
 
struct  SLTRConfig
 Structure for LTR configuration. More...
 
struct  SSliceArgument
 Structure for slice argument. More...
 
struct  SSpatialLayerConfig
 Structure for spatial layer configuration. More...
 
struct  TagEncParamBase
 SVC Encoding Parameters. More...
 
struct  TagEncParamExt
 SVC Encoding Parameters extention. More...
 
struct  SVideoProperty
 Define a new struct to show the property of video bitstream. More...
 
struct  TagSVCDecodingParam
 SVC Decoding Parameters, reserved here and potential applicable in the future. More...
 
struct  SLayerBSInfo
 Bitstream inforamtion of a layer being encoded. More...
 
struct  SFrameBSInfo
 Frame bit stream info. More...
 
struct  Source_Picture_s
 Structure for source picture. More...
 
struct  TagBitrateInfo
 Structure for bit rate info. More...
 
struct  TagDumpLayer
 Structure for dump layer info. More...
 
struct  TagProfileInfo
 Structure for profile info in layer. More...
 
struct  TagLevelInfo
 Structure for level info in layer. More...
 
struct  TagDeliveryStatus
 Structure for dilivery status. More...
 
struct  TagDecoderCapability
 The capability of decoder, for SDP negotiation. More...
 
struct  TagParserBsInfo
 Structure for parse only output. More...
 
struct  TagVideoEncoderStatistics
 Structure for encoder statistics. More...
 
struct  TagVideoDecoderStatistics
 Structure for decoder statistics. More...
 
struct  TagVuiSarInfo
 Structure for sample aspect ratio (SAR) info in VUI. More...
 

Macros

#define MAX_TEMPORAL_LAYER_NUM   4
 
#define MAX_SPATIAL_LAYER_NUM   4
 
#define MAX_QUALITY_LAYER_NUM   4
 
#define MAX_LAYER_NUM_OF_FRAME   128
 
#define MAX_NAL_UNITS_IN_LAYER   128
 predetermined here, adjust it later if need
 
#define MAX_RTP_PAYLOAD_LEN   1000
 
#define AVERAGE_RTP_PAYLOAD_LEN   800
 
#define SAVED_NALUNIT_NUM_TMP   ( (MAX_SPATIAL_LAYER_NUM*MAX_QUALITY_LAYER_NUM) + 1 + MAX_SPATIAL_LAYER_NUM )
 SPS/PPS + SEI/SSEI + PADDING_NAL.
 
#define MAX_SLICES_NUM_TMP   ( ( MAX_NAL_UNITS_IN_LAYER - SAVED_NALUNIT_NUM_TMP ) / 3 )
 
#define AUTO_REF_PIC_COUNT   -1
 encoder selects the number of reference frame automatically
 
#define UNSPECIFIED_BIT_RATE   0
 to do: add detail comment
 

Typedefs

typedef struct _tagVersion OpenH264Version
 Struct of OpenH264 version.
 
typedef struct TagEncParamBase SEncParamBase
 SVC Encoding Parameters.
 
typedef struct TagEncParamBasePEncParamBase
 
typedef struct TagEncParamExt SEncParamExt
 SVC Encoding Parameters extention.
 
typedef struct TagSVCDecodingParam SDecodingParam
 SVC Decoding Parameters, reserved here and potential applicable in the future.
 
typedef struct TagSVCDecodingParamPDecodingParam
 
typedef struct SLayerBSInfoPLayerBSInfo
 
typedef struct SFrameBSInfoPFrameBSInfo
 
typedef struct Source_Picture_s SSourcePicture
 Structure for source picture.
 
typedef struct TagBitrateInfo SBitrateInfo
 Structure for bit rate info.
 
typedef struct TagDumpLayer SDumpLayer
 Structure for dump layer info.
 
typedef struct TagProfileInfo SProfileInfo
 Structure for profile info in layer.
 
typedef struct TagLevelInfo SLevelInfo
 Structure for level info in layer.
 
typedef struct TagDeliveryStatus SDeliveryStatus
 Structure for dilivery status.
 
typedef struct TagDecoderCapability SDecoderCapability
 The capability of decoder, for SDP negotiation.
 
typedef struct TagParserBsInfo SParserBsInfo
 Structure for parse only output.
 
typedef struct TagParserBsInfoPParserBsInfo
 
typedef struct TagVideoEncoderStatistics SEncoderStatistics
 Structure for encoder statistics.
 
typedef struct TagVideoDecoderStatistics SDecoderStatistics
 Structure for decoder statistics.
 
typedef struct TagVuiSarInfo SVuiSarInfo
 Structure for sample aspect ratio (SAR) info in VUI.
 
typedef struct TagVuiSarInfoPVuiSarInfo
 

Enumerations

enum  DECODING_STATE {
  dsErrorFree = 0x00 , dsFramePending = 0x01 , dsRefLost = 0x02 , dsBitstreamError = 0x04 ,
  dsDepLayerLost = 0x08 , dsNoParamSets = 0x10 , dsDataErrorConcealed = 0x20 , dsRefListNullPtrs = 0x40 ,
  dsInvalidArgument = 0x1000 , dsInitialOptExpected = 0x2000 , dsOutOfMemory = 0x4000 , dsDstBufNeedExpan = 0x8000
}
 Decoding status. More...
 
enum  ENCODER_OPTION {
  ENCODER_OPTION_DATAFORMAT = 0 , ENCODER_OPTION_IDR_INTERVAL , ENCODER_OPTION_SVC_ENCODE_PARAM_BASE , ENCODER_OPTION_SVC_ENCODE_PARAM_EXT ,
  ENCODER_OPTION_FRAME_RATE , ENCODER_OPTION_BITRATE , ENCODER_OPTION_MAX_BITRATE , ENCODER_OPTION_INTER_SPATIAL_PRED ,
  ENCODER_OPTION_RC_MODE , ENCODER_OPTION_RC_FRAME_SKIP , ENCODER_PADDING_PADDING , ENCODER_OPTION_PROFILE ,
  ENCODER_OPTION_LEVEL , ENCODER_OPTION_NUMBER_REF , ENCODER_OPTION_DELIVERY_STATUS , ENCODER_LTR_RECOVERY_REQUEST ,
  ENCODER_LTR_MARKING_FEEDBACK , ENCODER_LTR_MARKING_PERIOD , ENCODER_OPTION_LTR , ENCODER_OPTION_COMPLEXITY ,
  ENCODER_OPTION_ENABLE_SSEI , ENCODER_OPTION_ENABLE_PREFIX_NAL_ADDING , ENCODER_OPTION_SPS_PPS_ID_STRATEGY , ENCODER_OPTION_CURRENT_PATH ,
  ENCODER_OPTION_DUMP_FILE , ENCODER_OPTION_TRACE_LEVEL , ENCODER_OPTION_TRACE_CALLBACK , ENCODER_OPTION_TRACE_CALLBACK_CONTEXT ,
  ENCODER_OPTION_GET_STATISTICS , ENCODER_OPTION_STATISTICS_LOG_INTERVAL , ENCODER_OPTION_IS_LOSSLESS_LINK , ENCODER_OPTION_BITS_VARY_PERCENTAGE
}
 Option types introduced in SVC encoder application. More...
 
enum  DECODER_OPTION {
  DECODER_OPTION_END_OF_STREAM = 1 , DECODER_OPTION_VCL_NAL , DECODER_OPTION_TEMPORAL_ID , DECODER_OPTION_FRAME_NUM ,
  DECODER_OPTION_IDR_PIC_ID , DECODER_OPTION_LTR_MARKING_FLAG , DECODER_OPTION_LTR_MARKED_FRAME_NUM , DECODER_OPTION_ERROR_CON_IDC ,
  DECODER_OPTION_TRACE_LEVEL , DECODER_OPTION_TRACE_CALLBACK , DECODER_OPTION_TRACE_CALLBACK_CONTEXT , DECODER_OPTION_GET_STATISTICS ,
  DECODER_OPTION_GET_SAR_INFO , DECODER_OPTION_PROFILE , DECODER_OPTION_LEVEL , DECODER_OPTION_STATISTICS_LOG_INTERVAL ,
  DECODER_OPTION_IS_REF_PIC , DECODER_OPTION_NUM_OF_FRAMES_REMAINING_IN_BUFFER , DECODER_OPTION_NUM_OF_THREADS
}
 Option types introduced in decoder application. More...
 
enum  ERROR_CON_IDC {
  ERROR_CON_DISABLE = 0 , ERROR_CON_FRAME_COPY , ERROR_CON_SLICE_COPY , ERROR_CON_FRAME_COPY_CROSS_IDR ,
  ERROR_CON_SLICE_COPY_CROSS_IDR , ERROR_CON_SLICE_COPY_CROSS_IDR_FREEZE_RES_CHANGE , ERROR_CON_SLICE_MV_COPY_CROSS_IDR , ERROR_CON_SLICE_MV_COPY_CROSS_IDR_FREEZE_RES_CHANGE
}
 Enumerate the type of error concealment methods. More...
 
enum  FEEDBACK_VCL_NAL_IN_AU { FEEDBACK_NON_VCL_NAL = 0 , FEEDBACK_VCL_NAL , FEEDBACK_UNKNOWN_NAL }
 Feedback that whether or not have VCL NAL in current AU. More...
 
enum  LAYER_TYPE { NON_VIDEO_CODING_LAYER = 0 , VIDEO_CODING_LAYER = 1 }
 Type of layer being encoded. More...
 
enum  LAYER_NUM {
  SPATIAL_LAYER_0 = 0 , SPATIAL_LAYER_1 = 1 , SPATIAL_LAYER_2 = 2 , SPATIAL_LAYER_3 = 3 ,
  SPATIAL_LAYER_ALL = 4
}
 Spatial layer num. More...
 
enum  VIDEO_BITSTREAM_TYPE { VIDEO_BITSTREAM_AVC = 0 , VIDEO_BITSTREAM_SVC = 1 , VIDEO_BITSTREAM_DEFAULT = VIDEO_BITSTREAM_SVC }
 Enumerate the type of video bitstream which is provided to decoder. More...
 
enum  KEY_FRAME_REQUEST_TYPE {
  NO_RECOVERY_REQUSET = 0 , LTR_RECOVERY_REQUEST = 1 , IDR_RECOVERY_REQUEST = 2 , NO_LTR_MARKING_FEEDBACK = 3 ,
  LTR_MARKING_SUCCESS = 4 , LTR_MARKING_FAILED = 5
}
 Enumerate the type of key frame request. More...
 
enum  RC_MODES {
  RC_QUALITY_MODE = 0 , RC_BITRATE_MODE = 1 , RC_BUFFERBASED_MODE = 2 , RC_TIMESTAMP_MODE = 3 ,
  RC_BITRATE_MODE_POST_SKIP = 4 , RC_OFF_MODE = -1
}
 Enumerate the type of rate control mode. More...
 
enum  EProfileIdc {
  PRO_UNKNOWN = 0 , PRO_BASELINE = 66 , PRO_MAIN = 77 , PRO_EXTENDED = 88 ,
  PRO_HIGH = 100 , PRO_HIGH10 = 110 , PRO_HIGH422 = 122 , PRO_HIGH444 = 144 ,
  PRO_CAVLC444 = 244 , PRO_SCALABLE_BASELINE = 83 , PRO_SCALABLE_HIGH = 86
}
 Enumerate the type of profile id. More...
 
enum  ELevelIdc {
  LEVEL_UNKNOWN = 0 , LEVEL_1_0 = 10 , LEVEL_1_B = 9 , LEVEL_1_1 = 11 ,
  LEVEL_1_2 = 12 , LEVEL_1_3 = 13 , LEVEL_2_0 = 20 , LEVEL_2_1 = 21 ,
  LEVEL_2_2 = 22 , LEVEL_3_0 = 30 , LEVEL_3_1 = 31 , LEVEL_3_2 = 32 ,
  LEVEL_4_0 = 40 , LEVEL_4_1 = 41 , LEVEL_4_2 = 42 , LEVEL_5_0 = 50 ,
  LEVEL_5_1 = 51 , LEVEL_5_2 = 52
}
 Enumerate the type of level id. More...
 
enum  {
  WELS_LOG_QUIET = 0x00 , WELS_LOG_ERROR = 1 << 0 , WELS_LOG_WARNING = 1 << 1 , WELS_LOG_INFO = 1 << 2 ,
  WELS_LOG_DEBUG = 1 << 3 , WELS_LOG_DETAIL = 1 << 4 , WELS_LOG_RESV = 1 << 5 , WELS_LOG_LEVEL_COUNT = 6 ,
  WELS_LOG_DEFAULT = WELS_LOG_WARNING
}
 Enumerate the type of wels log. More...
 
enum  SliceModeEnum {
  SM_SINGLE_SLICE = 0 , SM_FIXEDSLCNUM_SLICE = 1 , SM_RASTER_SLICE = 2 , SM_SIZELIMITED_SLICE = 3 ,
  SM_RESERVED = 4
}
 Enumerate the type of slice mode. More...
 
enum  EVideoFormatSPS {
  VF_COMPONENT , VF_PAL , VF_NTSC , VF_SECAM ,
  VF_MAC , VF_UNDEF , VF_NUM_ENUM
}
 Enumerate the type of video format. More...
 
enum  EColorPrimaries {
  CP_RESERVED0 , CP_BT709 , CP_UNDEF , CP_RESERVED3 ,
  CP_BT470M , CP_BT470BG , CP_SMPTE170M , CP_SMPTE240M ,
  CP_FILM , CP_BT2020 , CP_NUM_ENUM
}
 Enumerate the type of color primaries. More...
 
enum  ETransferCharacteristics {
  TRC_RESERVED0 , TRC_BT709 , TRC_UNDEF , TRC_RESERVED3 ,
  TRC_BT470M , TRC_BT470BG , TRC_SMPTE170M , TRC_SMPTE240M ,
  TRC_LINEAR , TRC_LOG100 , TRC_LOG316 , TRC_IEC61966_2_4 ,
  TRC_BT1361E , TRC_IEC61966_2_1 , TRC_BT2020_10 , TRC_BT2020_12 ,
  TRC_NUM_ENUM
}
 Enumerate the type of transfer characteristics. More...
 
enum  EColorMatrix {
  CM_GBR , CM_BT709 , CM_UNDEF , CM_RESERVED3 ,
  CM_FCC , CM_BT470BG , CM_SMPTE170M , CM_SMPTE240M ,
  CM_YCGCO , CM_BT2020NC , CM_BT2020C , CM_NUM_ENUM
}
 Enumerate the type of color matrix. More...
 
enum  ESampleAspectRatio {
  ASP_UNSPECIFIED = 0 , ASP_1x1 = 1 , ASP_12x11 = 2 , ASP_10x11 = 3 ,
  ASP_16x11 = 4 , ASP_40x33 = 5 , ASP_24x11 = 6 , ASP_20x11 = 7 ,
  ASP_32x11 = 8 , ASP_80x33 = 9 , ASP_18x11 = 10 , ASP_15x11 = 11 ,
  ASP_64x33 = 12 , ASP_160x99 = 13 , ASP_EXT_SAR = 255
}
 Enumerate the type of sample aspect ratio. More...
 
enum  EUsageType {
  CAMERA_VIDEO_REAL_TIME , SCREEN_CONTENT_REAL_TIME , CAMERA_VIDEO_NON_REAL_TIME , SCREEN_CONTENT_NON_REAL_TIME ,
  INPUT_CONTENT_TYPE_ALL
}
 Encoder usage type. More...
 
enum  ECOMPLEXITY_MODE { LOW_COMPLEXITY = 0 , MEDIUM_COMPLEXITY , HIGH_COMPLEXITY }
 Enumulate the complexity mode. More...
 
enum  EParameterSetStrategy {
  CONSTANT_ID = 0 , INCREASING_ID = 0x01 , SPS_LISTING = 0x02 , SPS_LISTING_AND_PPS_INCREASING = 0x03 ,
  SPS_PPS_LISTING = 0x06
}
 Enumulate for the stategy of SPS/PPS strategy. More...
 

Detailed Description

Data and /or structures introduced in Cisco OpenH264 application.

\copy Copyright (c) 2013, Cisco Systems All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Macro Definition Documentation

◆ AUTO_REF_PIC_COUNT

#define AUTO_REF_PIC_COUNT   -1

encoder selects the number of reference frame automatically

◆ AVERAGE_RTP_PAYLOAD_LEN

#define AVERAGE_RTP_PAYLOAD_LEN   800

◆ MAX_LAYER_NUM_OF_FRAME

#define MAX_LAYER_NUM_OF_FRAME   128

◆ MAX_NAL_UNITS_IN_LAYER

#define MAX_NAL_UNITS_IN_LAYER   128

predetermined here, adjust it later if need

◆ MAX_QUALITY_LAYER_NUM

#define MAX_QUALITY_LAYER_NUM   4

◆ MAX_RTP_PAYLOAD_LEN

#define MAX_RTP_PAYLOAD_LEN   1000

◆ MAX_SLICES_NUM_TMP

#define MAX_SLICES_NUM_TMP   ( ( MAX_NAL_UNITS_IN_LAYER - SAVED_NALUNIT_NUM_TMP ) / 3 )

◆ MAX_SPATIAL_LAYER_NUM

#define MAX_SPATIAL_LAYER_NUM   4

◆ MAX_TEMPORAL_LAYER_NUM

#define MAX_TEMPORAL_LAYER_NUM   4

◆ SAVED_NALUNIT_NUM_TMP

#define SAVED_NALUNIT_NUM_TMP   ( (MAX_SPATIAL_LAYER_NUM*MAX_QUALITY_LAYER_NUM) + 1 + MAX_SPATIAL_LAYER_NUM )

SPS/PPS + SEI/SSEI + PADDING_NAL.

◆ UNSPECIFIED_BIT_RATE

#define UNSPECIFIED_BIT_RATE   0

to do: add detail comment

Typedef Documentation

◆ OpenH264Version

typedef struct _tagVersion OpenH264Version

Struct of OpenH264 version.

E.g. SDK version is 1.2.0.0, major version number is 1, minor version number is 2, and revision number is 0.

◆ PDecodingParam

◆ PEncParamBase

typedef struct TagEncParamBase * PEncParamBase

◆ PFrameBSInfo

typedef struct SFrameBSInfo * PFrameBSInfo

◆ PLayerBSInfo

typedef struct SLayerBSInfo * PLayerBSInfo

◆ PParserBsInfo

typedef struct TagParserBsInfo * PParserBsInfo

◆ PVuiSarInfo

typedef struct TagVuiSarInfo * PVuiSarInfo

◆ SBitrateInfo

typedef struct TagBitrateInfo SBitrateInfo

Structure for bit rate info.

◆ SDecoderCapability

The capability of decoder, for SDP negotiation.

◆ SDecoderStatistics

Structure for decoder statistics.

◆ SDecodingParam

SVC Decoding Parameters, reserved here and potential applicable in the future.

◆ SDeliveryStatus

Structure for dilivery status.

◆ SDumpLayer

typedef struct TagDumpLayer SDumpLayer

Structure for dump layer info.

◆ SEncoderStatistics

Structure for encoder statistics.

◆ SEncParamBase

SVC Encoding Parameters.

◆ SEncParamExt

typedef struct TagEncParamExt SEncParamExt

SVC Encoding Parameters extention.

◆ SLevelInfo

typedef struct TagLevelInfo SLevelInfo

Structure for level info in layer.

◆ SParserBsInfo

Structure for parse only output.

◆ SProfileInfo

typedef struct TagProfileInfo SProfileInfo

Structure for profile info in layer.

◆ SSourcePicture

Structure for source picture.

◆ SVuiSarInfo

typedef struct TagVuiSarInfo SVuiSarInfo

Structure for sample aspect ratio (SAR) info in VUI.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Enumerate the type of wels log.

Enumerator
WELS_LOG_QUIET 

quiet mode

WELS_LOG_ERROR 

error log iLevel

WELS_LOG_WARNING 

Warning log iLevel.

WELS_LOG_INFO 

information log iLevel

WELS_LOG_DEBUG 

debug log, critical algo log

WELS_LOG_DETAIL 

per packet/frame log

WELS_LOG_RESV 

resversed log iLevel

WELS_LOG_LEVEL_COUNT 
WELS_LOG_DEFAULT 

default log iLevel in Wels codec

◆ DECODER_OPTION

Option types introduced in decoder application.

Enumerator
DECODER_OPTION_END_OF_STREAM 

end of stream flag

DECODER_OPTION_VCL_NAL 

feedback whether or not have VCL NAL in current AU for application layer

DECODER_OPTION_TEMPORAL_ID 

feedback temporal id for application layer

DECODER_OPTION_FRAME_NUM 

feedback current decoded frame number

DECODER_OPTION_IDR_PIC_ID 

feedback current frame belong to which IDR period

DECODER_OPTION_LTR_MARKING_FLAG 

feedback wether current frame mark a LTR

DECODER_OPTION_LTR_MARKED_FRAME_NUM 

feedback frame num marked by current Frame

DECODER_OPTION_ERROR_CON_IDC 

indicate decoder error concealment method

DECODER_OPTION_TRACE_LEVEL 
DECODER_OPTION_TRACE_CALLBACK 

a void (*)(void* context, int32_t level, const char* message) function which receives log messages

DECODER_OPTION_TRACE_CALLBACK_CONTEXT 

context info of trace callbac

DECODER_OPTION_GET_STATISTICS 

feedback decoder statistics

DECODER_OPTION_GET_SAR_INFO 

feedback decoder Sample Aspect Ratio info in Vui

DECODER_OPTION_PROFILE 

get current AU profile info, only is used in GetOption

DECODER_OPTION_LEVEL 

get current AU level info,only is used in GetOption

DECODER_OPTION_STATISTICS_LOG_INTERVAL 

set log output interval

DECODER_OPTION_IS_REF_PIC 

feedback current frame is ref pic or not

DECODER_OPTION_NUM_OF_FRAMES_REMAINING_IN_BUFFER 

number of frames remaining in decoder buffer when pictures are required to re-ordered into display-order.

DECODER_OPTION_NUM_OF_THREADS 

number of decoding threads. The maximum thread count is equal or less than lesser of (cpu core counts and 16).

◆ DECODING_STATE

Decoding status.

Enumerator
dsErrorFree 

bit stream error-free

Errors derived from bitstream parsing

dsFramePending 

need more throughput to generate a frame output,

dsRefLost 

layer lost at reference frame with temporal id 0

dsBitstreamError 

error bitstreams(maybe broken internal frame) the decoder cared

dsDepLayerLost 

dependented layer is ever lost

dsNoParamSets 

no parameter set NALs involved

dsDataErrorConcealed 

current data error concealed specified

dsRefListNullPtrs 

ref picure list contains null ptrs within uiRefCount range

dsInvalidArgument 

invalid argument specified

Errors derived from logic level

dsInitialOptExpected 

initializing operation is expected

dsOutOfMemory 

out of memory due to new request

dsDstBufNeedExpan 

actual picture size exceeds size of dst pBuffer feed in decoder, so need expand its size

ANY OTHERS?

◆ EColorMatrix

Enumerate the type of color matrix.

Enumerator
CM_GBR 
CM_BT709 
CM_UNDEF 
CM_RESERVED3 
CM_FCC 
CM_BT470BG 
CM_SMPTE170M 
CM_SMPTE240M 
CM_YCGCO 
CM_BT2020NC 
CM_BT2020C 
CM_NUM_ENUM 

◆ EColorPrimaries

Enumerate the type of color primaries.

Enumerator
CP_RESERVED0 
CP_BT709 
CP_UNDEF 
CP_RESERVED3 
CP_BT470M 
CP_BT470BG 
CP_SMPTE170M 
CP_SMPTE240M 
CP_FILM 
CP_BT2020 
CP_NUM_ENUM 

◆ ECOMPLEXITY_MODE

Enumulate the complexity mode.

Enumerator
LOW_COMPLEXITY 

the lowest compleixty,the fastest speed,

MEDIUM_COMPLEXITY 

medium complexity, medium speed,medium quality

HIGH_COMPLEXITY 

high complexity, lowest speed, high quality

◆ ELevelIdc

enum ELevelIdc

Enumerate the type of level id.

Enumerator
LEVEL_UNKNOWN 
LEVEL_1_0 
LEVEL_1_B 
LEVEL_1_1 
LEVEL_1_2 
LEVEL_1_3 
LEVEL_2_0 
LEVEL_2_1 
LEVEL_2_2 
LEVEL_3_0 
LEVEL_3_1 
LEVEL_3_2 
LEVEL_4_0 
LEVEL_4_1 
LEVEL_4_2 
LEVEL_5_0 
LEVEL_5_1 
LEVEL_5_2 

◆ ENCODER_OPTION

Option types introduced in SVC encoder application.

Enumerator
ENCODER_OPTION_DATAFORMAT 
ENCODER_OPTION_IDR_INTERVAL 

IDR period,0/-1 means no Intra period (only the first frame); lager than 0 means the desired IDR period, must be multiple of (2^temporal_layer)

ENCODER_OPTION_SVC_ENCODE_PARAM_BASE 

structure of Base Param

ENCODER_OPTION_SVC_ENCODE_PARAM_EXT 

structure of Extension Param

ENCODER_OPTION_FRAME_RATE 

maximal input frame rate, current supported range: MAX_FRAME_RATE = 30,MIN_FRAME_RATE = 1

ENCODER_OPTION_BITRATE 
ENCODER_OPTION_MAX_BITRATE 
ENCODER_OPTION_INTER_SPATIAL_PRED 
ENCODER_OPTION_RC_MODE 
ENCODER_OPTION_RC_FRAME_SKIP 
ENCODER_PADDING_PADDING 

0:disable padding;1:padding

ENCODER_OPTION_PROFILE 

assgin the profile for each layer

ENCODER_OPTION_LEVEL 

assgin the level for each layer

ENCODER_OPTION_NUMBER_REF 

the number of refererence frame

ENCODER_OPTION_DELIVERY_STATUS 

the delivery info which is a feedback from app level

ENCODER_LTR_RECOVERY_REQUEST 
ENCODER_LTR_MARKING_FEEDBACK 
ENCODER_LTR_MARKING_PERIOD 
ENCODER_OPTION_LTR 

0:disable LTR;larger than 0 enable LTR; LTR number is fixed to be 2 in current encoder

ENCODER_OPTION_COMPLEXITY 
ENCODER_OPTION_ENABLE_SSEI 

enable SSEI: true–enable ssei; false–disable ssei

ENCODER_OPTION_ENABLE_PREFIX_NAL_ADDING 

enable prefix: true–enable prefix; false–disable prefix

ENCODER_OPTION_SPS_PPS_ID_STRATEGY 

different stategy in adjust ID in SPS/PPS: 0- constant ID, 1-additional ID, 6-mapping and additional

ENCODER_OPTION_CURRENT_PATH 
ENCODER_OPTION_DUMP_FILE 

dump layer reconstruct frame to a specified file

ENCODER_OPTION_TRACE_LEVEL 

trace info based on the trace level

ENCODER_OPTION_TRACE_CALLBACK 

a void (*)(void* context, int32_t level, const char* message) function which receives log messages

ENCODER_OPTION_TRACE_CALLBACK_CONTEXT 

context info of trace callback

ENCODER_OPTION_GET_STATISTICS 

read only

ENCODER_OPTION_STATISTICS_LOG_INTERVAL 

log interval in millisecond

ENCODER_OPTION_IS_LOSSLESS_LINK 

advanced algorithmetic settings

ENCODER_OPTION_BITS_VARY_PERCENTAGE 

bit vary percentage

◆ EParameterSetStrategy

Enumulate for the stategy of SPS/PPS strategy.

Enumerator
CONSTANT_ID 

constant id in SPS/PPS

INCREASING_ID 

SPS/PPS id increases at each IDR.

SPS_LISTING 

using SPS in the existing list if possible

SPS_LISTING_AND_PPS_INCREASING 
SPS_PPS_LISTING 

◆ EProfileIdc

Enumerate the type of profile id.

Enumerator
PRO_UNKNOWN 
PRO_BASELINE 
PRO_MAIN 
PRO_EXTENDED 
PRO_HIGH 
PRO_HIGH10 
PRO_HIGH422 
PRO_HIGH444 
PRO_CAVLC444 
PRO_SCALABLE_BASELINE 
PRO_SCALABLE_HIGH 

◆ ERROR_CON_IDC

Enumerate the type of error concealment methods.

Enumerator
ERROR_CON_DISABLE 
ERROR_CON_FRAME_COPY 
ERROR_CON_SLICE_COPY 
ERROR_CON_FRAME_COPY_CROSS_IDR 
ERROR_CON_SLICE_COPY_CROSS_IDR 
ERROR_CON_SLICE_COPY_CROSS_IDR_FREEZE_RES_CHANGE 
ERROR_CON_SLICE_MV_COPY_CROSS_IDR 
ERROR_CON_SLICE_MV_COPY_CROSS_IDR_FREEZE_RES_CHANGE 

◆ ESampleAspectRatio

Enumerate the type of sample aspect ratio.

Enumerator
ASP_UNSPECIFIED 
ASP_1x1 
ASP_12x11 
ASP_10x11 
ASP_16x11 
ASP_40x33 
ASP_24x11 
ASP_20x11 
ASP_32x11 
ASP_80x33 
ASP_18x11 
ASP_15x11 
ASP_64x33 
ASP_160x99 
ASP_EXT_SAR 

◆ ETransferCharacteristics

Enumerate the type of transfer characteristics.

Enumerator
TRC_RESERVED0 
TRC_BT709 
TRC_UNDEF 
TRC_RESERVED3 
TRC_BT470M 
TRC_BT470BG 
TRC_SMPTE170M 
TRC_SMPTE240M 
TRC_LINEAR 
TRC_LOG100 
TRC_LOG316 
TRC_IEC61966_2_4 
TRC_BT1361E 
TRC_IEC61966_2_1 
TRC_BT2020_10 
TRC_BT2020_12 
TRC_NUM_ENUM 

◆ EUsageType

enum EUsageType

Encoder usage type.

Enumerator
CAMERA_VIDEO_REAL_TIME 

camera video for real-time communication

SCREEN_CONTENT_REAL_TIME 

screen content signal

CAMERA_VIDEO_NON_REAL_TIME 
SCREEN_CONTENT_NON_REAL_TIME 
INPUT_CONTENT_TYPE_ALL 

◆ EVideoFormatSPS

Enumerate the type of video format.

Enumerator
VF_COMPONENT 
VF_PAL 
VF_NTSC 
VF_SECAM 
VF_MAC 
VF_UNDEF 
VF_NUM_ENUM 

◆ FEEDBACK_VCL_NAL_IN_AU

Feedback that whether or not have VCL NAL in current AU.

Enumerator
FEEDBACK_NON_VCL_NAL 
FEEDBACK_VCL_NAL 
FEEDBACK_UNKNOWN_NAL 

◆ KEY_FRAME_REQUEST_TYPE

Enumerate the type of key frame request.

Enumerator
NO_RECOVERY_REQUSET 
LTR_RECOVERY_REQUEST 
IDR_RECOVERY_REQUEST 
NO_LTR_MARKING_FEEDBACK 
LTR_MARKING_SUCCESS 
LTR_MARKING_FAILED 

◆ LAYER_NUM

enum LAYER_NUM

Spatial layer num.

Enumerator
SPATIAL_LAYER_0 
SPATIAL_LAYER_1 
SPATIAL_LAYER_2 
SPATIAL_LAYER_3 
SPATIAL_LAYER_ALL 

◆ LAYER_TYPE

enum LAYER_TYPE

Type of layer being encoded.

Enumerator
NON_VIDEO_CODING_LAYER 
VIDEO_CODING_LAYER 

◆ RC_MODES

enum RC_MODES

Enumerate the type of rate control mode.

Enumerator
RC_QUALITY_MODE 

quality mode

RC_BITRATE_MODE 

bitrate mode

RC_BUFFERBASED_MODE 

no bitrate control,only using buffer status,adjust the video quality

RC_TIMESTAMP_MODE 
RC_BITRATE_MODE_POST_SKIP 

this is in-building RC MODE, WILL BE DELETED after algorithm tuning!

RC_OFF_MODE 

rate control off mode

◆ SliceModeEnum

Enumerate the type of slice mode.

Enumerator
SM_SINGLE_SLICE 

| SliceNum==1

SM_FIXEDSLCNUM_SLICE 

| according to SliceNum | enabled dynamic slicing for multi-thread

SM_RASTER_SLICE 

| according to SlicesAssign | need input of MB numbers each slice. In addition, if other constraint in SSliceArgument is presented, need to follow the constraints. Typically if MB num and slice size are both constrained, re-encoding may be involved.

SM_SIZELIMITED_SLICE 

| according to SliceSize | slicing according to size, the slicing will be dynamic(have no idea about slice_nums until encoding current frame)

SM_RESERVED 

◆ VIDEO_BITSTREAM_TYPE

Enumerate the type of video bitstream which is provided to decoder.

Enumerator
VIDEO_BITSTREAM_AVC 
VIDEO_BITSTREAM_SVC 
VIDEO_BITSTREAM_DEFAULT