NVIDIA DRIVE OS Linux SDK API Reference

6.0.6 Release
nvmedia_iep_output_extradata.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: LicenseRef-NvidiaProprietary
4  *
5  * NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
6  * property and proprietary rights in and to this material, related
7  * documentation and any modifications thereto. Any use, reproduction,
8  * disclosure or distribution of this material and related documentation
9  * without an express license agreement from NVIDIA CORPORATION or
10  * its affiliates is strictly prohibited.
11  */
12 
22 #ifndef NVMEDIA_IEP_OUTPUT_EXTRA_DATA_H
23 #define NVMEDIA_IEP_OUTPUT_EXTRA_DATA_H
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29 #include <stdint.h>
30 #include <stdbool.h>
31 
33 #define NVMEDIA_ENCODE_MAX_RPS_SIZE 17U
34 
47 #define MV_BUFFER_HEADER 0xFFFEFDFCU
48 
52 typedef enum {
64 
69 typedef struct {
71  uint32_t ulFrameId;
73  bool bIdrFrame;
79  uint32_t ulFrameNum;
81  uint32_t ulLTRFrameIdx;
83 
87 typedef struct {
89  uint32_t ulCycleCount;
91  uint32_t ulPresetTime;
93  uint32_t ulFlushTime;
95  uint32_t ulEncodeTime;
98  uint32_t ulFetchTime;
100 
104 typedef union {
106  struct {
110  bool bRefPic;
114  uint32_t uIntraMBCount;
116  uint32_t uInterMBCount;
117  } h264Extradata;
119  struct {
121  NvMediaEncodeH26xFrameType eFrameType;
123  bool bRefPic;
125  bool bIntraRefresh;
138  } h265Extradata;
140 
171 typedef struct
172 {
175  uint32_t MagicNum;
178  uint32_t buffersize;
180  uint16_t blocksize;
186  uint16_t reserved;
188 
193 typedef struct {
195  int32_t mv_x;
197  int32_t mv_y;
199 
203 typedef struct {
207  uint32_t ulExtraDataSize;
211  bool bkeyFrame;
219  uint32_t ulHdrSize;
221  int16_t AvgQP;
230  uint32_t ulReconCRC_Y;
233  uint32_t ulReconCRC_U;
236  uint32_t ulReconCRC_V;
239  uint32_t ulFrameMinQP;
241  uint32_t ulFrameMaxQP;
283  uint32_t ulHrdBitrate;
286  uint32_t ulVbvBufSize;
292 
295 #ifdef __cplusplus
296 } /* extern "C" */
297 #endif
298 
299 #endif /* NVMEDIA_IEP_OUTPUT_EXTRA_DATA_H */
NvMediaEncodeMVData::mv_y
int32_t mv_y
Y component of the motion vector pertaining to 1 macro block.
Definition: nvmedia_iep_output_extradata.h:197
NvMediaEncodeCodecExData
Holds a codec-specific extradata output.
Definition: nvmedia_iep_output_extradata.h:104
NvMediaEncodeCodecExData::bIntraRefresh
bool bIntraRefresh
Is this an intra refresh frame.
Definition: nvmedia_iep_output_extradata.h:112
NvMediaEncodeMVBufferHeader::buffersize
uint32_t buffersize
Size of motion vector output (excluding header size), i.e., the size of MV data in the bitstream post...
Definition: nvmedia_iep_output_extradata.h:178
NvMediaEncodeMVBufferHeader::width_in_blocksize
uint16_t width_in_blocksize
Input frame width in terms of blocksize.
Definition: nvmedia_iep_output_extradata.h:182
NVMEDIA_ENCODE_H26X_FRAME_TYPE_P
@ NVMEDIA_ENCODE_H26X_FRAME_TYPE_P
P Frame.
Definition: nvmedia_iep_output_extradata.h:54
NvMediaEncodeOutputExtradata::ulActiveRefFrames
uint32_t ulActiveRefFrames
Number of valid entries in RPS.
Definition: nvmedia_iep_output_extradata.h:251
NvMediaFrameStats::ulEncodeTime
uint32_t ulEncodeTime
Hardware Encode Time.
Definition: nvmedia_iep_output_extradata.h:95
NvMediaEncodeFrameFullProp::bLTRefFrame
bool bLTRefFrame
Is the frame a Long Term Ref Frame.
Definition: nvmedia_iep_output_extradata.h:75
NvMediaEncodeCodecExData::uInterMBCount
uint32_t uInterMBCount
Count of the number of inter MBs.
Definition: nvmedia_iep_output_extradata.h:116
NvMediaEncodeOutputExtradata::ulCurrentRefFrameId
uint32_t ulCurrentRefFrameId
frame id of reference frame to be used for motion search, ignored for IDR.
Definition: nvmedia_iep_output_extradata.h:248
NvMediaEncodeOutputExtradata::bEndOfFrame
bool bEndOfFrame
Slice end or frame end in the packet for application to handle packets When slice encode is completed...
Definition: nvmedia_iep_output_extradata.h:217
NVMEDIA_ENCODE_H26X_FRAME_TYPE_IDR
@ NVMEDIA_ENCODE_H26X_FRAME_TYPE_IDR
IDR Frame.
Definition: nvmedia_iep_output_extradata.h:60
NvMediaEncodeMVBufferHeader::height_in_blocksize
uint16_t height_in_blocksize
Input frame height in terms of blocksize.
Definition: nvmedia_iep_output_extradata.h:184
NvMediaEncodeCodecExData::uIntraMBCount
uint32_t uIntraMBCount
Count of the number of intra MBs.
Definition: nvmedia_iep_output_extradata.h:114
NvMediaEncodeOutputExtradata::ulReconCRC_U
uint32_t ulReconCRC_U
Recon CRC for U component when ReconCRC generation is enabled.
Definition: nvmedia_iep_output_extradata.h:233
NvMediaEncodeOutputExtradata::codec
NvMediaVideoCodec codec
Codec Type.
Definition: nvmedia_iep_output_extradata.h:288
NvMediaEncodeCodecExData::bRefPic
bool bRefPic
Is this a reference frame.
Definition: nvmedia_iep_output_extradata.h:110
NvMediaEncodeMVBufferHeader::reserved
uint16_t reserved
Reserved.
Definition: nvmedia_iep_output_extradata.h:186
NvMediaEncodeOutputExtradata::ulExtraDataSize
uint32_t ulExtraDataSize
Size of this extradata structure.
Definition: nvmedia_iep_output_extradata.h:207
NvMediaEncodeOutputExtradata
Holds the encoder output extradata configuration.
Definition: nvmedia_iep_output_extradata.h:203
NvMediaEncodeOutputExtradata::bMVbufferdump
bool bMVbufferdump
Set if bitstream buffer contains MV Buffer dump.
Definition: nvmedia_iep_output_extradata.h:265
NvMediaEncodeCodecExData::uIntraCU16x16Count
uint32_t uIntraCU16x16Count
Count of the number of intra 16x16 CUs.
Definition: nvmedia_iep_output_extradata.h:131
NvMediaEncodeFrameFullProp::ulFrameId
uint32_t ulFrameId
Unique Frame ID.
Definition: nvmedia_iep_output_extradata.h:71
NvMediaEncodeOutputExtradata::bIsGoldenOrAlternateFrame
bool bIsGoldenOrAlternateFrame
Flag for vp8 reference frame information.
Definition: nvmedia_iep_output_extradata.h:224
NvMediaEncodeOutputExtradata::ulFrameMinQP
uint32_t ulFrameMinQP
Rate Control Feedback.
Definition: nvmedia_iep_output_extradata.h:239
NvMediaEncodeOutputExtradata::ulVbvBufSize
uint32_t ulVbvBufSize
vbvBufSize to be used to compute RC stats.
Definition: nvmedia_iep_output_extradata.h:286
NvMediaEncodeH26xFrameType
NvMediaEncodeH26xFrameType
Enumeration of possible frame types - common to H264, H265.
Definition: nvmedia_iep_output_extradata.h:52
NvMediaEncodeOutputExtradata::ulFrameMaxQP
uint32_t ulFrameMaxQP
Maximum QP used for this frame.
Definition: nvmedia_iep_output_extradata.h:241
NvMediaEncodeOutputExtradata::MVBufferDumpStartOffset
uint32_t MVBufferDumpStartOffset
Encoded motion vector buffer dump start offset in the bitstream.
Definition: nvmedia_iep_output_extradata.h:277
NvMediaFrameStats::ulCycleCount
uint32_t ulCycleCount
Hardware Cycle Count.
Definition: nvmedia_iep_output_extradata.h:89
NvMediaEncodeOutputExtradata::codecExData
NvMediaEncodeCodecExData codecExData
Codec specific extradata.
Definition: nvmedia_iep_output_extradata.h:290
NvMediaFrameStats::ulFlushTime
uint32_t ulFlushTime
Hardware Flush Time.
Definition: nvmedia_iep_output_extradata.h:93
NvMediaEncodeCodecExData::uIntraCU8x8Count
uint32_t uIntraCU8x8Count
Count of the number of intra 8x8 CUs.
Definition: nvmedia_iep_output_extradata.h:135
NvMediaEncodeMVBufferHeader
Header format that defines motion vector output.
Definition: nvmedia_iep_output_extradata.h:171
NvMediaEncodeFrameFullProp::bIdrFrame
bool bIdrFrame
Is the frame an IDR frame.
Definition: nvmedia_iep_output_extradata.h:73
NvMediaEncodeCodecExData::uIntraCU32x32Count
uint32_t uIntraCU32x32Count
Count of the number of intra 32x32 CUs.
Definition: nvmedia_iep_output_extradata.h:127
NvMediaFrameStats::ulFetchTime
uint32_t ulFetchTime
Time taken to fetch the encoded bitstream once a frame is passed for encoded.
Definition: nvmedia_iep_output_extradata.h:98
NvMediaEncodeOutputExtradata::bValidReconCRC
bool bValidReconCRC
Whether Recon CRC for Recon frame is present.
Definition: nvmedia_iep_output_extradata.h:227
NvMediaEncodeOutputExtradata::AvgQP
int16_t AvgQP
Average QP index of the encoded frame.
Definition: nvmedia_iep_output_extradata.h:221
NvMediaEncodeCodecExData::eFrameType
NvMediaEncodeH26xFrameType eFrameType
Frame type of the encoded frame.
Definition: nvmedia_iep_output_extradata.h:108
NvMediaEncodeCodecExData::uInterCU8x8Count
uint32_t uInterCU8x8Count
Count of the number of inter 8x8 CUs.
Definition: nvmedia_iep_output_extradata.h:137
NvMediaFrameStats::ulPresetTime
uint32_t ulPresetTime
Time taken for setting the preset in feedframe.
Definition: nvmedia_iep_output_extradata.h:91
NvMediaEncodeOutputExtradata::FrameStats
NvMediaFrameStats FrameStats
Encoder Profiling stats.
Definition: nvmedia_iep_output_extradata.h:280
NVMEDIA_ENCODE_H26X_FRAME_TYPE_I
@ NVMEDIA_ENCODE_H26X_FRAME_TYPE_I
I Frame.
Definition: nvmedia_iep_output_extradata.h:58
NvMediaEncodeFrameFullProp::ulLTRFrameIdx
uint32_t ulLTRFrameIdx
LongTermFrameIdx of the picture.
Definition: nvmedia_iep_output_extradata.h:81
NvMediaEncodeMVBufferHeader::MagicNum
uint32_t MagicNum
Used to verify the integrity of the header.
Definition: nvmedia_iep_output_extradata.h:175
NvMediaVideoCodec
NvMediaVideoCodec
Video codec type.
Definition: nvmedia_common_encode_decode.h:54
NVMEDIA_ENCODE_MAX_RPS_SIZE
#define NVMEDIA_ENCODE_MAX_RPS_SIZE
Maximum number of reference pictures including current frame.
Definition: nvmedia_iep_output_extradata.h:33
NVMEDIA_ENCODE_H26X_FRAME_TYPE_B
@ NVMEDIA_ENCODE_H26X_FRAME_TYPE_B
B Frame.
Definition: nvmedia_iep_output_extradata.h:56
NvMediaFrameStats
Holds the statistics from encode profiling.
Definition: nvmedia_iep_output_extradata.h:87
NvMediaEncodeFrameFullProp::ulPictureOrderCnt
uint32_t ulPictureOrderCnt
Picture order count of the frame.
Definition: nvmedia_iep_output_extradata.h:77
NvMediaEncodeOutputExtradata::ulHdrSize
uint32_t ulHdrSize
Size of SPS/PPS header if it passed with output buffer.
Definition: nvmedia_iep_output_extradata.h:219
NvMediaEncodeFrameFullProp
Holds a encoder frames property.
Definition: nvmedia_iep_output_extradata.h:69
NvMediaEncodeCodecExData::uInterCU16x16Count
uint32_t uInterCU16x16Count
Count of the number of inter 16x16 CUs.
Definition: nvmedia_iep_output_extradata.h:133
NvMediaEncodeOutputExtradata::ulReconCRC_V
uint32_t ulReconCRC_V
Recon CRC for V component when ReconCRC generation is enabled.
Definition: nvmedia_iep_output_extradata.h:236
NvMediaEncodeOutputExtradata::ulHrdBitrate
uint32_t ulHrdBitrate
hrdBitrate to be used to calculate RC stats.
Definition: nvmedia_iep_output_extradata.h:283
NvMediaEncodeMVData::mv_x
int32_t mv_x
X component of the motion vector pertaining to 1 macro block.
Definition: nvmedia_iep_output_extradata.h:195
NvMediaEncodeCodecExData::uInterCU32x32Count
uint32_t uInterCU32x32Count
Count of the number of inter 32x32 CUs.
Definition: nvmedia_iep_output_extradata.h:129
NvMediaEncodeOutputExtradata::MVBufferDumpSize
uint32_t MVBufferDumpSize
Size of the MV buffer, including NvMediaEncodeMVBufferHeader and NvMediaEncodeMVData for each macrobl...
Definition: nvmedia_iep_output_extradata.h:271
NvMediaEncodeFrameFullProp::ulFrameNum
uint32_t ulFrameNum
Frame Number of the frame.
Definition: nvmedia_iep_output_extradata.h:79
NvMediaEncodeOutputExtradata::ulReconCRC_Y
uint32_t ulReconCRC_Y
Recon CRC for Y component when ReconCRC generation is enabled.
Definition: nvmedia_iep_output_extradata.h:230
NvMediaEncodeOutputExtradata::bRPSFeedback
bool bRPSFeedback
RPS Feedback.
Definition: nvmedia_iep_output_extradata.h:245
NvMediaEncodeOutputExtradata::bkeyFrame
bool bkeyFrame
Format of input H264 data.
Definition: nvmedia_iep_output_extradata.h:211
NvMediaEncodeMVBufferHeader::blocksize
uint16_t blocksize
Macro Block size.
Definition: nvmedia_iep_output_extradata.h:180
NvMediaEncodeMVData
Motion Vector format - motion vectors for each of the macro blocks are dumped in this format contiguo...
Definition: nvmedia_iep_output_extradata.h:193
NVMEDIA_ENCODE_H26X_FRAME_TYPE_END
@ NVMEDIA_ENCODE_H26X_FRAME_TYPE_END
Definition: nvmedia_iep_output_extradata.h:62