Crate openh264_sys2

Source
Expand description

Latest Version docs BSD-2 Rust

This low-level crate used by openh264 contains

  • a fully self-contained version of OpenH264
  • alternatively, a libloading wrapper around precompiled OpenH264 binaries
  • unsafe Rust bindings
  • build logic that should work “out of the box” on most platforms (sans bugs)

Modules§

source
API surface using built-in source.

Structs§

ISVCDecoderVtbl
ISVCEncoderVtbl
SFrameBSInfo
@brief Frame bit stream info
SLTRConfig
@brief Structure for LTR configuration
SLTRMarkingFeedback
@brief Structure for LTR marking feedback
SLTRRecoverRequest
@brief Structure for LTR recover request
SLayerBSInfo
@brief Bitstream inforamtion of a layer being encoded
SRateThresholds
@brief thresholds of the initial, maximal and minimal rate
SSliceArgument
@brief Structure for slice argument
SSpatialLayerConfig
@brief Structure for spatial layer configuration
SVideoProperty
@brief Define a new struct to show the property of video bitstream.
SliceInformation
@brief Information of coded Slice(=NAL)(s)
Source_Picture_s
@brief Structure for source picture
TagBitrateInfo
@brief Structure for bit rate info
TagBufferInfo
@brief Buffer info
TagDecoderCapability
@brief The capability of decoder, for SDP negotiation
TagDeliveryStatus
@brief Structure for dilivery status
TagDumpLayer
@brief Structure for dump layer info
TagEncParamBase
@brief SVC Encoding Parameters
TagEncParamExt
@brief SVC Encoding Parameters extention
TagLevelInfo
@brief Structure for level info in layer
TagParserBsInfo
@brief Structure for parse only output
TagProfileInfo
@brief Structure for profile info in layer
TagSVCDecodingParam
@brief SVC Decoding Parameters, reserved here and potential applicable in the future
TagSysMemBuffer
@brief Structure for decoder memery
TagVideoDecoderStatistics
@brief Structure for decoder statistics
TagVideoEncoderStatistics
@brief Structure for encoder statistics
TagVuiSarInfo
@brief Structure for sample aspect ratio (SAR) info in VUI
_tagVersion
@brief 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.

Enums§

DynamicAPI
Convenience wrapper around libloading and source API surfaces.
Error

Constants§

