NVIDIA DRIVE OS Linux SDK API Reference

5.1.15.2 Release
For Test and Development only
nvmedia_iep.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014-2020, NVIDIA CORPORATION. All rights reserved. All
3  * information contained herein is proprietary and confidential to NVIDIA
4  * Corporation. Any use, reproduction, or disclosure without the written
5  * permission of NVIDIA Corporation is prohibited.
6  */
7 
15 #ifndef NVMEDIA_IEP_H
16 #define NVMEDIA_IEP_H
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22 #include "nvmedia_common_encode.h"
23 #include "nvmedia_core.h"
24 #include "nvmedia_image.h"
25 #include "nvmedia_surface.h"
26 
38 #define NVMEDIA_IEP_VERSION_MAJOR 2
39 
40 #define NVMEDIA_IEP_VERSION_MINOR 12
41 
45 typedef enum {
55 
59 typedef struct NvMediaIEPRec {
67  struct NvMediaIEPPriv_ *encPriv;
68 } NvMediaIEP;
69 
79 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
82  NvMediaVersion *version
83 );
84 
127 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
128 NvMediaIEP *
130  const NvMediaDevice *device,
131  NvMediaIEPType encodeType,
132  const void *initParams,
133  NvMediaSurfaceType inputFormat,
134  uint8_t maxInputBuffering,
135  uint8_t maxOutputBuffering,
136  NvMediaEncoderInstanceId instanceId
137 );
138 
144 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
145 void NvMediaIEPDestroy(const NvMediaIEP *encoder);
146 
198 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
201  const NvMediaIEP *encoder,
202  const NvMediaImage *frame,
203  NvMediaRect *sourceRect,
204  const void *picParams,
205  NvMediaEncoderInstanceId instanceId
206 );
207 
224 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
227  const NvMediaIEP *encoder,
228  const void *configuration
229 );
230 
278 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
281  const NvMediaIEP *encoder,
282  uint32_t *numBytes,
283  uint32_t numBitstreamBuffers,
284  const NvMediaBitstreamBuffer *bitstreams,
285  void *extradata
286 );
287 
330 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
333  const NvMediaIEP *encoder,
334  uint32_t *numBytesAvailable,
335  NvMediaBlockingType blockingType,
336  uint32_t millisecondTimeout
337 );
338 
339 
359 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
362  const NvMediaIEP *encoder,
363  NvMediaEncAttrType attrType,
364  uint32_t attrSize,
365  void *AttributeData
366 );
367 
400  const NvMediaIEP *encoder,
401  const NvMediaImage *image,
402  NvMediaAccessMode accessMode
403 );
404 
441 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
444  const NvMediaIEP *encoder,
445  const NvMediaImage *image
446 );
447 
448 /*
449  * \defgroup history_nvmedia_iep History
450  * Provides change history for the NvMedia IEP API.
451  *
452  * \section history_nvmedia_iep Version History
453  *
454  * <b> Version 1.0 </b> March 14, 2016
455  * - Initial release
456  *
457  * <b> Version 1.1 </b> May 11, 2016
458  * - Added \ref NvMediaICPCheckVersion API
459  *
460  * <b> Version 1.2 </b> May 5, 2017
461  * - Added \ref NvMediaIEPGetBitsEx and \ref NvMediaIEPSetInputExtraData API
462  * - Added \ref NvMediaIEPGetAttribute
463  *
464  * <b> Version 2.0 </b> May 9, 2017
465  * - Added instance ID parameter to NvMediaIEPCreate() and NvMediaIEPFeedFrame()
466  * - optionalDevice parameter is removed from NvMediaIEPCreate()
467  * - NvMediaIEPGetVersion() is added to get the version of NvMedia Image Encoder library
468  * - NvMediaIEPGetBits() is deprecated. Use NvMediaIEPGetBitsEx() instead.
469  * - All NvMedia data types are moved to standard data types
470  *
471  * <b> Version 2.1 </b> June 30, 2017
472  * - Removed \ref NvMediaIEPSetInputExtraData API
473  *
474  * <b> Version 2.2 </b> Sept 1, 2017
475  * - Added NVMEDIA_IMAGE_ENCODE_VP8 in \ref NvMediaIEPType enum
476  *
477  * <b> Version 2.3 </b> Dec 14, 2018
478  * - Fix MISRA violations 21.1 and 21.2
479  *
480  * <b> Version 2.4 </b> January 15, 2019
481  * - Fix MISRA violations 8.13
482  *
483  * <b> Version 2.5 </b> Feb 7, 2019
484  * - Added opaque handle for encoder
485  * internal usage into Image encoder object
486  * - Fix MISRA violations 11.3
487  * - Fix MISRA violations 8.13
488  *
489  * <b> Version 2.6 </b> Feb 28, 2019
490  * - Added required header includes nvmedia_core.h and nvmedia_surface.h
491  *
492  * <b> Version 2.7 </b> July 10, 2019
493  * - Header include nvmedia_common.h is replaced with nvmedia_common_encode.h
494  *
495  * <b> Version 2.8 </b> July 13, 2019
496  * - Corrected parameter description for \ref NvMediaIEPCreate and
497  * \ref NvMediaIEPFeedFrame.
498  *
499  * <b> Version 2.9 </b> July 15, 2019
500  * - Fix MISRA violations 8.13
501  *
502  * <b> Version 2.10 </b> Jul 16, 2019
503  * - Added \ref NvMediaIEPImageRegister API
504  * - Added \ref NvMediaIEPImageUnRegister API
505  *
506  * <b> Version 2.11 </b> October 5, 2019
507  * - Fix MISRA violations 8.13
508  * - Added Coverity Code annotations to suppress partial 8.7 violations
509  *
510  * <b> Version 2.12 </b> November 25, 2019
511  * - Fix MISRA violations 8.13
512  */
513 
516 #ifdef __cplusplus
517 }; /* extern "C" */
518 #endif
519 
520 #endif /* NVMEDIA_IEP_H */
NvMediaIEPImageUnRegister
NvMediaStatus NvMediaIEPImageUnRegister(const NvMediaIEP *encoder, const NvMediaImage *image)
Un-registers NvMediaImage which is registered with NvMediaIEP.
nvmedia_surface.h
NVIDIA Media Interface: Surface Handling
NvMediaIEPRec::instanceId
NvMediaEncoderInstanceId instanceId
Instance ID.
Definition: nvmedia_iep.h:65
NvMediaIEPCreate
NvMediaIEP * NvMediaIEPCreate(const NvMediaDevice *device, NvMediaIEPType encodeType, const void *initParams, NvMediaSurfaceType inputFormat, uint8_t maxInputBuffering, uint8_t maxOutputBuffering, NvMediaEncoderInstanceId instanceId)
Create an NvMediaIEP object instance.
NvMediaEncAttrType
NvMediaEncAttrType
Specifies the Video encoder get attribute type.
Definition: nvmedia_common_encode.h:445
NVMEDIA_IMAGE_ENCODE_HEVC
@ NVMEDIA_IMAGE_ENCODE_HEVC
HEVC codec.
Definition: nvmedia_iep.h:49
NvMediaIEPGetBitsEx
NvMediaStatus NvMediaIEPGetBitsEx(const NvMediaIEP *encoder, uint32_t *numBytes, uint32_t numBitstreamBuffers, const NvMediaBitstreamBuffer *bitstreams, void *extradata)
Returns the bitstream for a slice or frame.
NvMediaIEPRec
Holds the image encoder object created by NvMediaIEPCreate.
Definition: nvmedia_iep.h:59
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...
NvMediaBlockingType
NvMediaBlockingType
Blocking type.
Definition: nvmedia_common_encode.h:168
NvMediaIEPFeedFrame
NvMediaStatus NvMediaIEPFeedFrame(const NvMediaIEP *encoder, const NvMediaImage *frame, NvMediaRect *sourceRect, const void *picParams, NvMediaEncoderInstanceId instanceId)
Submits the specified frame for encoding.
NvMediaDevice
struct NvMediaDevice NvMediaDevice
An opaque handle representing an NvMediaDevice object.
Definition: nvmedia_core.h:348
NvMediaIEPRec::encodeType
NvMediaIEPType encodeType
Codec type.
Definition: nvmedia_iep.h:61
NvMediaIEPSetConfiguration
NvMediaStatus NvMediaIEPSetConfiguration(const NvMediaIEP *encoder, const void *configuration)
Sets the encoder configuration.
NvMediaVersion
Holds NvMedia version information.
Definition: nvmedia_core.h:237
NVMEDIA_IMAGE_ENCODE_VP9
@ NVMEDIA_IMAGE_ENCODE_VP9
VP9 codec.
Definition: nvmedia_iep.h:51
NvMediaImageRec
Holds a handle representing image objects.
Definition: nvmedia_image.h:71
NvMediaIEPGetAttribute
NvMediaStatus NvMediaIEPGetAttribute(const NvMediaIEP *encoder, NvMediaEncAttrType attrType, uint32_t attrSize, void *AttributeData)
Gets the encoder attribute for the current encoding session.
NvMediaIEP
struct NvMediaIEPRec NvMediaIEP
Holds the image encoder object created by NvMediaIEPCreate.
NVMEDIA_IMAGE_ENCODE_VP8
@ NVMEDIA_IMAGE_ENCODE_VP8
VP8 codec.
Definition: nvmedia_iep.h:53
NvMediaRect
Holds a rectangular region of a surface.
Definition: nvmedia_core.h:133
nvmedia_core.h
NVIDIA Media Interface: Core
NvMediaSurfaceType
#define NvMediaSurfaceType
Defines the set of NvMedia surface types.
Definition: nvmedia_surface.h:550
NvMediaIEPRec::inputFormat
NvMediaSurfaceType inputFormat
Input Image surface type.
Definition: nvmedia_iep.h:63
NvMediaAccessMode
NvMediaAccessMode
Definition: nvmedia_core.h:299
NvMediaStatus
NvMediaStatus
Defines all possible error codes.
Definition: nvmedia_core.h:180
NvMediaBitstreamBuffer
Holds an application data buffer containing compressed video data.
Definition: nvmedia_common_encode_decode.h:73
NvMediaIEPRec::encPriv
struct NvMediaIEPPriv_ * encPriv
An Opaque pointer for internal use.
Definition: nvmedia_iep.h:67
NvMediaIEPDestroy
void NvMediaIEPDestroy(const NvMediaIEP *encoder)
Destroys an NvMedia image encoder.
NvMediaIEPGetVersion
NvMediaStatus NvMediaIEPGetVersion(NvMediaVersion *version)
Checks the version compatibility for the NvMedia IEP library.
NVMEDIA_IMAGE_ENCODE_H264
@ NVMEDIA_IMAGE_ENCODE_H264
H.264 encode.
Definition: nvmedia_iep.h:47
NvMediaEncoderInstanceId
NvMediaEncoderInstanceId
Specifies the encoder instance ID.
Definition: nvmedia_common_encode_ofst.h:36
NvMediaIEPImageRegister
NvMediaStatus NvMediaIEPImageRegister(const NvMediaIEP *encoder, const NvMediaImage *image, NvMediaAccessMode accessMode)
Registers NvMediaImage for use with a NvMediaIEP handle.
nvmedia_common_encode.h
NVIDIA Media Interface: Common Types for Video/Image Encode
nvmedia_image.h
NVIDIA Media Interface: Image Processing
NvMediaIEPType
NvMediaIEPType
Image encode type.
Definition: nvmedia_iep.h:45