NVIDIA DRIVE OS Linux SDK API Reference

6.0.5 Release
nvmedia_ijpd.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 
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 
776  NvMediaJPEGInstanceId instanceId,
777  NvSciBufAttrList attrlist
778 );
779 
829  const NvMediaIJPD *decoder,
830  NvSciSyncAttrList attrlist,
831  NvMediaNvSciSyncClientType clienttype
832 );
833 
889  const NvMediaIJPD *decoder,
890  NvMediaNvSciSyncObjType syncobjtype,
891  NvSciSyncObj nvscisync
892 );
893 
955  const NvMediaIJPD *decoder,
956  NvSciSyncObj nvscisync
957 );
958 
1005  const NvMediaIJPD *decoder,
1006  NvSciSyncObj nvscisyncEOF
1007 );
1008 
1069  const NvMediaIJPD *decoder,
1070  const NvSciSyncFence *prenvscisyncfence
1071 );
1072 
1132  const NvMediaIJPD *decoder,
1133  NvSciSyncObj eofnvscisyncobj,
1134  NvSciSyncFence *eofnvscisyncfence
1135 );
1136 
1182  const NvMediaIJPD *decoder,
1183  NvSciSyncObj nvscisyncSOF
1184 );
1185 
1235  const NvMediaIJPD *decoder,
1236  NvSciSyncObj sofnvscisyncobj,
1237  NvSciSyncFence *sofnvscisyncfence
1238 );
1239 
1240 
1241 /*
1242  * @defgroup 6x_history_nvmedia_ijpd History
1243  * Provides change history for the NvMedia Image Jpeg Decode API.
1244  *
1245  * \section 6x_history_nvmedia_ijpd Version History
1246  *
1247  * <b> Version 1.0 </b> September 28, 2021
1248  * - Initial release
1249  */
1250 
1253 #ifdef __cplusplus
1254 } /* extern "C" */
1255 #endif
1256 
1257 #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:314
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:2717
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
NvMediaIJPDGetSOFNvSciSyncFence
NvMediaStatus NvMediaIJPDGetSOFNvSciSyncFence(const NvMediaIJPD *decoder, NvSciSyncObj sofnvscisyncobj, NvSciSyncFence *sofnvscisyncfence)
Gets SOF NvSciSyncFence for an NvMediaIJPDRender() operation.
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:2735
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.
NvMediaIJPDSetNvSciSyncObjforSOF
NvMediaStatus NvMediaIJPDSetNvSciSyncObjforSOF(const NvMediaIJPD *decoder, NvSciSyncObj nvscisyncSOF)
Specifies the NvSciSyncObj to be used for an SOF NvSciSyncFence.
NvSciSyncFence
Defines the opaque NvSciSyncFence.
Definition: nvscisync.h:240
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:295
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.