FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Fields
NV_ENC_CONFIG_H264 Struct Reference

#include <nvEncodeAPI.h>

Data Fields

uint32_t enableTemporalSVC:1
 [in]: Set to 1 to enable SVC temporal More...
 
uint32_t enableStereoMVC:1
 [in]: Set to 1 to enable stereo MVC More...
 
uint32_t hierarchicalPFrames:1
 [in]: Set to 1 to enable hierarchical PFrames More...
 
uint32_t hierarchicalBFrames:1
 [in]: Set to 1 to enable hierarchical BFrames More...
 
uint32_t outputBufferingPeriodSEI:1
 [in]: Set to 1 to write SEI buffering period syntax in the bitstream More...
 
uint32_t outputPictureTimingSEI:1
 [in]: Set to 1 to write SEI picture timing syntax in the bitstream. More...
 
uint32_t outputAUD:1
 [in]: Set to 1 to write access unit delimiter syntax in bitstream More...
 
uint32_t disableSPSPPS:1
 [in]: Set to 1 to disable writing of Sequence and Picture parameter info in bitstream More...
 
uint32_t outputFramePackingSEI:1
 [in]: Set to 1 to enable writing of frame packing arrangement SEI messages to bitstream More...
 
uint32_t outputRecoveryPointSEI:1
 [in]: Set to 1 to enable writing of recovery point SEI message More...
 
uint32_t enableIntraRefresh:1
 [in]: Set to 1 to enable gradual decoder refresh or intra refresh. More...
 
uint32_t enableConstrainedEncoding:1
 [in]: Set this to 1 to enable constrainedFrame encoding where each slice in the constarined picture is independent of other slices Check support for constrained encoding using NV_ENC_CAPS_SUPPORT_CONSTRAINED_ENCODING caps. More...
 
uint32_t repeatSPSPPS:1
 [in]: Set to 1 to enable writing of Sequence and Picture parameter for every IDR frame More...
 
uint32_t enableVFR:1
 [in]: Set to 1 to enable variable frame rate. More...
 
uint32_t enableLTR:1
 [in]: Set to 1 to enable LTR (Long Term Reference) frame support. More...
 
uint32_t qpPrimeYZeroTransformBypassFlag:1
 [in]: To enable lossless encode set this to 1, set QP to 0 and RC_mode to NV_ENC_PARAMS_RC_CONSTQP and profile to HIGH_444_PREDICTIVE_PROFILE. More...
 
uint32_t useConstrainedIntraPred:1
 [in]: Set 1 to enable constrained intra prediction. More...
 
uint32_t reservedBitFields:15
 [in]: Reserved bitfields and must be set to 0 More...
 
uint32_t level
 [in]: Specifies the encoding level. More...
 
uint32_t idrPeriod
 [in]: Specifies the IDR interval. More...
 
uint32_t separateColourPlaneFlag
 [in]: Set to 1 to enable 4:4:4 separate colour planes More...
 
uint32_t disableDeblockingFilterIDC
 [in]: Specifies the deblocking filter mode. More...
 
uint32_t numTemporalLayers
 [in]: Specifies max temporal layers to be used for hierarchical coding. More...
 
uint32_t spsId
 [in]: Specifies the SPS id of the sequence header More...
 
uint32_t ppsId
 [in]: Specifies the PPS id of the picture header More...
 
NV_ENC_H264_ADAPTIVE_TRANSFORM_MODE adaptiveTransformMode
 [in]: Specifies the AdaptiveTransform Mode. More...
 
NV_ENC_H264_FMO_MODE fmoMode
 [in]: Specified the FMO Mode. More...
 
NV_ENC_H264_BDIRECT_MODE bdirectMode
 [in]: Specifies the BDirect mode. More...
 
NV_ENC_H264_ENTROPY_CODING_MODE entropyCodingMode
 [in]: Specifies the entropy coding mode. More...
 
