NVIDIA DRIVE OS Linux SDK API Reference

6.0.3 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 
422  const NvMediaIDE *decoder,
423  NvSciBufObj target,
424  const NvMediaPictureInfo *pictureInfo,
425  const void *encryptParams,
426  uint32_t numBitstreamBuffers,
427  const NvMediaBitstreamBuffer *bitstreams,
428  NvMediaIDEFrameStats *FrameStatsDump,
429  NvMediaDecoderInstanceId instanceId
430 );
431 
479  const NvMediaIDE *decoder,
480  const NvSciBufObj target,
481  const NvMediaSliceDecodeData *sliceDecData
482 );
483 
553  const NvMediaIDE *decoder,
554  uint32_t ringEntryIdx,
555  NvMediaIDEFrameStatus *FrameStatus
556 );
557 
598  NvMediaDecoderInstanceId instanceId,
599  NvSciBufAttrList attrlist
600 );
601 
651  const NvMediaIDE *decoder,
652  NvSciSyncAttrList attrlist,
653  NvMediaNvSciSyncClientType clienttype
654 );
655 
680  const NvMediaIDE *decoder,
681  void *backupdates
682 );
683 
739  const NvMediaIDE *decoder,
740  NvMediaNvSciSyncObjType syncobjtype,
741  NvSciSyncObj nvscisync
742 );
743 
805  const NvMediaIDE *decoder,
806  NvSciSyncObj nvscisync
807 );
808 
855  const NvMediaIDE *decoder,
856  NvSciSyncObj nvscisyncEOF
857 );
858 
919  const NvMediaIDE *decoder,
920  const NvSciSyncFence *prenvscisyncfence
921 );
922 
982  const NvMediaIDE *decoder,
983  NvSciSyncObj eofnvscisyncobj,
984  NvSciSyncFence *eofnvscisyncfence
985 );
986 
987 /*
988  * @defgroup 6x_history_nvmedia_ide History
989  * Provides change history for the NvMediaIDE API.
990  *
991  * \section 6x_history_nvmedia_ide Version History
992  *
993  * <b> Version 1.0 </b> September 28, 2021
994  * - Initial release
995  */
998 #ifdef __cplusplus
999 } /* extern "C" */
1000 #endif
1001 
1002 #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/mm/inc/public/nvmedia_common_decode.h:213
NvMediaSliceDecodeData
slice level data used with slice level decoding
Definition: tvmr/include/nvmedia_common_decode.h:507
NvMediaIDESliceDecode
NvMediaStatus NvMediaIDESliceDecode(const NvMediaIDE *decoder, const NvSciBufObj target, const NvMediaSliceDecodeData *sliceDecData)
This function is intended for use in low-latency decode mode.
NvMediaNvSciSyncObjType
NvMediaNvSciSyncObjType
Defines NvMedia NvSciSyncObj types.
Definition: tvmr/include/nvmedia_core.h:273
NvMediaIDESetNvSciSyncObjforEOF
NvMediaStatus NvMediaIDESetNvSciSyncObjforEOF(const NvMediaIDE *decoder, NvSciSyncObj nvscisyncEOF)
Specifies the NvSciSyncObj to be used for an EOF NvSciSyncFence.
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:2578
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.
NvMediaVideoCodec
NvMediaVideoCodec
Video codec type.
Definition: tvmr/include/nvmedia_common_encode_decode.h:48
NvMediaVersion
Holds NvMedia version information.
Definition: tvmr/include/nvmedia_core.h:237
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.
NvMediaIDEInsertPreNvSciSyncFence
NvMediaStatus NvMediaIDEInsertPreNvSciSyncFence(const NvMediaIDE *decoder, const NvSciSyncFence *prenvscisyncfence)
Sets an NvSciSyncFence as a prefence for an NvMediaIDERender() NvSciSyncFence operation.
NvMediaStatus
NvMediaStatus
Defines all possible error codes.
Definition: tvmr/include/nvmedia_core.h:180
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: tvmr/include/nvmedia_common_encode_decode.h:83
NvSciBufAttrList
struct NvSciBufAttrListRec * NvSciBufAttrList
A container constituting an attribute list which contains.
Definition: nvscibuf.h:2596
NvSciSyncFence
Defines the opaque NvSciSyncFence.
Definition: nvscisync.h:240
NvMediaIDEDestroy
NvMediaStatus NvMediaIDEDestroy(const NvMediaIDE *decoder)
Destroys an NvMediaIDE object.
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.
NvMediaPictureInfo
void NvMediaPictureInfo
A generic "picture information" pointer type.
Definition: tvmr/include/nvmedia_common_decode.h:94
NvMediaIDERegisterNvSciSyncObj
NvMediaStatus NvMediaIDERegisterNvSciSyncObj(const NvMediaIDE *decoder, NvMediaNvSciSyncObjType syncobjtype, NvSciSyncObj nvscisync)
Registers an NvSciSyncObj with NvMediaIDE.
NvMediaDecoderInstanceId
NvMediaDecoderInstanceId
Specifies the decoder instance ID.
Definition: tvmr/include/nvmedia_common_decode.h:60
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/mm/inc/public/nvmedia_common_decode.h:105
NvMediaNvSciSyncClientType
NvMediaNvSciSyncClientType
NvMedia NvSciSync Client Type.
Definition: tvmr/include/nvmedia_core.h:260