Loading [MathJax]/extensions/tex2jax.js
  • <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • NVIDIA DRIVE OS Linux SDK API Reference

    6.0.9 Release
    All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
    nvmedia_iep.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_IEP_H
    21 #define NVMEDIA_IEP_H
    22 
    23 #ifdef __cplusplus
    24 extern "C" {
    25 #endif
    26 
    27 #include <stdint.h>
    28 
    29 #include "nvmedia_core.h"
    30 #include "nvscisync.h"
    31 #include "nvscibuf.h"
    32 #include "nvmedia_common_encode.h"
    33 
    45 #define NVMEDIA_IEP_VERSION_MAJOR 1
    46 
    47 #define NVMEDIA_IEP_VERSION_MINOR 0
    48 
    49 #define NVMEDIA_IEP_VERSION_PATCH 2
    50 
    55 #define NVMEDIA_IEP_MAX_PRENVSCISYNCFENCES (16U)
    56 
    60 typedef enum {
    71 
    75 typedef struct NvMediaIEP NvMediaIEP;
    76 
    103 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
    106  NvMediaVersion *version
    107 );
    108 
    194 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
    195 NvMediaIEP *
    197  NvMediaIEPType encodeType,
    198  const void *initParams,
    199  NvSciBufAttrList bufAttrList,
    200  uint8_t maxInOutBuffering,
    201  NvMediaEncoderInstanceId instanceId
    202 );
    203 
    289 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
    290 NvMediaIEP *
    292  NvMediaIEPType encodeType,
    293  const void *initParams,
    294  const NvSciBufSurfSampleType subsampleType,
    295  const NvSciBufSurfBPC bitdepth,
    296  uint8_t maxInOutBuffering,
    297  NvMediaEncoderInstanceId instanceId
    298 );
    299 
    300 #if !NV_IS_SAFETY
    301 
    323 NvMediaIEP *
    325  void
    326 );
    327 
    399  const NvMediaIEP *encoder,
    400  NvMediaIEPType encodeType,
    401  const void *initParams,
    402  NvSciBufAttrList bufAttrList,
    403  uint8_t maxBuffering,
    404  NvMediaEncoderInstanceId instanceId
    405 );
    406 #endif /* !NV_IS_SAFETY */
    407 
    432 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
    433 void NvMediaIEPDestroy(NvMediaIEP *encoder);
    434 
    507 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
    510  NvMediaIEP *encoder,
    511  const NvSciBufObj frame,
    512  const void *picParams,
    513  NvMediaEncoderInstanceId instanceId
    514 );
    515 
    551 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
    554  NvMediaIEP *encoder,
    555  const void *configuration
    556 );
    557 
    651 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
    654  const NvMediaIEP *encoder,
    655  uint32_t *numBytes,
    656  uint32_t numBitstreamBuffers,
    657  const NvMediaBitstreamBuffer *bitstreams,
    658  void *extradata
    659 );
    660 
    724 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
    727  const NvMediaIEP *encoder,
    728  uint32_t *numBytesAvailable,
    729  NvMediaBlockingType blockingType,
    730  uint32_t millisecondTimeout
    731 );
    732 
    733 
    773 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
    776  const NvMediaIEP *encoder,
    777  NvMediaEncAttrType attrType,
    778  uint32_t attrSize,
    779  void *AttributeData
    780 );
    781 
    838  NvMediaIEP *encoder,
    839  const NvSciBufObj bufObj
    840 );
    841 
    896 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
    899  const NvMediaIEP *encoder,
    900  const NvSciBufObj bufObj
    901 );
    902 
    903 
    953  NvMediaEncoderInstanceId instanceId,
    954  NvSciBufAttrList attrlist
    955 );
    956 
    957 
    1015  const NvMediaIEP *encoder,
    1016  NvSciSyncAttrList attrlist,
    1017  NvMediaNvSciSyncClientType clienttype
    1018 );
    1019 
    1020 
    1077  const NvMediaIEP *encoder,
    1078  NvMediaNvSciSyncObjType syncobjtype,
    1079  NvSciSyncObj syncObj
    1080 );
    1081 
    1144  const NvMediaIEP *encoder,
    1145  NvSciSyncObj syncObj
    1146 );
    1147 
    1194  const NvMediaIEP *encoder,
    1195  NvSciSyncObj nvscisyncEOF
    1196 );
    1197 
    1258  const NvMediaIEP *encoder,
    1259  const NvSciSyncFence *prenvscisyncfence
    1260 );
    1261 
    1321  const NvMediaIEP *encoder,
    1322  NvSciSyncObj eofnvscisyncobj,
    1323  NvSciSyncFence *eofnvscisyncfence
    1324 );
    1325 
    1326 /*
    1327  * @defgroup 6x_history_nvmedia_iep History
    1328  * Provides change history for the NvMedia IEP API.
    1329  *
    1330  * \section 6x_history_nvmedia_iep Version History
    1331  *
    1332  * <b> Version 1.0 </b> September 28, 2021
    1333  * - Initial release
    1334  *
    1335  * <b> Version 1.1 </b> August 03, 2022
    1336  * - Added new quality preset API, NvMediaEncPreset
    1337  *
    1338  * <b> Version 1.2 </b> March 07, 2023
    1339  * - Added new create API NvMediaIEPCreateEx which does not depends on reconciled attribute list
    1340  *
    1341  */
    1342 
    1345 #ifdef __cplusplus
    1346 } /* extern "C" */
    1347 #endif
    1348 
    1349 #endif /* NVMEDIA_IEP_H */
    NvMediaIEPCreateEx
    NvMediaIEP * NvMediaIEPCreateEx(NvMediaIEPType encodeType, const void *initParams, const NvSciBufSurfSampleType subsampleType, const NvSciBufSurfBPC bitdepth, uint8_t maxInOutBuffering, NvMediaEncoderInstanceId instanceId)
    Create an NvMediaIEP object instance.
    NVMEDIA_IMAGE_ENCODE_H264
    @ NVMEDIA_IMAGE_ENCODE_H264
    H.264 encode.
    Definition: nvmedia_iep.h:62
    NvMediaEncAttrType
    NvMediaEncAttrType
    Specifies the encoder get attribute type.
    Definition: nvmedia_common_encode.h:615
    NvMediaIEPFillNvSciSyncAttrList
    NvMediaStatus NvMediaIEPFillNvSciSyncAttrList(const NvMediaIEP *encoder, NvSciSyncAttrList attrlist, NvMediaNvSciSyncClientType clienttype)
    Fills the NvMediaIEP specific NvSciSync attributes.
    NvMediaIEPCreate
    NvMediaIEP * NvMediaIEPCreate(NvMediaIEPType encodeType, const void *initParams, NvSciBufAttrList bufAttrList, uint8_t maxInOutBuffering, NvMediaEncoderInstanceId instanceId)
    Create an NvMediaIEP object instance.
    NvMediaIEPSetNvSciSyncObjforEOF
    NvMediaStatus NvMediaIEPSetNvSciSyncObjforEOF(const NvMediaIEP *encoder, NvSciSyncObj nvscisyncEOF)
    Specifies the NvSciSyncObj to be used for an EOF NvSciSyncFence.
    NvMediaIEPSetConfiguration
    NvMediaStatus NvMediaIEPSetConfiguration(NvMediaIEP *encoder, const void *configuration)
    Sets the encoder configuration.
    NvMediaBlockingType
    NvMediaBlockingType
    Blocking type.
    Definition: nvmedia_common_encode.h:201
    NvSciBufSurfBPC
    NvSciBufSurfBPC
    Bits Per Component.
    Definition: nvscibuf.h:2845
    NvMediaIEPCreateCtx
    NvMediaIEP * NvMediaIEPCreateCtx(void)
    Create an NvMediaIEP object instance.
    NvMediaIEPGetEOFNvSciSyncFence
    NvMediaStatus NvMediaIEPGetEOFNvSciSyncFence(const NvMediaIEP *encoder, NvSciSyncObj eofnvscisyncobj, NvSciSyncFence *eofnvscisyncfence)
    Gets EOF NvSciSyncFence for an NvMediaIEPFeedFrame() operation.
    NvMediaStatus
    NvMediaStatus
    Defines all possible error codes.
    Definition: nvmedia_core.h:104
    NvMediaIEPRegisterNvSciBufObj
    NvMediaStatus NvMediaIEPRegisterNvSciBufObj(NvMediaIEP *encoder, const NvSciBufObj bufObj)
    Registers NvSciBufObj for use with a NvMediaIEP handle.
    NvMediaNvSciSyncObjType
    NvMediaNvSciSyncObjType
    Defines NvMedia NvSciSyncObj types.
    Definition: nvmedia_core.h:202
    NvMediaNvSciSyncClientType
    NvMediaNvSciSyncClientType
    NvMedia NvSciSync Client Type.
    Definition: nvmedia_core.h:189
    NvSciSyncAttrList
    struct NvSciSyncAttrListRec * NvSciSyncAttrList
    A container constituting an NvSciSyncAttrList which contains:
    Definition: nvscisync.h:330
    NvMediaIEP
    struct NvMediaIEP NvMediaIEP
    Opaque NvMediaIEP object created by NvMediaIEPCreate.
    Definition: nvmedia_iep.h:75
    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
    NvMediaIEPInsertPreNvSciSyncFence
    NvMediaStatus NvMediaIEPInsertPreNvSciSyncFence(const NvMediaIEP *encoder, const NvSciSyncFence *prenvscisyncfence)
    Sets an NvSciSyncFence as a prefence for an NvMediaIEPFeedFrame() NvSciSyncFence operation.
    NvMediaVersion
    Holds NvMedia version information.
    Definition: nvmedia_core.h:164
    NvMediaIEPType
    NvMediaIEPType
    Image encode type.
    Definition: nvmedia_iep.h:60
    NvMediaEncoderInstanceId
    NvMediaEncoderInstanceId
    Specifies the encoder instance ID.
    Definition: nvmedia_common_encode.h:56
    NvMediaIEPBitsAvailable
    NvMediaStatus NvMediaIEPBitsAvailable(const NvMediaIEP *encoder, uint32_t *numBytesAvailable, NvMediaBlockingType blockingType, uint32_t millisecondTimeout)
    Returns the status of an encoding task submitted using NvMediaIEPFeedFrame, whose encoded output is t...
    NvMediaIEPFeedFrame
    NvMediaStatus NvMediaIEPFeedFrame(NvMediaIEP *encoder, const NvSciBufObj frame, const void *picParams, NvMediaEncoderInstanceId instanceId)
    Submits the specified frame for encoding.
    NvMediaIEPGetVersion
    NvMediaStatus NvMediaIEPGetVersion(NvMediaVersion *version)
    Retrieves the version information for the NvMedia IEP library.
    NvSciBufSurfSampleType
    NvSciBufSurfSampleType
    Subsampling type.
    Definition: nvscibuf.h:2826
    NVMEDIA_IMAGE_ENCODE_AV1
    @ NVMEDIA_IMAGE_ENCODE_AV1
    AV1 codec.
    Definition: nvmedia_iep.h:68
    nvmedia_core.h
    NVIDIA Media Interface: Core
    NvMediaIEPGetAttribute
    NvMediaStatus NvMediaIEPGetAttribute(const NvMediaIEP *encoder, NvMediaEncAttrType attrType, uint32_t attrSize, void *AttributeData)
    Gets the encoder attribute for the current encoding session.
    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
    NvMediaIEPInit
    NvMediaStatus NvMediaIEPInit(const NvMediaIEP *encoder, NvMediaIEPType encodeType, const void *initParams, NvSciBufAttrList bufAttrList, uint8_t maxBuffering, NvMediaEncoderInstanceId instanceId)
    Initialize an NvMediaIEP object instance.
    NvMediaIEPUnregisterNvSciBufObj
    NvMediaStatus NvMediaIEPUnregisterNvSciBufObj(const NvMediaIEP *encoder, const NvSciBufObj bufObj)
    Un-registers NvSciBufObj which was previously registered with NvMediaIEP using NvMediaIEPRegisterNvSc...
    NVMEDIA_IMAGE_ENCODE_VP9
    @ NVMEDIA_IMAGE_ENCODE_VP9
    VP9 codec.
    Definition: nvmedia_iep.h:66
    NvSciSyncFence
    Defines the opaque NvSciSyncFence.
    Definition: nvscisync.h:256
    NvMediaIEPGetBits
    NvMediaStatus NvMediaIEPGetBits(const NvMediaIEP *encoder, uint32_t *numBytes, uint32_t numBitstreamBuffers, const NvMediaBitstreamBuffer *bitstreams, void *extradata)
    Returns the bitstream for a slice or a frame.
    nvscibuf.h
    NVIDIA Software Communications Interface (SCI) : NvSciBuf
    NvMediaIEPUnregisterNvSciSyncObj
    NvMediaStatus NvMediaIEPUnregisterNvSciSyncObj(const NvMediaIEP *encoder, NvSciSyncObj syncObj)
    Unregisters an NvSciSyncObj with NvMediaIEP.
    NVMEDIA_IMAGE_ENCODE_END
    @ NVMEDIA_IMAGE_ENCODE_END
    Definition: nvmedia_iep.h:69
    nvmedia_common_encode.h
    NVIDIA Media Interface: Common Types for Encoding
    NVMEDIA_IMAGE_ENCODE_HEVC
    @ NVMEDIA_IMAGE_ENCODE_HEVC
    HEVC codec.
    Definition: nvmedia_iep.h:64
    NvSciSyncObj
    struct NvSciSyncObjRec * NvSciSyncObj
    A Synchronization Object is a container holding the reconciled NvSciSyncAttrList defining constraints...
    Definition: nvscisync.h:311
    NvMediaIEPFillNvSciBufAttrList
    NvMediaStatus NvMediaIEPFillNvSciBufAttrList(NvMediaEncoderInstanceId instanceId, NvSciBufAttrList attrlist)
    Fills the NvMediaIEP specific NvSciBuf attributes which than then be used to allocate an NvSciBufObj ...
    NvMediaIEPDestroy
    void NvMediaIEPDestroy(NvMediaIEP *encoder)
    Destroys an NvMediaIEP object instance.
    NvMediaIEPRegisterNvSciSyncObj
    NvMediaStatus NvMediaIEPRegisterNvSciSyncObj(const NvMediaIEP *encoder, NvMediaNvSciSyncObjType syncobjtype, NvSciSyncObj syncObj)
    Registers an NvSciSyncObj with NvMediaIEP.
    人人超碰97caoporen国产