ASP_1x1
ASP_10x11
ASP_12x11
ASP_15x11
ASP_16x11
ASP_18x11
ASP_20x11
ASP_24x11
ASP_32x11
ASP_40x33
ASP_64x33
ASP_80x33
ASP_160x99
ASP_EXT_SAR
ASP_UNSPECIFIED
AUTO_REF_PIC_COUNT
AVERAGE_RTP_PAYLOAD_LEN
CAMERA_VIDEO_NON_REAL_TIME
CAMERA_VIDEO_REAL_TIME
< camera video for real-time communication
CM_BT709
CM_BT470BG
CM_BT2020C
CM_BT2020NC
CM_FCC
CM_GBR
CM_NUM_ENUM
CM_RESERVED3
CM_SMPTE170M
CM_SMPTE240M
CM_UNDEF
CM_YCGCO
CONSTANT_ID
< constant id in SPS/PPS
CP_BT709
CP_BT470BG
CP_BT470M
CP_BT2020
CP_FILM
CP_NUM_ENUM
CP_RESERVED0
CP_RESERVED3
CP_SMPTE170M
CP_SMPTE240M
CP_UNDEF
DEBLOCKING_IDC_0
DEBLOCKING_IDC_1
DEBLOCKING_IDC_2
DEBLOCKING_OFFSET
DEBLOCKING_OFFSET_MINUS
DECODER_OPTION_END_OF_STREAM
< end of stream flag
DECODER_OPTION_ERROR_CON_IDC
< indicate decoder error concealment method
DECODER_OPTION_FRAME_NUM
< feedback current decoded frame number
DECODER_OPTION_GET_SAR_INFO
< feedback decoder Sample Aspect Ratio info in Vui
DECODER_OPTION_GET_STATISTICS
< feedback decoder statistics
DECODER_OPTION_IDR_PIC_ID
< feedback current frame belong to which IDR period
DECODER_OPTION_IS_REF_PIC
< feedback current frame is ref pic or not
DECODER_OPTION_LEVEL
< get current AU level info,only is used in GetOption
DECODER_OPTION_LTR_MARKED_FRAME_NUM
< feedback frame num marked by current Frame
DECODER_OPTION_LTR_MARKING_FLAG
< feedback wether current frame mark a LTR
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).
DECODER_OPTION_PROFILE
< get current AU profile info, only is used in GetOption
DECODER_OPTION_STATISTICS_LOG_INTERVAL
< set log output interval
DECODER_OPTION_TEMPORAL_ID
< feedback temporal id for application layer
DECODER_OPTION_TRACE_CALLBACK
< a void ()(void context, int level, const char* message) function which receives log messages
DECODER_OPTION_TRACE_CALLBACK_CONTEXT
< context info of trace callbac
DECODER_OPTION_TRACE_LEVEL
DECODER_OPTION_VCL_NAL
< feedback whether or not have VCL NAL in current AU for application layer
ENCODER_LTR_MARKING_FEEDBACK
ENCODER_LTR_MARKING_PERIOD
ENCODER_LTR_RECOVERY_REQUEST
ENCODER_OPTION_BITRATE
ENCODER_OPTION_BITS_VARY_PERCENTAGE
< bit vary percentage
ENCODER_OPTION_COMPLEXITY
ENCODER_OPTION_CURRENT_PATH
ENCODER_OPTION_DATAFORMAT
ENCODER_OPTION_DELIVERY_STATUS
< the delivery info which is a feedback from app level
ENCODER_OPTION_DUMP_FILE
< dump layer reconstruct frame to a specified file
ENCODER_OPTION_ENABLE_PREFIX_NAL_ADDING
< enable prefix: true–enable prefix; false–disable prefix
ENCODER_OPTION_ENABLE_SSEI
< enable SSEI: true–enable ssei; false–disable ssei
ENCODER_OPTION_FRAME_RATE
< maximal input frame rate, current supported range: MAX_FRAME_RATE = 30,MIN_FRAME_RATE = 1
ENCODER_OPTION_GET_STATISTICS
< read only
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_INTER_SPATIAL_PRED
ENCODER_OPTION_IS_LOSSLESS_LINK
< advanced algorithmetic settings
ENCODER_OPTION_LEVEL
< assgin the level for each layer
ENCODER_OPTION_LTR
< 0:disable LTR;larger than 0 enable LTR; LTR number is fixed to be 2 in current encoder
ENCODER_OPTION_MAX_BITRATE
ENCODER_OPTION_NUMBER_REF
< the number of refererence frame
ENCODER_OPTION_PROFILE
< assgin the profile for each layer
ENCODER_OPTION_RC_FRAME_SKIP
ENCODER_OPTION_RC_MODE
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_STATISTICS_LOG_INTERVAL
< log interval in millisecond
ENCODER_OPTION_SVC_ENCODE_PARAM_BASE
< structure of Base Param
ENCODER_OPTION_SVC_ENCODE_PARAM_EXT
< structure of Extension Param
ENCODER_OPTION_TRACE_CALLBACK
< a void ()(void context, int level, const char* message) function which receives log messages
ENCODER_OPTION_TRACE_CALLBACK_CONTEXT
< context info of trace callback
ENCODER_OPTION_TRACE_LEVEL
< trace info based on the trace level
ENCODER_PADDING_PADDING
< 0:disable padding;1:padding
ERROR_CON_DISABLE
ERROR_CON_FRAME_COPY
ERROR_CON_FRAME_COPY_CROSS_IDR
ERROR_CON_SLICE_COPY
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
ET_FEC_FULL
< Forward Error Correction in 100% redundency mode
ET_FEC_HALF
< Forward Error Correction in 50% redundency mode
ET_FMO
< Flexible Macroblock Ordering
ET_IP_SCALE
< IP Scalable
ET_IR_R1
< Intra Refresh in predifined 2% MB
ET_IR_R2
< Intra Refresh in predifined 5% MB
ET_IR_R3
< Intra Refresh in predifined 10% MB
ET_NONE
< NONE Error Tools
ET_RFS
< Reference Frame Selection
FEEDBACK_NON_VCL_NAL
FEEDBACK_UNKNOWN_NAL
FEEDBACK_VCL_NAL
FRAME_NUM_IDR
FRAME_NUM_PARAM_SET
HIGH_COMPLEXITY
< high complexity, lowest speed, high quality
IDR_RECOVERY_REQUEST
INCREASING_ID
< SPS/PPS id increases at each IDR
INPUT_CONTENT_TYPE_ALL
LEVEL_1_0
LEVEL_1_1
LEVEL_1_2
LEVEL_1_3
LEVEL_1_B
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
LEVEL_UNKNOWN
LOW_COMPLEXITY
< the lowest compleixty,the fastest speed,
LTR_MARKING_FAILED
LTR_MARKING_SUCCESS
LTR_RECOVERY_REQUEST
MAX_LAYER_NUM_OF_FRAME
MAX_NAL_UNITS_IN_LAYER
MAX_QUALITY_LAYER_NUM
MAX_RTP_PAYLOAD_LEN
MAX_SLICES_NUM_TMP
MAX_SPATIAL_LAYER_NUM
MAX_TEMPORAL_LAYER_NUM
MEDIUM_COMPLEXITY
< medium complexity, medium speed,medium quality
NAL_PPS
NAL_PRIORITY_DISPOSABLE
NAL_PRIORITY_HIGH
NAL_PRIORITY_HIGHEST
NAL_PRIORITY_LOW
NAL_SEI
< ref_idc == 0
NAL_SLICE
NAL_SLICE_DPA
NAL_SLICE_DPB
NAL_SLICE_DPC
NAL_SLICE_IDR
< ref_idc != 0
NAL_SPS
NAL_UNKNOWN
NON_VIDEO_CODING_LAYER
NO_LTR_MARKING_FEEDBACK
NO_RECOVERY_REQUSET
PRO_BASELINE
PRO_CAVLC444
PRO_EXTENDED
PRO_HIGH
PRO_HIGH10
PRO_HIGH422
PRO_HIGH444
PRO_MAIN
PRO_SCALABLE_BASELINE
PRO_SCALABLE_HIGH
PRO_UNKNOWN
RC_BITRATE_MODE
< bitrate mode
RC_BITRATE_MODE_POST_SKIP
< this is in-building RC MODE, WILL BE DELETED after algorithm tuning!
RC_BUFFERBASED_MODE
< no bitrate control,only using buffer status,adjust the video quality
RC_OFF_MODE
< rate control off mode
RC_QUALITY_MODE
< quality mode
RC_TIMESTAMP_MODE
SAVED_NALUNIT_NUM_TMP
SCREEN_CONTENT_NON_REAL_TIME
SCREEN_CONTENT_REAL_TIME
< screen content signal
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_RESERVED
SM_SINGLE_SLICE
< | SliceNum==1
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)
SPATIAL_LAYER_0
SPATIAL_LAYER_1
SPATIAL_LAYER_2
SPATIAL_LAYER_3
SPATIAL_LAYER_ALL
SPS_LISTING
< using SPS in the existing list if possible
SPS_LISTING_AND_PPS_INCREASING
SPS_PPS_LISTING
TRC_BT709
TRC_BT470BG
TRC_BT470M
TRC_BT1361E
TRC_BT2020_10
TRC_BT2020_12
TRC_IEC61966_2_1
TRC_IEC61966_2_4
TRC_LINEAR
TRC_LOG100
TRC_LOG316
TRC_NUM_ENUM
TRC_RESERVED0
TRC_RESERVED3
TRC_SMPTE170M
TRC_SMPTE240M
TRC_UNDEF
UNSPECIFIED_BIT_RATE
VF_COMPONENT
VF_MAC
VF_NTSC
VF_NUM_ENUM
VF_PAL
VF_SECAM
VF_UNDEF
VIDEO_BITSTREAM_AVC
VIDEO_BITSTREAM_DEFAULT
VIDEO_BITSTREAM_SVC
VIDEO_CODING_LAYER
WELS_LOG_DEBUG
< debug log, critical algo log
WELS_LOG_DEFAULT
< default log iLevel in Wels codec
WELS_LOG_DETAIL
< per packet/frame log
WELS_LOG_ERROR
< error log iLevel
WELS_LOG_INFO
< information log iLevel
WELS_LOG_LEVEL_COUNT
WELS_LOG_QUIET
< quiet mode
WELS_LOG_RESV
< resversed log iLevel
WELS_LOG_WARNING
< Warning log iLevel
__bool_true_false_are_defined
cmInitExpected
< initial action is expected
cmInitParaError
< parameters are invalid
cmMallocMemeError
< malloc a memory error
cmResultSuccess
< successful
cmUnknownReason
cmUnsupportedData
dsBitstreamError
< error bitstreams(maybe broken internal frame) the decoder cared
dsDataErrorConcealed
< current data error concealed specified
dsDepLayerLost
< dependented layer is ever lost
dsDstBufNeedExpan
< actual picture size exceeds size of dst pBuffer feed in decoder, so need expand its size
dsErrorFree
< bit stream error-free
dsFramePending
< need more throughput to generate a frame output,
dsInitialOptExpected
< initializing operation is expected
dsInvalidArgument
< invalid argument specified
dsNoParamSets
< no parameter set NALs involved
dsOutOfMemory
< out of memory due to new request
dsRefListNullPtrs
<ref picure list contains null ptrs within uiRefCount range
dsRefLost
< layer lost at reference frame with temporal id 0
false_
true_
videoFormatABGR
videoFormatARGB
videoFormatBGR
videoFormatBGRA
videoFormatI420
< the same as IYUV
videoFormatInternal
< only used in SVC decoder testbed
videoFormatNV12
< new format for output by DXVA decoding
videoFormatRGB
< rgb color formats
videoFormatRGB555
videoFormatRGB565
videoFormatRGBA
videoFormatUYVY
videoFormatVFlip
videoFormatYUY2
< yuv color formats
videoFormatYV12
videoFormatYVYU
videoFrameTypeI
< I frame type
videoFrameTypeIDR
< IDR frame in H.264
videoFrameTypeIPMixed
< a frame where I and P slices are mixing, not supported yet
videoFrameTypeInvalid
< encoder not ready or parameters are invalidate
videoFrameTypeP
< P frame type
videoFrameTypeSkip
< skip the frame based encoder kernel

Statics§

kiKeyNumMultiple
@brief In a GOP, multiple of the key frame number, derived from the number of layers(index or array below)

Traits§

API
Abstraction over source or libloading APIs.

Type Aliases§

CM_RETURN
@brief Enumerate return type
DECODER_OPTION
@brief Option types introduced in decoder application
DECODING_STATE
@brief Decoding status
ECOMPLEXITY_MODE
@brief Enumulate the complexity mode
EColorMatrix
@brief Enumerate the type of color matrix
EColorPrimaries
@brief Enumerate the type of color primaries
ELevelIdc
@brief Enumerate the type of level id
ENCODER_OPTION
@brief Option types introduced in SVC encoder application
ENalPriority
@brief NRI: eNalRefIdc
ENalUnitType
@brief Enumulate the nal unit type
EParameterSetStrategy
@brief Enumulate for the stategy of SPS/PPS strategy
EProfileIdc
@brief Enumerate the type of profile id
ERROR_CON_IDC
@brief Enumerate the type of error concealment methods
ERR_TOOL
ESampleAspectRatio
@brief Enumerate the type of sample aspect ratio
ETransferCharacteristics
@brief Enumerate the type of transfer characteristics
EUsageType
@brief Encoder usage type
EVideoFormatSPS
@brief Enumerate the type of video format
EVideoFormatType
@brief Enumerate the type of video format
EVideoFrameType
@brief Enumerate video frame type
FEEDBACK_VCL_NAL_IN_AU
@brief Feedback that whether or not have VCL NAL in current AU
ISVCDecoder
ISVCEncoder
KEY_FRAME_REQUEST_TYPE
@brief Enumerate the type of key frame request
LAYER_NUM
@brief Spatial layer num
LAYER_TYPE
@brief Type of layer being encoded
OpenH264Version
@brief 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
@brief SVC Decoding Parameters, reserved here and potential applicable in the future
PEncParamBase
@brief SVC Encoding Parameters
PFrameBSInfo
@brief Frame bit stream info
PLayerBSInfo
@brief Bitstream inforamtion of a layer being encoded
PParserBsInfo
@brief Structure for parse only output
PRateThresholds
@brief thresholds of the initial, maximal and minimal rate
PSliceInfo
@brief Information of coded Slice(=NAL)(s)
PVuiSarInfo
@brief Structure for sample aspect ratio (SAR) info in VUI
RC_MODES
@brief Enumerate the type of rate control mode
SBitrateInfo
@brief Structure for bit rate info
SBufferInfo
@brief Buffer info
SDecoderCapability
@brief The capability of decoder, for SDP negotiation
SDecoderStatistics
@brief Structure for decoder statistics
SDecodingParam
@brief SVC Decoding Parameters, reserved here and potential applicable in the future
SDeliveryStatus
@brief Structure for dilivery status
SDumpLayer
@brief Structure for dump layer info
SEncParamBase
@brief SVC Encoding Parameters
SEncParamExt
@brief SVC Encoding Parameters extention
SEncoderStatistics
@brief Structure for encoder statistics
SLevelInfo
@brief Structure for level info in layer
SParserBsInfo
@brief Structure for parse only output
SProfileInfo
@brief Structure for profile info in layer
SSourcePicture
@brief Structure for source picture
SSysMEMBuffer
@brief Structure for decoder memery
SVuiSarInfo
@brief Structure for sample aspect ratio (SAR) info in VUI
SliceInfo
@brief Information of coded Slice(=NAL)(s)
SliceModeEnum
@brief Enumerate the type of slice mode
VIDEO_BITSTREAM_TYPE
@brief Enumerate the type of video bitstream which is provided to decoder
WelsTraceCallback
_bindgen_ty_1
@brief eDeblockingIdc
_bindgen_ty_2
@brief to do
_bindgen_ty_3
@brief Enumerate the type of wels log

Unions§

TagBufferInfo__bindgen_ty_1