NV_ENC_STEREO_PACKING_MODE stereoMode
 [in]: Specifies the stereo frame packing mode which is to be signalled in frame packing arrangement SEI More...
 
uint32_t intraRefreshPeriod
 [in]: Specifies the interval between successive intra refresh if enableIntrarefresh is set. More...
 
uint32_t intraRefreshCnt
 [in]: Specifies the length of intra refresh in number of frames for periodic intra refresh. More...
 
uint32_t maxNumRefFrames
 [in]: Specifies the DPB size used for encoding. More...
 
uint32_t sliceMode
 [in]: This parameter in conjunction with sliceModeData specifies the way in which the picture is divided into slices sliceMode = 0 MB based slices, sliceMode = 1 Byte based slices, sliceMode = 2 MB row based slices, sliceMode = 3, numSlices in Picture When forceIntraRefreshWithFrameCnt is set it will have priority over sliceMode setting When sliceMode == 0 and sliceModeData == 0 whole picture will be coded with one slice More...
 
uint32_t sliceModeData
 [in]: Specifies the parameter needed for sliceMode. More...
 
NV_ENC_CONFIG_H264_VUI_PARAMETERS h264VUIParameters
 [in]: Specifies the H264 video usability info pamameters More...
 
uint32_t ltrNumFrames
 [in]: Specifies the number of LTR frames. More...
 
uint32_t ltrTrustMode
 [in]: Specifies the LTR operating mode. More...
 
uint32_t chromaFormatIDC
 [in]: Specifies the chroma format. More...
 
uint32_t maxTemporalLayers
 [in]: Specifies the max temporal layer used for hierarchical coding. More...
 
uint32_t reserved1 [270]
 [in]: Reserved and must be set to 0 More...
 
voidreserved2 [64]
 [in]: Reserved and must be set to NULL More...
 

Detailed Description

Definition at line 1189 of file nvEncodeAPI.h.

Field Documentation

uint32_t NV_ENC_CONFIG_H264::enableTemporalSVC

[in]: Set to 1 to enable SVC temporal

Definition at line 1191 of file nvEncodeAPI.h.

uint32_t NV_ENC_CONFIG_H264::enableStereoMVC

[in]: Set to 1 to enable stereo MVC

Definition at line 1192 of file nvEncodeAPI.h.

uint32_t NV_ENC_CONFIG_H264::hierarchicalPFrames

[in]: Set to 1 to enable hierarchical PFrames

Definition at line 1193 of file nvEncodeAPI.h.

uint32_t NV_ENC_CONFIG_H264::hierarchicalBFrames

[in]: Set to 1 to enable hierarchical BFrames

Definition at line 1194 of file nvEncodeAPI.h.

uint32_t NV_ENC_CONFIG_H264::outputBufferingPeriodSEI

[in]: Set to 1 to write SEI buffering period syntax in the bitstream

Definition at line 1195 of file nvEncodeAPI.h.

Referenced by nvenc_setup_h264_config().

uint32_t NV_ENC_CONFIG_H264::outputPictureTimingSEI

[in]: Set to 1 to write SEI picture timing syntax in the bitstream.

When set for following rateControlMode : NV_ENC_PARAMS_RC_CBR, NV_ENC_PARAMS_RC_CBR_LOWDELAY_HQ, NV_ENC_PARAMS_RC_CBR_HQ, filler data is inserted if needed to achieve hrd bitrate

Definition at line 1196 of file nvEncodeAPI.h.

Referenced by nvenc_setup_h264_config().

uint32_t NV_ENC_CONFIG_H264::outputAUD

[in]: Set to 1 to write access unit delimiter syntax in bitstream

Definition at line 1198 of file nvEncodeAPI.h.

Referenced by nvenc_setup_h264_config().

uint32_t NV_ENC_CONFIG_H264::disableSPSPPS

[in]: Set to 1 to disable writing of Sequence and Picture parameter info in bitstream

