NVIDIA DRIVE OS Linux SDK API Reference

6.0.9 Release
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.