NVIDIA DriveOS Linux NSR SDK API Reference

7.0.3.0 Release
nvmedia_ide.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2021-2025 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 
20 #ifndef NVMEDIA_IDE_H
21 #define NVMEDIA_IDE_H
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 #include <stdint.h>
28 #include "nvmedia_common_video.h"
29 #include "nvmedia_common_decode.h"
30 #include "nvmedia_core.h"
31 #include "nvscibuf.h"
32 #include "nvscisync.h"
33 
52 #define NVMEDIA_IDE_VERSION_MAJOR 1
53 
54 #define NVMEDIA_IDE_VERSION_MINOR 1
55 
56 #define NVMEDIA_IDE_VERSION_PATCH 0
57 
62 #define NVMEDIA_IDE_MAX_PRENVSCISYNCFENCES (16U)
63 
68 typedef struct NvMediaIDE NvMediaIDE;
69 
81 #define NVMEDIA_IDE_10BIT_DECODE (1U<<0)
82 
88 #define NVMEDIA_IDE_PIXEL_REC_2020 (1U<<1)
89 
95 #define NVMEDIA_IDE_OUTPUT_16BIT_SURFACES (1U<<2)
96 
102 #define NVMEDIA_IDE_ENABLE_AES (1U<<3)
103 
109 #define NVMEDIA_IDE_NV24_OUTPUT (1U<<4)
110 
116 #define NVMEDIA_IDE_PROFILING (1U<<5)
117 
123 #define NVMEDIA_IDE_DUMP_MV (1U<<6)
124 
130 #define NVMEDIA_IDE_INTERLACED_VIDEO (1U<<7)
131 
137 #define NVMEDIA_IDE_CHROMA_FMT_MASK (0x3U<<8)
138 
169  NvMediaVersion *version
170 );
171 
228 NvMediaIDE *
230  NvMediaVideoCodec codec,
231  uint16_t width,
232  uint16_t height,
233  uint16_t maxReferences,
234  uint64_t maxBitstreamSize,
235  uint8_t inputBuffering,
236  uint32_t flags,
237  NvMediaDecoderInstanceId instanceId
238 );
239 
262 NvMediaIDE *
264  void
265 );
266 
329  NvMediaIDE *decoder,
330  NvMediaVideoCodec codec,
331  uint16_t width,
332  uint16_t height,
333  uint16_t maxReferences,
334  uint64_t maxBitstreamSize,
335  uint8_t inputBuffering,
336  uint32_t flags,
337  NvMediaDecoderInstanceId instanceId
338 );
339 
365  const NvMediaIDE *decoder
366 );
367 
422  NvMediaIDE *decoder,
424 );
425 
478  const NvMediaIDE *decoder,
480 );
481 
555  const NvMediaIDE *decoder,
556  NvSciBufObj target,
557  const NvMediaPictureInfo *pictureInfo,
558  const void *encryptParams,
559  uint32_t numBitstreamBuffers,
560  const NvMediaBitstreamBuffer *bitstreams,
561  NvMediaIDEFrameStats *FrameStatsDump,
562  NvMediaDecoderInstanceId instanceId
563 );
564 
612  const NvMediaIDE *decoder,
613  const NvSciBufObj target,
614  const NvMediaSliceDecodeData *sliceDecData
615 );
616 
686  const NvMediaIDE *decoder,
687  uint32_t ringEntryIdx,
688  NvMediaIDEFrameStatus *FrameStatus
689 );
690 
737  NvMediaDecoderInstanceId instanceId,
738  NvSciBufAttrList attrlist
739 );
740 
797  const NvMediaIDE *decoder,
798  NvSciSyncAttrList attrlist,
799  NvMediaNvSciSyncClientType clienttype
800 );
801 
829  const NvMediaIDE *decoder,
830  void *backupdates
831 );
832 
888  const NvMediaIDE *decoder,
889  NvMediaNvSciSyncObjType syncobjtype,
890  NvSciSyncObj nvscisync
891 );
892 
954  const NvMediaIDE *decoder,
955  NvSciSyncObj nvscisync
956 );
957 
1004  const NvMediaIDE *decoder,
1005  NvSciSyncObj nvscisyncEOF
1006 );
1007 
1068  const NvMediaIDE *decoder,
1069  const NvSciSyncFence *prenvscisyncfence
1070 );
1071 
1131  const NvMediaIDE *decoder,
1132  NvSciSyncObj eofnvscisyncobj,
1133  NvSciSyncFence *eofnvscisyncfence
1134 );
1135 
1165  NvMediaDeviceList *deviceList
1166 );
1167 /*
1168  * @defgroup 6x_history_nvmedia_ide History
1169  * Provides change history for the NvMediaIDE API.
1170  *
1171  * \section 6x_history_nvmedia_ide Version History
1172  *
1173  * <b> Version 1.0.0 </b> September 28, 2021
1174  * - Initial release
1175  *
1176  * <b> Version 1.1.0 </b> May 02, 2024
1177  * - Added interface dor device list query
1178  */
1181 #ifdef __cplusplus
1182 } /* extern "C" */
1183 #endif
1184 
1185 #endif /* NVMEDIA_IDE_H */
NvMediaIDECreateCtx
NvMediaIDE * NvMediaIDECreateCtx(void)
Create an NvMediaIDE object instance.
NvMediaIDEFrameStats
Frame stats structure to get get ring entry idx and motion vector dump.
Definition: nvmedia_common_decode.h:213
NvSciSyncObj
struct NvSciSyncObjRec * NvSciSyncObj
Definition: wfdext.h:86
NvMediaPictureInfo
void NvMediaPictureInfo
A generic "picture information" pointer type.
Definition: nvmedia_common_decode.h:90
NvMediaSliceDecodeData
slice level data used with slice level decoding
Definition: nvmedia_common_decode.h:508
NvMediaIDESliceDecode
NvMediaStatus NvMediaIDESliceDecode(const NvMediaIDE *decoder, const NvSciBufObj target, const NvMediaSliceDecodeData *sliceDecData)
This function is intended for use in low-latency decode mode.
NvMediaIDESetNvSciSyncObjforEOF
NvMediaStatus NvMediaIDESetNvSciSyncObjforEOF(const NvMediaIDE *decoder, NvSciSyncObj nvscisyncEOF)
Specifies the NvSciSyncObj to be used for an EOF NvSciSyncFence.
bufObj
const WFDPipeline NvSciBufObj *const bufObj
Definition: wfdext.h:82
NvMediaStatus
NvMediaStatus
Defines all possible error codes.
Definition: nvmedia_core.h:108
NvMediaNvSciSyncObjType
NvMediaNvSciSyncObjType
Defines NvMedia NvSciSyncObj types.
Definition: nvmedia_core.h:206
NvMediaNvSciSyncClientType
NvMediaNvSciSyncClientType
NvMedia NvSciSync Client Type.
Definition: nvmedia_core.h:193
NvMediaIDEGetVersion
NvMediaStatus NvMediaIDEGetVersion(NvMediaVersion *version)
Retrieves the version information for the NvMediaIDE library.
NvSciBufObj
struct NvSciBufObjRefRec * NvSciBufObj
Definition: wfdext.h:71
NvSciBufAttrList
struct NvSciBufAttrListRec * NvSciBufAttrList
Definition: wfdext.h:73
nvscisync.h
NVIDIA Software Communications Interface (SCI) : NvSciSync
NvMediaIDERegisterNvSciBufObj
NvMediaStatus NvMediaIDERegisterNvSciBufObj(NvMediaIDE *decoder, NvSciBufObj bufObj)
Registers an NvSciBufObj for use with an NvMediaIde handle.
NvMediaIDECreate
NvMediaIDE * NvMediaIDECreate(NvMediaVideoCodec codec, uint16_t width, uint16_t height, uint16_t maxReferences, uint64_t maxBitstreamSize, uint8_t inputBuffering, uint32_t flags, NvMediaDecoderInstanceId instanceId)
Creates an NvMediaIDE object.
NvMediaIDEInit
NvMediaStatus NvMediaIDEInit(NvMediaIDE *decoder, NvMediaVideoCodec codec, uint16_t width, uint16_t height, uint16_t maxReferences, uint64_t maxBitstreamSize, uint8_t inputBuffering, uint32_t flags, NvMediaDecoderInstanceId instanceId)
Initialize an NvMediaIDE object instance.
NvMediaVersion
Holds NvMedia version information.
Definition: nvmedia_core.h:168
NvMediaIDEFillNvSciSyncAttrList
NvMediaStatus NvMediaIDEFillNvSciSyncAttrList(const NvMediaIDE *decoder, NvSciSyncAttrList attrlist, NvMediaNvSciSyncClientType clienttype)
Fills the NvMediaIDE specific NvSciSync attributes.
NvMediaIDEFillNvSciBufAttrList
NvMediaStatus NvMediaIDEFillNvSciBufAttrList(NvMediaDecoderInstanceId instanceId, NvSciBufAttrList attrlist)
Fills the NvMediaIDE specific NvSciBuf attributes which than then be used to allocate an NvSciBufObj ...
NvMediaIDEGetFrameDecodeStatus
NvMediaStatus NvMediaIDEGetFrameDecodeStatus(const NvMediaIDE *decoder, uint32_t ringEntryIdx, NvMediaIDEFrameStatus *FrameStatus)
Retrieves the HW decode status available.
NvMediaIDEDecoderRender
NvMediaStatus NvMediaIDEDecoderRender(const NvMediaIDE *decoder, NvSciBufObj target, const NvMediaPictureInfo *pictureInfo, const void *encryptParams, uint32_t numBitstreamBuffers, const NvMediaBitstreamBuffer *bitstreams, NvMediaIDEFrameStats *FrameStatsDump, NvMediaDecoderInstanceId instanceId)
Decodes a compressed field/frame and render the result into a target.
NvMediaIDEUnregisterNvSciBufObj
NvMediaStatus NvMediaIDEUnregisterNvSciBufObj(const NvMediaIDE *decoder, NvSciBufObj bufObj)
Un-registers NvSciBufObj which was previously registered with NvMediaIde using NvMediaIDERegisterNvSc...
nvmedia_core.h
NVIDIA Media Interface: Core
NvMediaIDEInsertPreNvSciSyncFence
NvMediaStatus NvMediaIDEInsertPreNvSciSyncFence(const NvMediaIDE *decoder, const NvSciSyncFence *prenvscisyncfence)
Sets an NvSciSyncFence as a prefence for an NvMediaIDERender() NvSciSyncFence operation.
NvMediaDecoderInstanceId
NvMediaDecoderInstanceId
Specifies the decoder instance ID.
Definition: nvmedia_common_decode.h:56
NvMediaIDEGetEOFNvSciSyncFence
NvMediaStatus NvMediaIDEGetEOFNvSciSyncFence(const NvMediaIDE *decoder, NvSciSyncObj eofnvscisyncobj, NvSciSyncFence *eofnvscisyncfence)
Gets EOF NvSciSyncFence for an NvMediaIDERender() operation.
NvMediaBitstreamBuffer
Holds an application data buffer containing compressed video data.
Definition: nvmedia_common_encode_decode.h:91
NvMediaIDEQueryHWDevices
NvMediaStatus NvMediaIDEQueryHWDevices(NvMediaDeviceList *deviceList)
Queries the HW device list for IDE.
NvSciSyncFence
Defines the opaque NvSciSyncFence.
Definition: nvscisync.h:256
NvMediaIDEDestroy
NvMediaStatus NvMediaIDEDestroy(const NvMediaIDE *decoder)
Destroys an NvMediaIDE object.
NvMediaVideoCodec
NvMediaVideoCodec
Video codec type.
Definition: nvmedia_common_encode_decode.h:56
nvscibuf.h
NVIDIA Software Communications Interface (SCI) : NvSciBuf
NvMediaIDEGetBackwardUpdates
NvMediaStatus NvMediaIDEGetBackwardUpdates(const NvMediaIDE *decoder, void *backupdates)
NvMediaIDE get backward updates counters for VP9 adaptive entropy contexts.
NvMediaIDEUnregisterNvSciSyncObj
NvMediaStatus NvMediaIDEUnregisterNvSciSyncObj(const NvMediaIDE *decoder, NvSciSyncObj nvscisync)
Unregisters an NvSciSyncObj with NvMediaIDE.
NvMediaIDERegisterNvSciSyncObj
NvMediaStatus NvMediaIDERegisterNvSciSyncObj(const NvMediaIDE *decoder, NvMediaNvSciSyncObjType syncobjtype, NvSciSyncObj nvscisync)
Registers an NvSciSyncObj with NvMediaIDE.
nvmedia_common_decode.h
NVIDIA Media Interface: Common Types for Image Decode
NvSciSyncAttrList
struct NvSciSyncAttrListRec * NvSciSyncAttrList
Definition: wfdext.h:88
NvMediaIDE
struct NvMediaIDE NvMediaIDE
An opaque NvMediaIDE object created by NvMediaIDECreate.
Definition: nvmedia_ide.h:68
NvMediaIDEFrameStatus
To Get the decoding status from HW decoder.
Definition: nvmedia_common_decode.h:105