Definition at line 1199 of file nvEncodeAPI.h.

Referenced by nvenc_setup_h264_config().

uint32_t NV_ENC_CONFIG_H264::outputFramePackingSEI

[in]: Set to 1 to enable writing of frame packing arrangement SEI messages to bitstream

Definition at line 1200 of file nvEncodeAPI.h.

uint32_t NV_ENC_CONFIG_H264::outputRecoveryPointSEI

[in]: Set to 1 to enable writing of recovery point SEI message

Definition at line 1201 of file nvEncodeAPI.h.

uint32_t NV_ENC_CONFIG_H264::enableIntraRefresh

[in]: Set to 1 to enable gradual decoder refresh or intra refresh.

If the GOP structure uses B frames this will be ignored

Definition at line 1202 of file nvEncodeAPI.h.

uint32_t NV_ENC_CONFIG_H264::enableConstrainedEncoding

[in]: Set this to 1 to enable constrainedFrame encoding where each slice in the constarined picture is independent of other slices Check support for constrained encoding using NV_ENC_CAPS_SUPPORT_CONSTRAINED_ENCODING caps.

Definition at line 1203 of file nvEncodeAPI.h.

uint32_t NV_ENC_CONFIG_H264::repeatSPSPPS

[in]: Set to 1 to enable writing of Sequence and Picture parameter for every IDR frame

Definition at line 1205 of file nvEncodeAPI.h.

Referenced by nvenc_setup_h264_config().

uint32_t NV_ENC_CONFIG_H264::enableVFR

[in]: Set to 1 to enable variable frame rate.

Definition at line 1206 of file nvEncodeAPI.h.

uint32_t NV_ENC_CONFIG_H264::enableLTR

[in]: Set to 1 to enable LTR (Long Term Reference) frame support.

LTR can be used in two modes: "LTR Trust" mode and "LTR Per Picture" mode. LTR Trust mode: In this mode, ltrNumFrames pictures after IDR are automatically marked as LTR. This mode is enabled by setting ltrTrustMode = 1. Use of LTR Trust mode is strongly discouraged as this mode may be deprecated in future. LTR Per Picture mode: In this mode, client can control whether the current picture should be marked as LTR. Enable this mode by setting ltrTrustMode = 0 and ltrMarkFrame = 1 for the picture to be marked as LTR. This is the preferred mode for using LTR. Note that LTRs are not supported if encoding session is configured with B-frames

Definition at line 1207 of file nvEncodeAPI.h.

uint32_t NV_ENC_CONFIG_H264::qpPrimeYZeroTransformBypassFlag

[in]: To enable lossless encode set this to 1, set QP to 0 and RC_mode to NV_ENC_PARAMS_RC_CONSTQP and profile to HIGH_444_PREDICTIVE_PROFILE.

Check support for lossless encoding using NV_ENC_CAPS_SUPPORT_LOSSLESS_ENCODE caps.

Definition at line 1214 of file nvEncodeAPI.h.

Referenced by nvenc_setup_h264_config().

uint32_t NV_ENC_CONFIG_H264::useConstrainedIntraPred

[in]: Set 1 to enable constrained intra prediction.

Definition at line 1216 of file nvEncodeAPI.h.

uint32_t NV_ENC_CONFIG_H264::reservedBitFields

[in]: Reserved bitfields and must be set to 0

Definition at line 1217 of file nvEncodeAPI.h.

uint32_t NV_ENC_CONFIG_H264::level

[in]: Specifies the encoding level.

Client is recommended to set this to NV_ENC_LEVEL_AUTOSELECT in order to enable the NvEncodeAPI interface to select the correct level.

Definition at line 1218 of file nvEncodeAPI.h.

Referenced by nvenc_setup_h264_config().

uint32_t NV_ENC_CONFIG_H264::idrPeriod

[in]: Specifies the IDR interval.

