NVIDIA DRIVE OS Linux SDK API Reference

5.2.3 Release
For Test and Development only
nvmedia_vep.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2017-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_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 9
40 
45 typedef enum {
55 
60 typedef struct {
68  struct NvMediaVideoEncoderPriv_ *encPriv;
70 
71 
89  NvMediaVersion *version
90 );
91 
153  const NvMediaDevice *device,
155  const void *initParams,
156  NvMediaSurfaceType inputFormat,
157  uint8_t maxInputBuffering,
158  uint8_t maxOutputBuffering,
159  NvMediaEncoderInstanceId instanceId
160 );
161 
174 
236  const NvMediaVideoEncoder *encoder,
237  const NvMediaVideoSurface *frame,
238  const NvMediaRect *sourceRect,
239  const void *picParams,
240  NvMediaEncoderInstanceId instanceId
241 );
242 
267  const NvMediaVideoEncoder *encoder,
268  const void *configuration
269 );
270 
309  const NvMediaVideoEncoder *encoder,
310  uint32_t *numBytes,
311  void *buffer
312 );
313 
364  const NvMediaVideoEncoder *encoder,
365  uint32_t *numBytesAvailable,
366  NvMediaBlockingType blockingType,
367  uint32_t millisecondTimeout
368 );
369 
409  const NvMediaVideoEncoder *encoder,
410  const NvMediaVideoSurface *frame,
411  NvMediaAccessMode accessMode
412 );
413 
459  const NvMediaVideoEncoder *encoder,
460  const NvMediaVideoSurface *frame
461 );
462 
465 /*
466  * \defgroup history_nvmedia_vep History
467  * Provides change history for the NvMedia Video Encode API.
468  *
469  * \section history_nvmedia_vcp Version History
470  *
471  * <b> Version 1.0 </b> March 21, 2017
472  * - Initial release
473  *
474  * <b> Version 1.1 </b/> April 18, 2017
475  * - Added \ref NvMediaVideoEncodeType
476  * - Added \ref NvMediaVideoEncoderGetVersion
477  * - Added instance ID parameter to \ref NvMediaVideoEncoderCreate()
478  * - Added instance ID parameter to \ref NvMediaVideoEncoderFeedFrame()
479  * - Added instanceId to \ref NvMediaVideoEncoder object
480  * - Changed \ref NvMediaVideoEncoderCreate codec parameter to
481  * \ref NvMediaVideoEncodeType
482  * - Changed to use standard data type
483  *
484  * <b> Version 2.0 </b> May 9, 2017
485  * - Removed optionalDevice param from NvMediaVideoEncoderCreate()
486  *
487  * <b> Version 2.1 </b> Sept 1, 2017
488  * - Added NVMEDIA_VIDEO_ENCODE_CODEC_VP8 in \ref NvMediaVideoEncodeType enum
489  *
490  * <b> Version 2.2 </b> Dec 14, 2018
491  * - Fix MISRA violationis 21.1 and 21.2
492  *
493  * <b> Version 2.3 </b> January 15, 2019
494  * - Fix MISRA violations 8.13
495  *
496  * <b> Version 2.4 </b> Feb 7, 2019
497  * - Added opaque handle for encoder
498  * internal usage into Video encoder object
499  * - Fix MISRA violations 11.3
500  * - Fix MISRA violations 8.13
501  *
502  * <b> Version 2.5 </b> Feb 28, 2019
503  * - Added required header includes nvmedia_core.h and nvmedia_surface.h
504  *
505  * <b> Version 2.6 </b> July 10, 2019
506  * - Header include nvmedia_common.h is replaced with nvmedia_common_encode.h
507  *
508  * <b> Version 2.7 </b> July 11, 2019
509  * - Fix MISRA violations 8.13
510  *
511  * <b> Version 2.8 </b> Aug 14, 2019
512  * - Added \ref NvMediaVideoEncoderSurfaceRegister API
513  * - Added \ref NvMediaVideoEncoderSurfaceUnRegister API
514  *
515  * <b> Version 2.9 </b> November 20, 2020
516  * - Updated input format requirements for all supported codecs only in
517  * comments section of \ref NvMediaVideoEncoderCreate as part of documentation
518  */
519 
520 #ifdef __cplusplus
521 }; /* extern "C" */
522 #endif
523 
524 #endif /* NVMEDIA_VEP_H */
NVMEDIA_VIDEO_ENCODE_CODEC_VP9
@ NVMEDIA_VIDEO_ENCODE_CODEC_VP9
VP9 codec.
Definition: nvmedia_vep.h:51
NvMediaVideoEncoderBitsAvailable
NvMediaStatus NvMediaVideoEncoderBitsAvailable(const NvMediaVideoEncoder *encoder, uint32_t *numBytesAvailable, NvMediaBlockingType blockingType, uint32_t millisecondTimeout)
Returns the status of an encoding task submitted using NvMediaVideoEncoderFeedFrame,...
nvmedia_video.h
NVIDIA Media Interface: Video Surface Processing
NvMediaVideoEncoderSetConfiguration
NvMediaStatus NvMediaVideoEncoderSetConfiguration(const NvMediaVideoEncoder *encoder, const void *configuration)
Sets the encoder configuration.
nvmedia_surface.h
NVIDIA Media Interface: Surface Handling
NvMediaBlockingType
NvMediaBlockingType
Blocking type.
Definition: nvmedia_common_encode.h:189
NvMediaVideoEncoderGetBits
NvMediaStatus NvMediaVideoEncoderGetBits(const NvMediaVideoEncoder *encoder, uint32_t *numBytes, void *buffer)
Returns the bitstream for a frame.
NvMediaDevice
struct NvMediaDevice NvMediaDevice
An opaque handle representing an NvMediaDevice object.
Definition: nvmedia_core.h:348
NVMEDIA_VIDEO_ENCODE_CODEC_H264
@ NVMEDIA_VIDEO_ENCODE_CODEC_H264
H.264 codec.
Definition: nvmedia_vep.h:47
NvMediaVersion
Holds NvMedia version information.
Definition: nvmedia_core.h:237
NvMediaVideoEncoder::instanceId
NvMediaEncoderInstanceId instanceId
Instance ID.
Definition: nvmedia_vep.h:66
NvMediaVideoEncoderDestroy
void NvMediaVideoEncoderDestroy(const NvMediaVideoEncoder *encoder)
Destroys an NvMediaVideoEncoder object.
NvMediaVideoSurface
A handle representing a video surface object.
Definition: nvmedia_video.h:58
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
NvMediaVideoEncoderGetVersion
NvMediaStatus NvMediaVideoEncoderGetVersion(NvMediaVersion *version)
Gets the version information for the NvMedia Video Encoder library.
NvMediaAccessMode
NvMediaAccessMode
Definition: nvmedia_core.h:299
NVMEDIA_VIDEO_ENCODE_CODEC_VP8
@ NVMEDIA_VIDEO_ENCODE_CODEC_VP8
VP8 codec.
Definition: nvmedia_vep.h:53
NvMediaStatus
NvMediaStatus
Defines all possible error codes.
Definition: nvmedia_core.h:180
NvMediaVideoEncoder
Video encoder object created by NvMediaVideoEncoderCreate.
Definition: nvmedia_vep.h:60
NvMediaVideoEncoderSurfaceUnRegister
NvMediaStatus NvMediaVideoEncoderSurfaceUnRegister(const NvMediaVideoEncoder *encoder, const NvMediaVideoSurface *frame)
Un-registers NvMediaVideoSurface which is registered with NvMediaVideoEncoder.
NvMediaVideoEncoderFeedFrame
NvMediaStatus NvMediaVideoEncoderFeedFrame(const NvMediaVideoEncoder *encoder, const NvMediaVideoSurface *frame, const NvMediaRect *sourceRect, const void *picParams, NvMediaEncoderInstanceId instanceId)
Submits the specified frame for encoding.
NvMediaVideoEncoder::inputFormat
NvMediaSurfaceType inputFormat
Input surface format.
Definition: nvmedia_vep.h:64
NVMEDIA_VIDEO_ENCODE_CODEC_HEVC
@ NVMEDIA_VIDEO_ENCODE_CODEC_HEVC
HEVC codec.
Definition: nvmedia_vep.h:49
NvMediaEncoderInstanceId
NvMediaEncoderInstanceId
Specifies the encoder instance ID.
Definition: nvmedia_common_encode_ofst.h:36
NvMediaVideoEncoder::encPriv
struct NvMediaVideoEncoderPriv_ * encPriv
An Opaque pointer for internal use.
Definition: nvmedia_vep.h:68
NvMediaVideoEncoderCreate
NvMediaVideoEncoder * NvMediaVideoEncoderCreate(const NvMediaDevice *device, NvMediaVideoEncodeType codec, const void *initParams, NvMediaSurfaceType inputFormat, uint8_t maxInputBuffering, uint8_t maxOutputBuffering, NvMediaEncoderInstanceId instanceId)
Create an NvMediaVideoEncoder object instance.
nvmedia_common_encode.h
NVIDIA Media Interface: Common Types for Video/Image Encode
NvMediaVideoEncodeType
NvMediaVideoEncodeType
Video encoder codec type.
Definition: nvmedia_vep.h:45
NvMediaVideoEncoderSurfaceRegister
NvMediaStatus NvMediaVideoEncoderSurfaceRegister(const NvMediaVideoEncoder *encoder, const NvMediaVideoSurface *frame, NvMediaAccessMode accessMode)
Registers NvMediaVideoSurface for use with a NvMediaVideoEncoder handle.
NvMediaVideoEncoder::codec
NvMediaVideoEncodeType codec
Codec type.
Definition: nvmedia_vep.h:62