• <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_ijpe.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 
    21 #ifndef NVMEDIA_IJPE_H
    22 #define NVMEDIA_IJPE_H
    23 
    24 #ifdef __cplusplus
    25 extern "C" {
    26 #endif
    27 
    28 #include <stdint.h>
    29 
    30 #include "nvmedia_core.h"
    31 #include "nvscibuf.h"
    32 #include "nvscisync.h"
    34 #include "nvmedia_common_encode.h"
    46 #define NVMEDIA_IJPE_VERSION_MAJOR 2
    47 
    48 #define NVMEDIA_IJPE_VERSION_MINOR 0
    49 
    50 #define NVMEDIA_IJPE_VERSION_PATCH 0
    51 
    56 #define NVMEDIA_IJPE_MAX_PRENVSCISYNCFENCES (16U)
    57 
    62 #define NVMEDIA_JPEG_ENC_FLAG_NONE (0 << 0)
    63 
    69 #define NVMEDIA_JPEG_ENC_FLAG_SKIP_SOI (1 << 0)
    70 
    75 #define NVMEDIA_IMAGE_JPEG_ATTRIBUTE_QUALITY (1 << 0)
    76 
    80 #define NVMEDIA_IMAGE_JPEG_ATTRIBUTE_RESTARTINTERVAL (1 << 1)
    81 
    85 #define NVMEDIA_IMAGE_JPEG_ATTRIBUTE_TARGETSIZE (1 << 2)
    86 
    90 #define NVMEDIA_IMAGE_JPEG_ATTRIBUTE_QUANTTABLE (1 << 3)
    91 
    95 #define NVMEDIA_IMAGE_JPEG_ATTRIBUTE_HUFFTABLE (1 << 4)
    96 
    100 typedef struct {
    101  uint8_t length[16];
    102  uint8_t *values;
    104 
    108 typedef struct {
    114  uint8_t quality;
    118  uint32_t restartInterval;
    122  uint32_t targetImageSize;
    126  uint8_t lumaQuant[64];
    130  uint8_t chromaQuant[64];
    156 
    160 typedef struct NvMediaIJPE NvMediaIJPE;
    161 
    189  NvMediaVersion *version
    190 );
    191 
    245 NvMediaIJPE *
    247  //NvMediaSurfaceType inputFormat,
    248  NvSciBufAttrList bufAttrList,
    249  uint8_t maxOutputBuffering,
    250  uint32_t maxBitstreamBytes,
    251  NvMediaJPEGInstanceId instanceId
    252 );
    253 
    295 NvMediaIJPE *
    297  uint8_t maxOutputBuffering,
    298  uint32_t maxBitstreamBytes,
    299  NvMediaJPEGInstanceId instanceId
    300 );
    301 
    325 void NvMediaIJPEDestroy(NvMediaIJPE *encoder);
    326 
    380  const NvMediaIJPE *encoder,
    381  NvSciBufObj bufObj,
    382  uint8_t quality,
    383  NvMediaJPEGInstanceId instanceId
    384 );
    385 
    441  const NvMediaIJPE *encoder,
    442  NvSciBufObj bufObj,
    443  uint8_t *lumaQuant,
    444  uint8_t *chromaQuant,
    445  NvMediaJPEGInstanceId instanceId
    446 );
    447 
    507  const NvMediaIJPE *encoder,
    508  NvSciBufObj bufObj,
    509  uint8_t *lumaQuant,
    510  uint8_t *chromaQuant,
    511  uint32_t targetImageSize,
    512  NvMediaJPEGInstanceId instanceId
    513 );
    514 
    549  const NvMediaIJPE *encoder,
    550  uint32_t attributeMask,
    551  const void *attributes
    552 );
    553 
    605  const NvMediaIJPE *encoder,
    606  uint32_t *numBytes,
    607  void *buffer,
    608  uint32_t flags
    609 );
    610 
    668  const NvMediaIJPE *encoder,
    669  uint32_t *numBytesAvailable,
    670  NvMediaBlockingType blockingType,
    671  uint32_t millisecondTimeout
    672 );
    673 
    730  const NvMediaIJPE *encoder,
    731  NvSciBufObj bufObj
    732 );
    733 
    788 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
    791  const NvMediaIJPE *encoder,
    792  NvSciBufObj bufObj
    793 );
    794 
    795 
    843  NvMediaJPEGInstanceId instanceId,
    844  NvSciBufAttrList attrlist
    845 );
    846 
    903  const NvMediaIJPE *encoder,
    904  NvSciSyncAttrList attrlist,
    905  NvMediaNvSciSyncClientType clienttype
    906 );
    907 
    908 
    964  const NvMediaIJPE *encoder,
    965  NvMediaNvSciSyncObjType syncobjtype,
    966  NvSciSyncObj nvscisync
    967 );
    968 
    1030  const NvMediaIJPE *encoder,
    1031  NvSciSyncObj nvscisync
    1032 );
    1033 
    1080  const NvMediaIJPE *encoder,
    1081  NvSciSyncObj nvscisyncEOF
    1082 );
    1083 
    1144  const NvMediaIJPE *encoder,
    1145  const NvSciSyncFence *prenvscisyncfence
    1146 );
    1147 
    1207  const NvMediaIJPE *encoder,
    1208  NvSciSyncObj eofnvscisyncobj,
    1209  NvSciSyncFence *eofnvscisyncfence
    1210 );
    1211 
    1212 /*
    1213  * @defgroup 6x_history_nvmedia_iipe History
    1214  * Provides change history for the NvMedia IJPE API.
    1215  *
    1216  * \section 6x_history_nvmedia_ijpe Version History
    1217  *
    1218  * <b> Version 1.0 </b> September 28, 2021
    1219  * - Initial release
    1220  *
    1221  * <b> Version 2.0 </b> March 31, 2023
    1222  * - Deprecate NvMediaIJPEGetBitsEx() API
    1223  *
    1224  */
    1225 
    1228 #ifdef __cplusplus
    1229 } /* extern "C" */
    1230 #endif
    1231 
    1232 #endif /* NVMEDIA_IJPE_H */
    NvMediaIJPERegisterNvSciSyncObj
    NvMediaStatus NvMediaIJPERegisterNvSciSyncObj(const NvMediaIJPE *encoder, NvMediaNvSciSyncObjType syncobjtype, NvSciSyncObj nvscisync)
    Registers an NvSciSyncObj with NvMediaIJPE.
    NvMediaIJPESetNvSciSyncObjforEOF
    NvMediaStatus NvMediaIJPESetNvSciSyncObjforEOF(const NvMediaIJPE *encoder, NvSciSyncObj nvscisyncEOF)
    Specifies the NvSciSyncObj to be used for an EOF NvSciSyncFence.
    nvmedia_common_encode_decode.h
    NVIDIA Media Interface: Common Types for Encode and Decode
    NvMediaIJPEUnregisterNvSciBufObj
    NvMediaStatus NvMediaIJPEUnregisterNvSciBufObj(const NvMediaIJPE *encoder, NvSciBufObj bufObj)
    Un-registers NvSciBufObj which was previously registered with NvMediaIJPE using NvMediaIJPERegisterNv...
    NvMediaIJPEFeedFrameRateControl
    NvMediaStatus NvMediaIJPEFeedFrameRateControl(const NvMediaIJPE *encoder, NvSciBufObj bufObj, uint8_t *lumaQuant, uint8_t *chromaQuant, uint32_t targetImageSize, NvMediaJPEGInstanceId instanceId)
    Encodes the specified bufObj with input Luma and Chroma quant tables and targetImageSize.
    NvMediaIJPECreateEx
    NvMediaIJPE * NvMediaIJPECreateEx(uint8_t maxOutputBuffering, uint32_t maxBitstreamBytes, NvMediaJPEGInstanceId instanceId)
    Creates a JPEG encoder object capable of turning a stream of surfaces of the inputFormat into a JPEG ...
    NvMediaBlockingType
    NvMediaBlockingType
    Blocking type.
    Definition: nvmedia_common_encode.h:201
    NvMediaIJPEFillNvSciSyncAttrList
    NvMediaStatus NvMediaIJPEFillNvSciSyncAttrList(const NvMediaIJPE *encoder, NvSciSyncAttrList attrlist, NvMediaNvSciSyncClientType clienttype)
    Fills the NvMediaIJPE specific NvSciSync attributes.
    NvMediaIJPERegisterNvSciBufObj
    NvMediaStatus NvMediaIJPERegisterNvSciBufObj(const NvMediaIJPE *encoder, NvSciBufObj bufObj)
    Registers NvSciBufObj for use with a NvMediaIJPE handle.
    NvMediaIJPEGetVersion
    NvMediaStatus NvMediaIJPEGetVersion(NvMediaVersion *version)
    Retrieves the version information for the NvMedia IJPE library.
    NvMediaStatus
    NvMediaStatus
    Defines all possible error codes.
    Definition: nvmedia_core.h:104
    NvMediaJPEncAttributes::quality
    uint8_t quality
    A value clamped to between 1 and 100, set to generate luma/chroma Quant tables.
    Definition: nvmedia_ijpe.h:114
    NvMediaNvSciSyncObjType
    NvMediaNvSciSyncObjType
    Defines NvMedia NvSciSyncObj types.
    Definition: nvmedia_core.h:202
    NvMediaNvSciSyncClientType
    NvMediaNvSciSyncClientType
    NvMedia NvSciSync Client Type.
    Definition: nvmedia_core.h:189
    NvMediaJPEncAttributes::restartInterval
    uint32_t restartInterval
    A value to specify restart interval, initialized to 0 at NvMediaIJPE creation.
    Definition: nvmedia_ijpe.h:118
    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
    NvMediaJPEncAttributes::chromaDC
    NvMediaJPHuffmanTableSpecfication * chromaDC
    A Huffmann table for Chroma DC sample, initialized to NULL for using default table in JPEG specificat...
    Definition: nvmedia_ijpe.h:148
    nvscisync.h
    NVIDIA Software Communications Interface (SCI) : NvSciSync
    NvMediaIJPESetAttributes
    NvMediaStatus NvMediaIJPESetAttributes(const NvMediaIJPE *encoder, uint32_t attributeMask, const void *attributes)
    Sets the JPEG encoder attributes.
    NvMediaIJPEUnregisterNvSciSyncObj
    NvMediaStatus NvMediaIJPEUnregisterNvSciSyncObj(const NvMediaIJPE *encoder, NvSciSyncObj nvscisync)
    Unregisters an NvSciSyncObj with NvMediaIJPE.
    NvMediaVersion
    Holds NvMedia version information.
    Definition: nvmedia_core.h:164
    NvMediaIJPEInsertPreNvSciSyncFence
    NvMediaStatus NvMediaIJPEInsertPreNvSciSyncFence(const NvMediaIJPE *encoder, const NvSciSyncFence *prenvscisyncfence)
    Sets an NvSciSyncFence as a prefence for an NvMediaIJPEFeedFrame() NvSciSyncFence operation.
    NvMediaJPEGInstanceId
    NvMediaJPEGInstanceId
    Specifies NVJPG HW instance ID.
    Definition: nvmedia_common_encode_decode.h:42
    NvMediaIJPEGetEOFNvSciSyncFence
    NvMediaStatus NvMediaIJPEGetEOFNvSciSyncFence(const NvMediaIJPE *encoder, NvSciSyncObj eofnvscisyncobj, NvSciSyncFence *eofnvscisyncfence)
    Gets EOF NvSciSyncFence for an NvMediaIJPEFeedFrame() operation.
    NvMediaIJPEFeedFrameQuant
    NvMediaStatus NvMediaIJPEFeedFrameQuant(const NvMediaIJPE *encoder, NvSciBufObj bufObj, uint8_t *lumaQuant, uint8_t *chromaQuant, NvMediaJPEGInstanceId instanceId)
    Encodes the specified bufObj with input Luma and Chroma quant tables.
    nvmedia_core.h
    NVIDIA Media Interface: Core
    NvMediaIJPECreate
    NvMediaIJPE * NvMediaIJPECreate(NvSciBufAttrList bufAttrList, uint8_t maxOutputBuffering, uint32_t maxBitstreamBytes, NvMediaJPEGInstanceId instanceId)
    Creates a JPEG encoder object capable of turning a stream of surfaces of the inputFormat into a JPEG ...
    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
    NvMediaIJPE
    struct NvMediaIJPE NvMediaIJPE
    An opaque NvMediaIJPE object created by NvMediaIJPECreate.
    Definition: nvmedia_ijpe.h:160
    nvscibuf.h
    NVIDIA Software Communications Interface (SCI) : NvSciBuf
    NvMediaJPEncAttributes::targetImageSize
    uint32_t targetImageSize
    A value to specify target encode size, initialized to 0xffffffff at NvMediaIJPE creation.
    Definition: nvmedia_ijpe.h:122
    NvMediaJPHuffmanTableSpecfication
    image JPEG encoder HuffmanTable.
    Definition: nvmedia_ijpe.h:100
    NvMediaIJPEFillNvSciBufAttrList
    NvMediaStatus NvMediaIJPEFillNvSciBufAttrList(NvMediaJPEGInstanceId instanceId, NvSciBufAttrList attrlist)
    Fills the NvMediaIJPE specific NvSciBuf attributes which than then be used to allocate an NvSciBufObj...
    NvMediaJPHuffmanTableSpecfication::values
    uint8_t * values
    Definition: nvmedia_ijpe.h:102
    NvMediaJPEncAttributes
    image JPEG encoder attributes.
    Definition: nvmedia_ijpe.h:108
    NvMediaIJPEDestroy
    void NvMediaIJPEDestroy(NvMediaIJPE *encoder)
    Destroys an NvMedia image JPEG encoder.
    NvMediaJPEncAttributes::chromaAC
    NvMediaJPHuffmanTableSpecfication * chromaAC
    A Huffmann table for Chroma AC sample, initialized to NULL for using default table in JPEG specificat...
    Definition: nvmedia_ijpe.h:154
    NvMediaIJPEFeedFrame
    NvMediaStatus NvMediaIJPEFeedFrame(const NvMediaIJPE *encoder, NvSciBufObj bufObj, uint8_t quality, NvMediaJPEGInstanceId instanceId)
    Encodes the specified bufObj with input quality.
    NvMediaJPEncAttributes::lumaAC
    NvMediaJPHuffmanTableSpecfication * lumaAC
    A Huffmann table for Luma AC sample, initialized to NULL for using default table in JPEG specificatio...
    Definition: nvmedia_ijpe.h:142
    nvmedia_common_encode.h
    NVIDIA Media Interface: Common Types for Encoding
    NvSciSyncObj
    struct NvSciSyncObjRec * NvSciSyncObj
    A Synchronization Object is a container holding the reconciled NvSciSyncAttrList defining constraints...
    Definition: nvscisync.h:311
    NvMediaIJPEGetBits
    NvMediaStatus NvMediaIJPEGetBits(const NvMediaIJPE *encoder, uint32_t *numBytes, void *buffer, uint32_t flags)
    Returns a frame's worth of bitstream into the provided buffer.
    NvMediaJPEncAttributes::lumaDC
    NvMediaJPHuffmanTableSpecfication * lumaDC
    A Huffmann table for Luma DC sample, initialized to NULL for using default table in JPEG specificatio...
    Definition: nvmedia_ijpe.h:136
    NvMediaIJPEBitsAvailable
    NvMediaStatus NvMediaIJPEBitsAvailable(const NvMediaIJPE *encoder, uint32_t *numBytesAvailable, NvMediaBlockingType blockingType, uint32_t millisecondTimeout)
    Returns the encode status and number of bytes available for the next frame (if any).
    人人超碰97caoporen国产