If not set, this is made equal to gopLength in NV_ENC_CONFIG.Low latency application client can set IDR interval to NVENC_INFINITE_GOPLENGTH so that IDR frames are not inserted automatically.

Definition at line 1219 of file nvEncodeAPI.h.

Referenced by nvenc_setup_h264_config().

uint32_t NV_ENC_CONFIG_H264::separateColourPlaneFlag

[in]: Set to 1 to enable 4:4:4 separate colour planes

Definition at line 1220 of file nvEncodeAPI.h.

uint32_t NV_ENC_CONFIG_H264::disableDeblockingFilterIDC

[in]: Specifies the deblocking filter mode.

Permissible value range: [0,2]

Definition at line 1221 of file nvEncodeAPI.h.

uint32_t NV_ENC_CONFIG_H264::numTemporalLayers

[in]: Specifies max temporal layers to be used for hierarchical coding.

Valid value range is [1,NV_ENC_CAPS_NUM_MAX_TEMPORAL_LAYERS]

Definition at line 1222 of file nvEncodeAPI.h.

uint32_t NV_ENC_CONFIG_H264::spsId

[in]: Specifies the SPS id of the sequence header

Definition at line 1223 of file nvEncodeAPI.h.

uint32_t NV_ENC_CONFIG_H264::ppsId

[in]: Specifies the PPS id of the picture header

Definition at line 1224 of file nvEncodeAPI.h.

NV_ENC_H264_ADAPTIVE_TRANSFORM_MODE NV_ENC_CONFIG_H264::adaptiveTransformMode

[in]: Specifies the AdaptiveTransform Mode.

Check support for AdaptiveTransform mode using NV_ENC_CAPS_SUPPORT_ADAPTIVE_TRANSFORM caps.

Definition at line 1225 of file nvEncodeAPI.h.

Referenced by nvenc_setup_h264_config().

NV_ENC_H264_FMO_MODE NV_ENC_CONFIG_H264::fmoMode

[in]: Specified the FMO Mode.

Check support for FMO using NV_ENC_CAPS_SUPPORT_FMO caps.

Definition at line 1226 of file nvEncodeAPI.h.

Referenced by nvenc_setup_h264_config().

NV_ENC_H264_BDIRECT_MODE NV_ENC_CONFIG_H264::bdirectMode

[in]: Specifies the BDirect mode.

Check support for BDirect mode using NV_ENC_CAPS_SUPPORT_BDIRECT_MODE caps.

Definition at line 1227 of file nvEncodeAPI.h.

NV_ENC_H264_ENTROPY_CODING_MODE NV_ENC_CONFIG_H264::entropyCodingMode

[in]: Specifies the entropy coding mode.

Check support for CABAC mode using NV_ENC_CAPS_SUPPORT_CABAC caps.

Definition at line 1228 of file nvEncodeAPI.h.

Referenced by nvenc_setup_h264_config().

NV_ENC_STEREO_PACKING_MODE NV_ENC_CONFIG_H264::stereoMode

[in]: Specifies the stereo frame packing mode which is to be signalled in frame packing arrangement SEI

Definition at line 1229 of file nvEncodeAPI.h.

uint32_t NV_ENC_CONFIG_H264::intraRefreshPeriod

[in]: Specifies the interval between successive intra refresh if enableIntrarefresh is set.

Requires enableIntraRefresh to be set. Will be disabled if NV_ENC_CONFIG::gopLength is not set to NVENC_INFINITE_GOPLENGTH.

Definition at line 1230 of file nvEncodeAPI.h.

uint32_t NV_ENC_CONFIG_H264::intraRefreshCnt

[in]: Specifies the length of intra refresh in number of frames for periodic intra refresh.

This value should be smaller than intraRefreshPeriod

Definition at line 1232 of file nvEncodeAPI.h.

uint32_t NV_ENC_CONFIG_H264::maxNumRefFrames

[in]: Specifies the DPB size used for encoding.

