NVIDIA DRIVE OS Linux API Reference

5.1.6.1 Release
For Test and Development only

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
nvmedia_vep.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2017-2019, 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_VEP_H
16 #define NVMEDIA_VEP_H
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22 #include "nvmedia_common.h"
23 #include "nvmedia_core.h"
24 #include "nvmedia_surface.h"
25 #include "nvmedia_video.h"
26 
37 #define NVMEDIA_VEP_VERSION_MAJOR 2
38 
39 #define NVMEDIA_VEP_VERSION_MINOR 5
40 
45 typedef enum {
52 
57 typedef struct {
65  struct NvMediaVideoEncoderPriv_ *encPriv;
67 
68 
79  NvMediaVersion *version
80 );
81 
123  const NvMediaDevice *device,
125  void *initParams,
126  NvMediaSurfaceType inputFormat,
127  uint8_t maxInputBuffering,
128  uint8_t maxOutputBuffering,
129  NvMediaEncoderInstanceId instanceId
130 );
131 
137 
170  const NvMediaVideoEncoder *encoder,
171  const NvMediaVideoSurface *frame,
172  const NvMediaRect *sourceRect,
173  void *picParams,
174  NvMediaEncoderInstanceId instanceId
175 );
176 
190  const NvMediaVideoEncoder *encoder,
191  void *configuration
192 );
193 
216  const NvMediaVideoEncoder *encoder,
217  uint32_t *numBytes,
218  void *buffer
219 );
220 
261  const NvMediaVideoEncoder *encoder,
262  uint32_t *numBytesAvailable,
263  NvMediaBlockingType blockingType,
264  uint32_t millisecondTimeout
265 );
266 
269 /*
270  * \defgroup history_nvmedia_vep History
271  * Provides change history for the NvMedia Video Encode API.
272  *
273  * \section history_nvmedia_vcp Version History
274  *
275  * <b> Version 1.0 </b> March 21, 2017
276  * - Initial release
277  *
278  * <b> Version 1.1 </b/> April 18, 2017
279  * - Added \ref NvMediaVideoEncodeType
280  * - Added \ref NvMediaVideoEncoderGetVersion
281  * - Added instance ID parameter to \ref NvMediaVideoEncoderCreate()
282  * - Added instance ID parameter to \ref NvMediaVideoEncoderFeedFrame()
283  * - Added instanceId to \ref NvMediaVideoEncoder object
284  * - Changed \ref NvMediaVideoEncoderCreate codec parameter to
285  * \ref NvMediaVideoEncodeType
286  * - Changed to use standard data type
287  *
288  * <b> Version 2.0 </b> May 9, 2017
289  * - Removed optionalDevice param from NvMediaVideoEncoderCreate()
290  *
291  * <b> Version 2.1 </b> Sept 1, 2017
292  * - Added NVMEDIA_VIDEO_ENCODE_CODEC_VP8 in \ref NvMediaVideoEncodeType enum
293  *
294  * <b> Version 2.2 </b> Dec 14, 2018
295  * - Fix MISRA violationis 21.1 and 21.2
296  *
297  * <b> Version 2.3 </b> January 15, 2019
298  * - Fix MISRA violations 8.13
299  *
300  * <b> Version 2.4 </b> Feb 7, 2019
301  * - Added opaque handle for encoder
302  * internal usage into Video encoder object
303  * - Fix MISRA violations 11.3
304  * - Fix MISRA violations 8.13
305  *
306  * <b> Version 2.5 </b> Feb 28, 2019
307  * - Added required header includes nvmedia_core.h and nvmedia_surface.h
308  *
309  */
310 
311 #ifdef __cplusplus
312 }; /* extern "C" */
313 #endif
314 
315 #endif /* NVMEDIA_VEP_H */
#define NvMediaSurfaceType
Defines the set of NvMedia surface types.
NvMediaEncoderInstanceId
Specifies the encoder instance ID.
NvMediaEncoderInstanceId instanceId
Instance ID.
Definition: nvmedia_vep.h:63
Video encoder object created by NvMediaVideoEncoderCreate.
Definition: nvmedia_vep.h:57
NvMediaVideoEncoder * NvMediaVideoEncoderCreate(const NvMediaDevice *device, NvMediaVideoEncodeType codec, 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...
NVIDIA Media Interface: Surface Handling
Holds NvMedia version information.
Definition: nvmedia_core.h:226
struct NvMediaDevice NvMediaDevice
An opaque handle representing an NvMediaDevice object.
Definition: nvmedia_core.h:337
NVIDIA Media Interface: Common Types for Video/Image Encode/Decode
NvMediaSurfaceType inputFormat
Input surface format.
Definition: nvmedia_vep.h:61
struct NvMediaVideoEncoderPriv_ * encPriv
An Opaque pointer for internal use.
Definition: nvmedia_vep.h:65
NVIDIA Media Interface: Core
NvMediaStatus NvMediaVideoEncoderFeedFrame(const NvMediaVideoEncoder *encoder, const NvMediaVideoSurface *frame, const NvMediaRect *sourceRect, void *picParams, NvMediaEncoderInstanceId instanceId)
Encodes the specified "frame".
NvMediaStatus
Defines all possible error codes.
Definition: nvmedia_core.h:169
NvMediaVideoEncodeType
Video encoder codec type.
Definition: nvmedia_vep.h:45
Holds a rectangular region of a surface.
Definition: nvmedia_core.h:133
NVIDIA Media Interface: Video Surface Processing
void NvMediaVideoEncoderDestroy(const NvMediaVideoEncoder *encoder)
Destroys an NvMediaEncoder object.
NvMediaVideoEncodeType codec
Codec type.
Definition: nvmedia_vep.h:59
NvMediaBlockingType
Blocking type.
NvMediaStatus NvMediaVideoEncoderSetConfiguration(const NvMediaVideoEncoder *encoder, void *configuration)
Sets the encoder configuration.
NvMediaStatus NvMediaVideoEncoderGetVersion(NvMediaVersion *version)
Gets the version information for the NvMedia Video Encoder library.
NvMediaStatus NvMediaVideoEncoderBitsAvailable(const NvMediaVideoEncoder *encoder, uint32_t *numBytesAvailable, NvMediaBlockingType blockingType, uint32_t millisecondTimeout)
Returns the encode status and number of bytes available for the next frame (if any).
A handle representing a video surface object.
Definition: nvmedia_video.h:58
NvMediaStatus NvMediaVideoEncoderGetBits(const NvMediaVideoEncoder *encoder, uint32_t *numBytes, void *buffer)
NvMediaVideoEncoderGetBits returns a frame's worth of bitstream into the provided "buffer"...