NVIDIA DRIVE OS Linux SDK API Reference

6.0.5 Release
nvmedia_ide.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 
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 
213 NvMediaIDE *
215  NvMediaVideoCodec codec,
216  uint16_t width,
217  uint16_t height,
218  uint16_t maxReferences,
219  uint64_t maxBitstreamSize,
220  uint8_t inputBuffering,
221  uint32_t flags,
222  NvMediaDecoderInstanceId instanceId
223 );
224 
247 NvMediaIDE *
249  void
250 );
251 
314  NvMediaIDE *decoder,
315  NvMediaVideoCodec codec,
316  uint16_t width,
317  uint16_t height,
318  uint16_t maxReferences,
319  uint64_t maxBitstreamSize,
320  uint8_t inputBuffering,
321  uint32_t flags,
322  NvMediaDecoderInstanceId instanceId
323 );
324 
350  const NvMediaIDE *decoder
351 );
352 
407  const NvMediaIDE *decoder,
408  NvSciBufObj bufObj
409 );
410 
463  const NvMediaIDE *decoder,
464  NvSciBufObj bufObj
465 );
466 
536  const NvMediaIDE *decoder,
537  NvSciBufObj target,
538  const NvMediaPictureInfo *pictureInfo,
539  const void *encryptParams,
540  uint32_t numBitstreamBuffers,
541  const NvMediaBitstreamBuffer *bitstreams,
542  NvMediaIDEFrameStats *FrameStatsDump,
543  NvMediaDecoderInstanceId instanceId
544 );
545 
593  const NvMediaIDE *decoder,
594  const NvSciBufObj target,
595  const NvMediaSliceDecodeData *sliceDecData
596 );
597 
667  const NvMediaIDE *decoder,
668  uint32_t ringEntryIdx,
669  NvMediaIDEFrameStatus *FrameStatus
670 );
671 
712  NvMediaDecoderInstanceId instanceId,
713  NvSciBufAttrList attrlist
714 );
715 
765  const NvMediaIDE *decoder,
766  NvSciSyncAttrList attrlist,
767  NvMediaNvSciSyncClientType clienttype
768 );
769 
794  const NvMediaIDE *decoder,
795  void *backupdates
796 );
797 
853  const NvMediaIDE *decoder,
854  NvMediaNvSciSyncObjType syncobjtype,
855  NvSciSyncObj nvscisync
856 );
857 
919  const NvMediaIDE *decoder,
920  NvSciSyncObj nvscisync
921 );
922 
969  const NvMediaIDE *decoder,
970  NvSciSyncObj nvscisyncEOF
971 );
972 
1033  const NvMediaIDE *decoder,
1034  const NvSciSyncFence *prenvscisyncfence
1035 );
1036 
1096  const NvMediaIDE *decoder,
1097  NvSciSyncObj eofnvscisyncobj,
1098  NvSciSyncFence *eofnvscisyncfence
1099 );
1100 
1101 /*
1102  * @defgroup 6x_history_nvmedia_ide History
1103  * Provides change history for the NvMediaIDE API.
1104  *
1105  * \section 6x_history_nvmedia_ide Version History
1106  *
1107  * <b> Version 1.0 </b> September 28, 2021
1108  * - Initial release
1109  */
1112 #ifdef __cplusplus
1113 } /* extern "C" */
1114 #endif
1115 
1116 #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
NvMediaIDERegisterNvSciBufObj
NvMediaStatus NvMediaIDERegisterNvSciBufObj(const NvMediaIDE *decoder, NvSciBufObj bufObj)
Registers an NvSciBufObj for use with an NvMediaIde handle.
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:314
NvSciBufObj
struct NvSciBufObjRefRec * NvSciBufObj
A memory object is a container holding the reconciled NvSciBufAttrList defining constraints of the bu...
Definition: nvscibuf.h:2717
nvscisync.h
NVIDIA Software Communications Interface (SCI) : NvSciSync
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:2735
NvSciSyncFence
Defines the opaque NvSciSyncFence.
Definition: nvscisync.h:240
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:295
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