Setting it to 0 will let driver use the default dpb size. The low latency application which wants to invalidate reference frame as an error resilience tool is recommended to use a large DPB size so that the encoder can keep old reference frames which can be used if recent frames are invalidated.

Definition at line 1233 of file nvEncodeAPI.h.

Referenced by nvenc_setup_h264_config().

uint32_t NV_ENC_CONFIG_H264::sliceMode

[in]: This parameter in conjunction with sliceModeData specifies the way in which the picture is divided into slices sliceMode = 0 MB based slices, sliceMode = 1 Byte based slices, sliceMode = 2 MB row based slices, sliceMode = 3, numSlices in Picture When forceIntraRefreshWithFrameCnt is set it will have priority over sliceMode setting When sliceMode == 0 and sliceModeData == 0 whole picture will be coded with one slice

Definition at line 1237 of file nvEncodeAPI.h.

Referenced by nvenc_codec_specific_pic_params(), and nvenc_setup_h264_config().

uint32_t NV_ENC_CONFIG_H264::sliceModeData

[in]: Specifies the parameter needed for sliceMode.

For: sliceMode = 0, sliceModeData specifies # of MBs in each slice (except last slice) sliceMode = 1, sliceModeData specifies maximum # of bytes in each slice (except last slice) sliceMode = 2, sliceModeData specifies # of MB rows in each slice (except last slice) sliceMode = 3, sliceModeData specifies number of slices in the picture. Driver will divide picture into slices optimally

Definition at line 1241 of file nvEncodeAPI.h.

Referenced by nvenc_codec_specific_pic_params(), nvenc_setup_h264_config(), and process_output_surface().

NV_ENC_CONFIG_H264_VUI_PARAMETERS NV_ENC_CONFIG_H264::h264VUIParameters

[in]: Specifies the H264 video usability info pamameters

Definition at line 1246 of file nvEncodeAPI.h.

Referenced by nvenc_setup_h264_config().

uint32_t NV_ENC_CONFIG_H264::ltrNumFrames

[in]: Specifies the number of LTR frames.

This parameter has different meaning in two LTR modes. In "LTR Trust" mode (ltrTrustMode = 1), encoder will mark the first ltrNumFrames base layer reference frames within each IDR interval as LTR. In "LTR Per Picture" mode (ltrTrustMode = 0 and ltrMarkFrame = 1), ltrNumFrames specifies maximum number of LTR frames in DPB.

Definition at line 1247 of file nvEncodeAPI.h.

uint32_t NV_ENC_CONFIG_H264::ltrTrustMode

[in]: Specifies the LTR operating mode.

See comments near NV_ENC_CONFIG_H264::enableLTR for description of the two modes. Set to 1 to use "LTR Trust" mode of LTR operation. Clients are discouraged to use "LTR Trust" mode as this mode may be deprecated in future releases. Set to 0 when using "LTR Per Picture" mode of LTR operation.

Definition at line 1250 of file nvEncodeAPI.h.

uint32_t NV_ENC_CONFIG_H264::chromaFormatIDC

[in]: Specifies the chroma format.

Should be set to 1 for yuv420 input, 3 for yuv444 input. Check support for YUV444 encoding using NV_ENC_CAPS_SUPPORT_YUV444_ENCODE caps.

Definition at line 1254 of file nvEncodeAPI.h.

Referenced by nvenc_setup_h264_config().

uint32_t NV_ENC_CONFIG_H264::maxTemporalLayers

[in]: Specifies the max temporal layer used for hierarchical coding.

Definition at line 1256 of file nvEncodeAPI.h.

uint32_t NV_ENC_CONFIG_H264::reserved1[270]

[in]: Reserved and must be set to 0

Definition at line 1257 of file nvEncodeAPI.h.

void* NV_ENC_CONFIG_H264::reserved2[64]

[in]: Reserved and must be set to NULL

Definition at line 1258 of file nvEncodeAPI.h.


The documentation for this struct was generated from the following file: