NVIDIA DRIVE OS Linux SDK API Reference

5.1.9.0 Release

 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_encode.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 7
40 
45 typedef enum {
52 
57 typedef struct {
65  struct NvMediaVideoEncoderPriv_ *encPriv;
67 
68 
79  NvMediaVersion *version
80 );
81 
123  const NvMediaDevice *device,
125  const 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  const void *picParams,
174  NvMediaEncoderInstanceId instanceId
175 );
176 
190  const NvMediaVideoEncoder *encoder,
191  const void *configuration
192 );
193 
216  const NvMediaVideoEncoder *encoder,
217  uint32_t *numBytes,
218  void *buffer
219 );
220 
257  const NvMediaVideoEncoder *encoder,
258  uint32_t *numBytesAvailable,
259  NvMediaBlockingType blockingType,
260  uint32_t millisecondTimeout
261 );
262 
265 /*
266  * \defgroup history_nvmedia_vep History
267  * Provides change history for the NvMedia Video Encode API.
268  *
269  * \section history_nvmedia_vcp Version History
270  *
271  * <b> Version 1.0 </b> March 21, 2017
272  * - Initial release
273  *
274  * <b> Version 1.1 </b/> April 18, 2017
275  * - Added \ref NvMediaVideoEncodeType
276  * - Added \ref NvMediaVideoEncoderGetVersion
277  * - Added instance ID parameter to \ref NvMediaVideoEncoderCreate()
278  * - Added instance ID parameter to \ref NvMediaVideoEncoderFeedFrame()
279  * - Added instanceId to \ref NvMediaVideoEncoder object
280  * - Changed \ref NvMediaVideoEncoderCreate codec parameter to
281  * \ref NvMediaVideoEncodeType
282  * - Changed to use standard data type
283  *
284  * <b> Version 2.0 </b> May 9, 2017
285  * - Removed optionalDevice param from NvMediaVideoEncoderCreate()
286  *
287  * <b> Version 2.1 </b> Sept 1, 2017
288  * - Added NVMEDIA_VIDEO_ENCODE_CODEC_VP8 in \ref NvMediaVideoEncodeType enum
289  *
290  * <b> Version 2.2 </b> Dec 14, 2018
291  * - Fix MISRA violationis 21.1 and 21.2
292  *
293  * <b> Version 2.3 </b> January 15, 2019
294  * - Fix MISRA violations 8.13
295  *
296  * <b> Version 2.4 </b> Feb 7, 2019
297  * - Added opaque handle for encoder
298  * internal usage into Video encoder object
299  * - Fix MISRA violations 11.3
300  * - Fix MISRA violations 8.13
301  *
302  * <b> Version 2.5 </b> Feb 28, 2019
303  * - Added required header includes nvmedia_core.h and nvmedia_surface.h
304  *
305  * <b> Version 2.6 </b> July 10, 2019
306  * - Header include nvmedia_common.h is replaced with nvmedia_common_encode.h
307  *
308  * <b> Version 2.7 </b> July 11, 2019
309  * - Fix MISRA violations 8.13
310  *
311  */
312 
313 #ifdef __cplusplus
314 }; /* extern "C" */
315 #endif
316 
317 #endif /* NVMEDIA_VEP_H */
#define NvMediaSurfaceType
Defines the set of NvMedia surface types.
NvMediaEncoderInstanceId instanceId
Instance ID.
Definition: nvmedia_vep.h:63
Video encoder object created by NvMediaVideoEncoderCreate.
Definition: nvmedia_vep.h:57
NVIDIA Media Interface: Surface Handling
Holds NvMedia version information.
Definition: nvmedia_core.h:226
NvMediaStatus NvMediaVideoEncoderFeedFrame(const NvMediaVideoEncoder *encoder, const NvMediaVideoSurface *frame, const NvMediaRect *sourceRect, const void *picParams, NvMediaEncoderInstanceId instanceId)
Encodes the specified "frame".
struct NvMediaDevice NvMediaDevice
An opaque handle representing an NvMediaDevice object.
Definition: nvmedia_core.h:337
NvMediaSurfaceType inputFormat
Input surface format.
Definition: nvmedia_vep.h:61
NvMediaEncoderInstanceId
Specifies the encoder instance ID.
NvMediaVideoEncoder * NvMediaVideoEncoderCreate(const NvMediaDevice *device, NvMediaVideoEncodeType codec, const 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...
struct NvMediaVideoEncoderPriv_ * encPriv
An Opaque pointer for internal use.
Definition: nvmedia_vep.h:65
NVIDIA Media Interface: Core
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
NVIDIA Media Interface: Common Types for Video/Image Encode
NvMediaBlockingType
Blocking type.
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).
NvMediaStatus NvMediaVideoEncoderSetConfiguration(const NvMediaVideoEncoder *encoder, const void *configuration)
Sets the encoder configuration.
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"...