NVIDIA DRIVE OS Linux API Reference

5.1.0.2 Release

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
nvmedia_iep.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014-2017, 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.h"
23 #include "nvmedia_image.h"
24 
36 #define NVMEDIA_IEP_VERSION_MAJOR 2
37 
38 #define NVMEDIA_IEP_VERSION_MINOR 2
39 
43 typedef enum {
50 
51 
55 typedef struct {
62 } NvMediaIEP;
63 
75  NvMediaVersion *version
76 );
77 
124 NvMediaIEP *
126  NvMediaDevice *device,
127  NvMediaIEPType encodeType,
128  void *initParams,
129  NvMediaSurfaceType inputFormat,
130  uint8_t maxInputBuffering,
131  uint8_t maxOutputBuffering,
132  NvMediaEncoderInstanceId instanceId
133 );
134 
139 void NvMediaIEPDestroy(NvMediaIEP *encoder);
140 
177  NvMediaIEP *encoder,
178  NvMediaImage *frame,
179  NvMediaRect *sourceRect,
180  void *picParams,
181  NvMediaEncoderInstanceId instanceId
182 );
183 
200  NvMediaIEP *encoder,
201  void *configuration
202 );
203 
232  NvMediaIEP *encoder,
233  uint32_t *numBytes,
234  uint32_t numBitstreamBuffers,
235  NvMediaBitstreamBuffer *bitstreams,
236  void *extradata
237 );
238 
280  NvMediaIEP *encoder,
281  uint32_t *numBytesAvailable,
282  NvMediaBlockingType blockingType,
283  uint32_t millisecondTimeout
284 );
285 
286 
307  NvMediaIEP *encoder,
308  NvMediaEncAttrType attrType,
309  uint32_t attrSize,
310  void *AttributeData
311 );
312 
313 /*
314  * \defgroup history_nvmedia_iep History
315  * Provides change history for the NvMedia IEP API.
316  *
317  * \section history_nvmedia_iep Version History
318  *
319  * <b> Version 1.0 </b> March 14, 2016
320  * - Initial release
321  *
322  * <b> Version 1.1 </b> May 11, 2016
323  * - Added \ref NvMediaICPCheckVersion API
324  *
325  * <b> Version 1.2 </b> May 5, 2017
326  * - Added \ref NvMediaIEPGetBitsEx and \ref NvMediaIEPSetInputExtraData API
327  * - Added \ref NvMediaIEPGetAttribute
328  *
329  * <b> Version 2.0 </b> May 9, 2017
330  * - Added instance ID parameter to NvMediaIEPCreate() and NvMediaIEPFeedFrame()
331  * - optionalDevice parameter is removed from NvMediaIEPCreate()
332  * - NvMediaIEPGetVersion() is added to get the version of NvMedia Image Encoder library
333  * - NvMediaIEPGetBits() is deprecated. Use NvMediaIEPGetBitsEx() instead.
334  * - All NvMedia data types are moved to standard data types
335  *
336  * <b> Version 2.1 </b> June 30, 2017
337  * - Removed \ref NvMediaIEPSetInputExtraData API
338  *
339  * <b> Version 2.2 </b> Sept 1, 2017
340  * - Added NVMEDIA_IMAGE_ENCODE_VP8 in \ref NvMediaIEPType enum
341  */
342 
345 #ifdef __cplusplus
346 }; /* extern "C" */
347 #endif
348 
349 #endif /* _NVMEDIA_IEP_H */
A handle representing image objects.
Definition: nvmedia_image.h:75
#define NvMediaSurfaceType
Defines the set of NvMedia surface types.
Holds an application data buffer containing compressed video data.
NvMediaIEPType
Image encode type.
Definition: nvmedia_iep.h:43
NvMediaEncoderInstanceId
Specifies the encoder instance ID.
void NvMediaIEPDestroy(NvMediaIEP *encoder)
Destroys an NvMedia image encoder.
NvMediaStatus NvMediaIEPGetVersion(NvMediaVersion *version)
Checks the version compatibility for the NvMedia IEP library.
NVIDIA Media Interface: Image Processing
NvMediaStatus NvMediaIEPGetBitsEx(NvMediaIEP *encoder, uint32_t *numBytes, uint32_t numBitstreamBuffers, NvMediaBitstreamBuffer *bitstreams, void *extradata)
Returns the bitstream for a slice or frame.
Holds NvMedia Version information.
Definition: nvmedia_core.h:252
NVIDIA Media Interface: Common Types for Video/Image Encode/Decode
NvMediaIEP * NvMediaIEPCreate(NvMediaDevice *device, NvMediaIEPType encodeType, void *initParams, NvMediaSurfaceType inputFormat, uint8_t maxInputBuffering, uint8_t maxOutputBuffering, NvMediaEncoderInstanceId instanceId)
Creates an encoder object capable of turning a stream of surfaces of the "inputFormat" into a bitstre...
NvMediaSurfaceType inputFormat
Input Image surface type.
Definition: nvmedia_iep.h:59
NvMediaStatus
The set of all possible error codes.
Definition: nvmedia_core.h:199
Holds a rectangular region of a surface.
Definition: nvmedia_core.h:146
NvMediaIEPType encodeType
Codec type.
Definition: nvmedia_iep.h:57
NvMediaEncoderInstanceId instanceId
Instance ID.
Definition: nvmedia_iep.h:61
NvMediaEncAttrType
Specifies the Video encoder get attribute type.
void NvMediaDevice
An opaque handle representing a NvMediaDevice object.
Definition: nvmedia_core.h:305
NvMediaStatus NvMediaIEPFeedFrame(NvMediaIEP *encoder, NvMediaImage *frame, NvMediaRect *sourceRect, void *picParams, NvMediaEncoderInstanceId instanceId)
Encodes the specified frame.
NvMediaBlockingType
Blocking type.
NvMediaStatus NvMediaIEPSetConfiguration(NvMediaIEP *encoder, void *configuration)
Sets the encoder configuration.
NvMediaStatus NvMediaIEPGetAttribute(NvMediaIEP *encoder, NvMediaEncAttrType attrType, uint32_t attrSize, void *AttributeData)
Gets the encoder attribute for the current encoding session.
NvMediaStatus NvMediaIEPBitsAvailable(NvMediaIEP *encoder, uint32_t *numBytesAvailable, NvMediaBlockingType blockingType, uint32_t millisecondTimeout)
Returns the encode status and number of bytes available for the next frame (if any).
Holds the image encoder object created by NvMediaIEPCreate.
Definition: nvmedia_iep.h:55