NVIDIA DRIVE OS Linux SDK API Reference

5.2.0 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 
86 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
89  NvMediaVersion *version
90 );
91 
141 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
142 NvMediaIEP *
144  const NvMediaDevice *device,
145  NvMediaIEPType encodeType,
146  const void *initParams,
147  NvMediaSurfaceType inputFormat,
148  uint8_t maxInputBuffering,
149  uint8_t maxOutputBuffering,
150  NvMediaEncoderInstanceId instanceId
151 );
152 
165 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
166 void NvMediaIEPDestroy(const NvMediaIEP *encoder);
167 
231 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
234  const NvMediaIEP *encoder,
235  const NvMediaImage *frame,
236  NvMediaRect *sourceRect,
237  const void *picParams,
238  NvMediaEncoderInstanceId instanceId
239 );
240 
263 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
266  const NvMediaIEP *encoder,
267  const void *configuration
268 );
269 
323 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
326  const NvMediaIEP *encoder,
327  uint32_t *numBytes,
328  uint32_t numBitstreamBuffers,
329  const NvMediaBitstreamBuffer *bitstreams,
330  void *extradata
331 );
332 
381 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
384  const NvMediaIEP *encoder,
385  uint32_t *numBytesAvailable,
386  NvMediaBlockingType blockingType,
387  uint32_t millisecondTimeout
388 );
389 
390 
416 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
419  const NvMediaIEP *encoder,
420  NvMediaEncAttrType attrType,
421  uint32_t attrSize,
422  void *AttributeData
423 );
424 
463  const NvMediaIEP *encoder,
464  const NvMediaImage *image,
465  NvMediaAccessMode accessMode
466 );
467 
511 // coverity[misra_c_2012_rule_8_7_violation : FALSE]
514  const NvMediaIEP *encoder,
515  const NvMediaImage *image
516 );
517 
518 /*
519  * \defgroup history_nvmedia_iep History
520  * Provides change history for the NvMedia IEP API.
521  *
522  * \section history_nvmedia_iep Version History
523  *
524  * <b> Version 1.0 </b> March 14, 2016
525  * - Initial release
526  *
527  * <b> Version 1.1 </b> May 11, 2016
528  * - Added \ref NvMediaICPCheckVersion API
529  *
530  * <b> Version 1.2 </b> May 5, 2017
531  * - Added \ref NvMediaIEPGetBitsEx and \ref NvMediaIEPSetInputExtraData API
532  * - Added \ref NvMediaIEPGetAttribute
533  *
534  * <b> Version 2.0 </b> May 9, 2017
535  * - Added instance ID parameter to NvMediaIEPCreate() and NvMediaIEPFeedFrame()
536  * - optionalDevice parameter is removed from NvMediaIEPCreate()
537  * - NvMediaIEPGetVersion() is added to get the version of NvMedia Image Encoder library
538  * - NvMediaIEPGetBits() is deprecated. Use NvMediaIEPGetBitsEx() instead.
539  * - All NvMedia data types are moved to standard data types
540  *
541  * <b> Version 2.1 </b> June 30, 2017
542  * - Removed \ref NvMediaIEPSetInputExtraData API
543  *
544  * <b> Version 2.2 </b> Sept 1, 2017
545  * - Added NVMEDIA_IMAGE_ENCODE_VP8 in \ref NvMediaIEPType enum
546  *
547  * <b> Version 2.3 </b> Dec 14, 2018
548  * - Fix MISRA violations 21.1 and 21.2
549  *
550  * <b> Version 2.4 </b> January 15, 2019
551  * - Fix MISRA violations 8.13
552  *
553  * <b> Version 2.5 </b> Feb 7, 2019
554  * - Added opaque handle for encoder
555  * internal usage into Image encoder object
556  * - Fix MISRA violations 11.3
557  * - Fix MISRA violations 8.13
558  *
559  * <b> Version 2.6 </b> Feb 28, 2019
560  * - Added required header includes nvmedia_core.h and nvmedia_surface.h
561  *
562  * <b> Version 2.7 </b> July 10, 2019
563  * - Header include nvmedia_common.h is replaced with nvmedia_common_encode.h
564  *
565  * <b> Version 2.8 </b> July 13, 2019
566  * - Corrected parameter description for \ref NvMediaIEPCreate and
567  * \ref NvMediaIEPFeedFrame.
568  *
569  * <b> Version 2.9 </b> July 15, 2019
570  * - Fix MISRA violations 8.13
571  *
572  * <b> Version 2.10 </b> Jul 16, 2019
573  * - Added \ref NvMediaIEPImageRegister API
574  * - Added \ref NvMediaIEPImageUnRegister API
575  *
576  * <b> Version 2.11 </b> October 5, 2019
577  * - Fix MISRA violations 8.13
578  * - Added Coverity Code annotations to suppress partial 8.7 violations
579  *
580  * <b> Version 2.12 </b> November 25, 2019
581  * - Fix MISRA violations 8.13
582  */
583 
586 #ifdef __cplusplus
587 }; /* extern "C" */
588 #endif
589 
590 #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:453
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:176
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