• <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_ijpd.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_IJPD_H
    22 #define NVMEDIA_IJPD_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 
    45 #define NVMEDIA_IJPD_VERSION_MAJOR 1
    46 
    47 #define NVMEDIA_IJPD_VERSION_MINOR 0
    48 
    49 #define NVMEDIA_IJPD_VERSION_PATCH 0
    50 
    55 #define NVMEDIA_IJPD_MAX_PRENVSCISYNCFENCES (16U)
    56 
    61 #define NVMEDIA_JPEG_DEC_ATTRIBUTE_ALPHA_VALUE (1 << 0)
    62 
    66 #define NVMEDIA_JPEG_DEC_ATTRIBUTE_COLOR_STANDARD (1 << 1)
    67 
    71 #define NVMEDIA_IJPD_RENDER_FLAG_ROTATE_0 0
    72 
    76 #define NVMEDIA_IJPD_RENDER_FLAG_ROTATE_90 1
    77 
    81 #define NVMEDIA_IJPD_RENDER_FLAG_ROTATE_180 2
    82 
    86 #define NVMEDIA_IJPD_RENDER_FLAG_ROTATE_270 3
    87 
    91 #define NVMEDIA_IJPD_RENDER_FLAG_FLIP_HORIZONTAL (1 << 2)
    92 
    96 #define NVMEDIA_IJPD_RENDER_FLAG_FLIP_VERTICAL (1 << 3)
    97 
    101 #define NVMEDIA_MAX_JPEG_APP_MARKERS 16
    102 
    105 typedef enum {
    119 
    123 typedef struct {
    128 
    132  uint32_t alphaValue;
    134 
    138 typedef struct {
    141  uint16_t marker;
    144  uint16_t len;
    147  void *pMarker;
    149 
    153 typedef struct {
    156  uint16_t width;
    159  uint16_t height;
    162  uint8_t partialAccel;
    170 
    174 typedef struct NvMediaIJPD NvMediaIJPD;
    175 
    205  NvMediaVersion *version
    206 );
    207 
    246 NvMediaIJPD *
    248  uint16_t maxWidth,
    249  uint16_t maxHeight,
    250  uint32_t maxBitstreamBytes,
    251  bool supportPartialAccel,
    252  NvMediaJPEGInstanceId instanceId
    253 );
    254 
    278 void NvMediaIJPDDestroy(NvMediaIJPD *decoder);
    279 
    312  NvMediaIJPD *decoder,
    313  uint16_t maxWidth,
    314  uint16_t maxHeight,
    315  uint32_t maxBitstreamBytes
    316 );
    317 
    354  const NvMediaIJPD *decoder,
    355  uint32_t attributeMask,
    356  const void *attributes
    357 );
    358 
    401  NVMEDIAJPEGDecInfo *info,
    402  uint32_t numBitstreamBuffers,
    403  const NvMediaBitstreamBuffer *bitstreams
    404 );
    405 
    528  const NvMediaIJPD *decoder,
    529  NvSciBufObj target,
    530  const NvMediaRect *srcRect,
    531  const NvMediaRect *dstRect,
    532  uint8_t downscaleLog2,
    533  uint32_t numBitstreamBuffers,
    534  const NvMediaBitstreamBuffer *bitstreams,
    535  uint32_t flags,
    536  NvMediaJPEGInstanceId instanceId
    537 );
    538 
    613  const NvMediaIJPD *decoder,
    614  NvSciBufObj target,
    615  uint8_t downscaleLog2,
    616  uint32_t numBitstreamBuffers,
    617  const NvMediaBitstreamBuffer *bitstreams,
    618  uint32_t flags,
    619  NvMediaJPEGInstanceId instanceId
    620 );
    621 
    675  const NvMediaIJPD *decoder,
    676  NvSciBufObj bufObj
    677 );
    678 
    729 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
    732  const NvMediaIJPD *decoder,
    733  NvSciBufObj bufObj
    734 );
    735 
    782  NvMediaJPEGInstanceId instanceId,
    783  NvSciBufAttrList attrlist
    784 );
    785 
    842  const NvMediaIJPD *decoder,
    843  NvSciSyncAttrList attrlist,
    844  NvMediaNvSciSyncClientType clienttype
    845 );
    846 
    902  const NvMediaIJPD *decoder,
    903  NvMediaNvSciSyncObjType syncobjtype,
    904  NvSciSyncObj nvscisync
    905 );
    906 
    968  const NvMediaIJPD *decoder,
    969  NvSciSyncObj nvscisync
    970 );
    971 
    1018  const NvMediaIJPD *decoder,
    1019  NvSciSyncObj nvscisyncEOF
    1020 );
    1021 
    1082  const NvMediaIJPD *decoder,
    1083  const NvSciSyncFence *prenvscisyncfence
    1084 );
    1085 
    1145  const NvMediaIJPD *decoder,
    1146  NvSciSyncObj eofnvscisyncobj,
    1147  NvSciSyncFence *eofnvscisyncfence
    1148 );
    1149 
    1150 
    1151 /*
    1152  * @defgroup 6x_history_nvmedia_ijpd History
    1153  * Provides change history for the NvMedia Image Jpeg Decode API.
    1154  *
    1155  * \section 6x_history_nvmedia_ijpd Version History
    1156  *
    1157  * <b> Version 1.0 </b> September 28, 2021
    1158  * - Initial release
    1159  */
    1160 
    1163 #ifdef __cplusplus
    1164 } /* extern "C" */
    1165 #endif
    1166 
    1167 #endif /* NVMEDIA_IJPD_H */
    NVMEDIAJPEGDecAttributes
    Holds image JPEG decoder attributes.
    Definition: nvmedia_ijpd.h:123
    NVMEDIAJPEGDecAttributes::alphaValue
    uint32_t alphaValue
    Specifies the alpha value.
    Definition: nvmedia_ijpd.h:132
    NvMediaIJPDUnregisterNvSciSyncObj
    NvMediaStatus NvMediaIJPDUnregisterNvSciSyncObj(const NvMediaIJPD *decoder, NvSciSyncObj nvscisync)
    Unregisters an NvSciSyncObj with NvMediaIJPD.
    NvMediaIJPDColorStandard
    NvMediaIJPDColorStandard
    Defines color standards.
    Definition: nvmedia_ijpd.h:105
    NVMEDIA_IJPD_COLOR_STANDARD_ITUR_BT_601
    @ NVMEDIA_IJPD_COLOR_STANDARD_ITUR_BT_601
    Specifies ITU BT.601 color standard.
    Definition: nvmedia_ijpd.h:107
    nvmedia_common_encode_decode.h
    NVIDIA Media Interface: Common Types for Encode and Decode
    NVMEDIAJPEGDecInfo
    Holds image JPEG decoder stream information.
    Definition: nvmedia_ijpd.h:153
    NVMEDIA_IJPD_COLOR_STANDARD_ITUR_BT_709
    @ NVMEDIA_IJPD_COLOR_STANDARD_ITUR_BT_709
    Specifies ITU BT.709 color standard.
    Definition: nvmedia_ijpd.h:109
    NvMediaIJPDRegisterNvSciBufObj
    NvMediaStatus NvMediaIJPDRegisterNvSciBufObj(const NvMediaIJPD *decoder, NvSciBufObj bufObj)
    Registers NvSciBufObj for use with a NvMediaIJPD handle.
    NvMediaIJPDGetVersion
    NvMediaStatus NvMediaIJPDGetVersion(NvMediaVersion *version)
    Retrieves the version information for the NvMedia IJPD library.
    NVMEDIAJPEGDecInfo::height
    uint16_t height
    Specifies the stream-encoded height, in pixels.
    Definition: nvmedia_ijpd.h:159
    NvMediaIJPDUnregisterNvSciBufObj
    NvMediaStatus NvMediaIJPDUnregisterNvSciBufObj(const NvMediaIJPD *decoder, NvSciBufObj bufObj)
    Un-registers NvSciBufObj which was previously registered with NvMediaIJPD using NvMediaIJPDRegisterNv...
    NvMediaStatus
    NvMediaStatus
    Defines all possible error codes.
    Definition: nvmedia_core.h:104
    NvMediaIJPDFillNvSciSyncAttrList
    NvMediaStatus NvMediaIJPDFillNvSciSyncAttrList(const NvMediaIJPD *decoder, NvSciSyncAttrList attrlist, NvMediaNvSciSyncClientType clienttype)
    Fills the NvMediaIJPD specific NvSciSync attributes.
    NvMediaNvSciSyncObjType
    NvMediaNvSciSyncObjType
    Defines NvMedia NvSciSyncObj types.
    Definition: nvmedia_core.h:202
    NvMediaJPEGAppMarkerInfo::marker
    uint16_t marker
    Specifies the App info marker.
    Definition: nvmedia_ijpd.h:141
    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
    NvMediaIJPDInsertPreNvSciSyncFence
    NvMediaStatus NvMediaIJPDInsertPreNvSciSyncFence(const NvMediaIJPD *decoder, const NvSciSyncFence *prenvscisyncfence)
    Sets an NvSciSyncFence as a prefence for an NvMediaIJPDRender() NvSciSyncFence operation.
    NvSciBufObj
    struct NvSciBufObjRefRec * NvSciBufObj
    A memory object is a container holding the reconciled NvSciBufAttrList defining constraints of the bu...
    Definition: nvscibuf.h:3108
    NvMediaJPEGAppMarkerInfo::pMarker
    void * pMarker
    Specifies the App info marker data.
    Definition: nvmedia_ijpd.h:147
    NvMediaIJPDSetAttributes
    NvMediaStatus NvMediaIJPDSetAttributes(const NvMediaIJPD *decoder, uint32_t attributeMask, const void *attributes)
    Sets attributes of an existing image JPEG decoder.
    nvscisync.h
    NVIDIA Software Communications Interface (SCI) : NvSciSync
    NvMediaVersion
    Holds NvMedia version information.
    Definition: nvmedia_core.h:164
    NvMediaJPEGInstanceId
    NvMediaJPEGInstanceId
    Specifies NVJPG HW instance ID.
    Definition: nvmedia_common_encode_decode.h:42
    NvMediaIJPDRenderYUV
    NvMediaStatus NvMediaIJPDRenderYUV(const NvMediaIJPD *decoder, NvSciBufObj target, uint8_t downscaleLog2, uint32_t numBitstreamBuffers, const NvMediaBitstreamBuffer *bitstreams, uint32_t flags, NvMediaJPEGInstanceId instanceId)
    Decodes a JPEG image into YUV format.
    NVMEDIA_IJPD_COLOR_STANDARD_ITUR_BT_709_ER
    @ NVMEDIA_IJPD_COLOR_STANDARD_ITUR_BT_709_ER
    Specifies ITU BT.709 color standard extended range.
    Definition: nvmedia_ijpd.h:117
    NvMediaRect
    Holds a rectangular region of a surface.
    Definition: nvmedia_core.h:89
    NVMEDIA_MAX_JPEG_APP_MARKERS
    #define NVMEDIA_MAX_JPEG_APP_MARKERS
    JPEG decode max number of app markers supported.
    Definition: nvmedia_ijpd.h:101
    nvmedia_core.h
    NVIDIA Media Interface: Core
    NvMediaIJPDResize
    NvMediaStatus NvMediaIJPDResize(NvMediaIJPD *decoder, uint16_t maxWidth, uint16_t maxHeight, uint32_t maxBitstreamBytes)
    Resizes an existing image JPEG decoder.
    NvMediaIJPDCreate
    NvMediaIJPD * NvMediaIJPDCreate(uint16_t maxWidth, uint16_t maxHeight, uint32_t maxBitstreamBytes, bool supportPartialAccel, NvMediaJPEGInstanceId instanceId)
    Creates a JPEG decoder object capable of decoding a JPEG stream into an image surface.
    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
    NvMediaIJPDFillNvSciBufAttrList
    NvMediaStatus NvMediaIJPDFillNvSciBufAttrList(NvMediaJPEGInstanceId instanceId, NvSciBufAttrList attrlist)
    Fills the NvMediaIJPD specific NvSciBuf attributes which than then be used to allocate an NvSciBufObj...
    NvMediaIJPDDestroy
    void NvMediaIJPDDestroy(NvMediaIJPD *decoder)
    Destroys an NvMedia image JPEG decoder.
    NvSciSyncFence
    Defines the opaque NvSciSyncFence.
    Definition: nvscisync.h:256
    NVMEDIA_IJPD_COLOR_STANDARD_SMPTE_240M
    @ NVMEDIA_IJPD_COLOR_STANDARD_SMPTE_240M
    Specifies SMTE 240M color standard.
    Definition: nvmedia_ijpd.h:111
    NVMEDIA_IJPD_COLOR_STANDARD_ITUR_BT_601_ER
    @ NVMEDIA_IJPD_COLOR_STANDARD_ITUR_BT_601_ER
    Specifies ITU BT.601 color standard extended range.
    Definition: nvmedia_ijpd.h:114
    nvscibuf.h
    NVIDIA Software Communications Interface (SCI) : NvSciBuf
    NVMEDIAJPEGDecInfo::width
    uint16_t width
    Specifies the stream-encoded width, in pixels.
    Definition: nvmedia_ijpd.h:156
    NVMEDIAJPEGDecInfo::num_app_markers
    uint8_t num_app_markers
    Specifies the number of App merkers in the stream.
    Definition: nvmedia_ijpd.h:165
    NVMEDIAJPEGDecAttributes::colorStandard
    NvMediaIJPDColorStandard colorStandard
    Specifies the color standard, defined in NvMediaIJPDColorStandard.
    Definition: nvmedia_ijpd.h:127
    NvMediaIJPD
    struct NvMediaIJPD NvMediaIJPD
    An opaque NvMediaIJPD object created by NvMediaIJPDCreate.
    Definition: nvmedia_ijpd.h:174
    NVMEDIAJPEGDecInfo::partialAccel
    uint8_t partialAccel
    Specifies whether partial acceleration is needed for the stream.
    Definition: nvmedia_ijpd.h:162
    NvMediaIJPDRegisterNvSciSyncObj
    NvMediaStatus NvMediaIJPDRegisterNvSciSyncObj(const NvMediaIJPD *decoder, NvMediaNvSciSyncObjType syncobjtype, NvSciSyncObj nvscisync)
    Registers an NvSciSyncObj with NvMediaIJPD.
    NvMediaJPEGAppMarkerInfo
    Holds image JPEG decoder marker Info.
    Definition: nvmedia_ijpd.h:138
    NvMediaIJPDGetInfo
    NvMediaStatus NvMediaIJPDGetInfo(NVMEDIAJPEGDecInfo *info, uint32_t numBitstreamBuffers, const NvMediaBitstreamBuffer *bitstreams)
    A helper function that determines whether the JPEG decoder HW engine can decode the input JPEG stream...
    NvMediaIJPDSetNvSciSyncObjforEOF
    NvMediaStatus NvMediaIJPDSetNvSciSyncObjforEOF(const NvMediaIJPD *decoder, NvSciSyncObj nvscisyncEOF)
    Specifies the NvSciSyncObj to be used for an EOF NvSciSyncFence.
    NvMediaJPEGAppMarkerInfo::len
    uint16_t len
    Specifies the App info marker length.
    Definition: nvmedia_ijpd.h:144
    NvSciSyncObj
    struct NvSciSyncObjRec * NvSciSyncObj
    A Synchronization Object is a container holding the reconciled NvSciSyncAttrList defining constraints...
    Definition: nvscisync.h:311
    NvMediaIJPDRender
    NvMediaStatus NvMediaIJPDRender(const NvMediaIJPD *decoder, NvSciBufObj target, const NvMediaRect *srcRect, const NvMediaRect *dstRect, uint8_t downscaleLog2, uint32_t numBitstreamBuffers, const NvMediaBitstreamBuffer *bitstreams, uint32_t flags, NvMediaJPEGInstanceId instanceId)
    Decodes a JPEG image.
    NvMediaIJPDGetEOFNvSciSyncFence
    NvMediaStatus NvMediaIJPDGetEOFNvSciSyncFence(const NvMediaIJPD *decoder, NvSciSyncObj eofnvscisyncobj, NvSciSyncFence *eofnvscisyncfence)
    Gets EOF NvSciSyncFence for an NvMediaIJPDRender() operation.
    人人超碰97caoporen国产