NVIDIA DRIVE OS Linux SDK API Reference

6.0.9 Release
nvmedia_ide.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2021-2023 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 
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 0
55 
56 #define NVMEDIA_IDE_VERSION_PATCH 0
57 
62 #define NVMEDIA_IDE_MAX_PRENVSCISYNCFENCES (16U)
63 
64 
65 
70 typedef struct NvMediaIDE NvMediaIDE;
71 
83 #define NVMEDIA_IDE_10BIT_DECODE (1U<<0)
84 
90 #define NVMEDIA_IDE_PIXEL_REC_2020 (1U<<1)
91 
97 #define NVMEDIA_IDE_OUTPUT_16BIT_SURFACES (1U<<2)
98 
104 #define NVMEDIA_IDE_ENABLE_AES (1U<<3)
105 
111 #define NVMEDIA_IDE_NV24_OUTPUT (1U<<4)
112 
118 #define NVMEDIA_IDE_PROFILING (1U<<5)
119 
125 #define NVMEDIA_IDE_DUMP_MV (1U<<6)
126 
157  NvMediaVersion *version
158 );
159 
216 NvMediaIDE *
218  NvMediaVideoCodec codec,
219  uint16_t width,
220  uint16_t height,
221  uint16_t maxReferences,
222  uint64_t maxBitstreamSize,
223  uint8_t inputBuffering,
224  uint32_t flags,
225  NvMediaDecoderInstanceId instanceId
226 );
227 
250 NvMediaIDE *
252  void
253 );
254 
317  NvMediaIDE *decoder,
318  NvMediaVideoCodec codec,
319  uint16_t width,
320  uint16_t height,
321  uint16_t maxReferences,
322  uint64_t maxBitstreamSize,
323  uint8_t inputBuffering,
324  uint32_t flags,
325  NvMediaDecoderInstanceId instanceId
326 );
327 
353  const NvMediaIDE *decoder
354 );
355 
410  NvMediaIDE *decoder,
411  NvSciBufObj bufObj
412 );
413 
466  const NvMediaIDE *decoder,
467  NvSciBufObj bufObj
468 );
469 
539  const NvMediaIDE *decoder,
540  NvSciBufObj target,
541  const NvMediaPictureInfo *pictureInfo,
542  const void *encryptParams,
543  uint32_t numBitstreamBuffers,
544  const NvMediaBitstreamBuffer *bitstreams,
545  NvMediaIDEFrameStats *FrameStatsDump,
546  NvMediaDecoderInstanceId instanceId
547 );
548 
596  const NvMediaIDE *decoder,
597  const NvSciBufObj target,
598  const NvMediaSliceDecodeData *sliceDecData
599 );
600 
670  const NvMediaIDE *decoder,
671  uint32_t ringEntryIdx,
672  NvMediaIDEFrameStatus *FrameStatus
673 );
674 
721  NvMediaDecoderInstanceId instanceId,
722  NvSciBufAttrList attrlist
723 );
724 
781  const NvMediaIDE *decoder,
782  NvSciSyncAttrList attrlist,
783  NvMediaNvSciSyncClientType clienttype
784 );
785 
813  const NvMediaIDE *decoder,
814  void *backupdates
815 );
816 
872  const NvMediaIDE *decoder,
873  NvMediaNvSciSyncObjType syncobjtype,
874  NvSciSyncObj nvscisync
875 );
876 
938  const NvMediaIDE *decoder,
939  NvSciSyncObj nvscisync
940 );
941 
988  const NvMediaIDE *decoder,
989  NvSciSyncObj nvscisyncEOF
990 );
991 
1052  const NvMediaIDE *decoder,
1053  const NvSciSyncFence *prenvscisyncfence
1054 );
1055 
1115  const NvMediaIDE *decoder,
1116  NvSciSyncObj eofnvscisyncobj,
1117  NvSciSyncFence *eofnvscisyncfence
1118 );
1119 
1120 /*
1121  * @defgroup 6x_history_nvmedia_ide History
1122  * Provides change history for the NvMediaIDE API.
1123  *
1124  * \section 6x_history_nvmedia_ide Version History
1125  *
1126  * <b> Version 1.0 </b> September 28, 2021
1127  * - Initial release
1128  */
1131 #ifdef __cplusplus
1132 } /* extern "C" */
1133 #endif
1134 
1135 #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
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:500
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.
NvMediaStatus
NvMediaStatus
Defines all possible error codes.
Definition: nvmedia_core.h:104
NvMediaNvSciSyncObjType
NvMediaNvSciSyncObjType
Defines NvMedia NvSciSyncObj types.
Definition: nvmedia_core.h:202
NvMediaNvSciSyncClientType
NvMediaNvSciSyncClientType
NvMedia NvSciSync Client Type.
Definition: nvmedia_core.h:189
NvMediaIDEGetVersion
NvMediaStatus NvMediaIDEGetVersion(NvMediaVersion *version)
Retrieves the version information for the NvMediaIDE library.
NvSciSyncAttrList
struct NvSciSyncAttrListRec * NvSciSyncAttrList
A container constituting an NvSciSyncAttrList which contains:
Definition: nvscisync.h:330
NvSciBufObj
struct NvSciBufObjRefRec * NvSciBufObj
A memory object is a container holding the reconciled NvSciBufAttrList defining constraints of the bu...
Definition: nvscibuf.h:3108
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:164
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:89
NvSciBufAttrList
struct NvSciBufAttrListRec * NvSciBufAttrList
A container constituting an attribute list which contains.
Definition: nvscibuf.h:3126
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:54
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
NvSciSyncObj
struct NvSciSyncObjRec * NvSciSyncObj
A Synchronization Object is a container holding the reconciled NvSciSyncAttrList defining constraints...
Definition: nvscisync.h:311
NvMediaIDE
struct NvMediaIDE NvMediaIDE
An opaque NvMediaIDE object created by NvMediaIDECreate.
Definition: nvmedia_ide.h:70
NvMediaIDEFrameStatus
To Get the decoding status from HW decoder.
Definition: nvmedia_common_decode.h:105