NVIDIA DRIVE OS Linux SDK API Reference

5.1.6.0 Release

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
nvmedia_iofst.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 
14 #ifndef NVMEDIA_IOFST_H
15 #define NVMEDIA_IOFST_H
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 #include <stdint.h>
22 #include "nvmedia_image.h"
23 #include "nvmedia_common.h"
24 #include "nvmedia_core.h"
25 #include "nvmedia_surface.h"
26 #include "nvmedia_array.h"
27 
38 #define NVMEDIA_IOFST_VERSION_MAJOR 1
39 
40 #define NVMEDIA_IOFST_VERSION_MINOR 10
41 
45 typedef enum {
59 
63 typedef enum {
67 
71 typedef struct {
81  struct NvMediaIOFSTPriv_ *ofstPriv;
82 } NvMediaIOFST;
83 
87 typedef struct {
89  uint16_t width;
91  uint16_t height;
94  uint32_t features;
96 
101 typedef struct {
109 
120  NvMediaVersion *version
121 );
122 
167 NvMediaIOFST *
169  const NvMediaDevice *device,
170  NvMediaIOFSTType estimationType,
171  NvMediaSurfaceType inputFormat,
172  NvMediaSurfaceType outputFormat,
173  const NvMediaOFSTInitializeParams *initParams,
174  uint8_t maxInputBuffering,
175  NvMediaEncoderInstanceId instanceId
176 );
177 
182 void NvMediaIOFSTDestroy(const NvMediaIOFST *ofst);
183 
217  const NvMediaIOFST *ofst,
218  NvMediaImage *frame,
219  NvMediaImage *refFrame,
220  NvMediaImage *mvs,
221  const NvMediaOFSTExternalHintParams *extHintParams,
222  NvMediaEncoderInstanceId instanceId
223 );
224 
225 /*
226  * \defgroup history_nvmedia_iofst History
227  * Provides change history for the NvMedia IOFST API.
228  *
229  * \section history_nvmedia_iofst Version History
230  *
231  * <b> Version 1.0 </b> April 22, 2017
232  * - Initial release
233  *
234  * <b> Version 1.1 </b> June 08, 2017
235  * - Added enableSegmentMap parameter to \ref NvMediaOFSTInitializeParams
236  * - Added enableSegmentMap parameter to \ref NvMediaOFSTExternalHintParams
237  *
238  * <b> Version 1.2 </b/> June 13, 2017
239  * - Added instance ID parameter to \ref NvMediaIOFSTCreate()
240  * - Added instance ID parameter to \ref NvMediaIOFSTProcessFrame()
241  * - Added instanceId to \ref NvMediaIOFST object
242  *
243  * <b> Version 1.3 </b/> June 19, 2017
244  * - Added NVMEDIA_IMAGE_OPTICALFLOW_ESTIMATION_HQ_MODE and
245  * NVMEDIA_IMAGE_OPTICALFLOW_ESTIMATION_UHP_MODE and
246  * NVMEDIA_IMAGE_STEREODISPARITY_ESTIMATION_UHP_MODE
247  * parameters \ref NvMediaIOFSTType enum
248  *
249  * <b> Version 1.4 </b/> June 19, 2018
250  * - Added features parameter to \ref NvMediaOFSTInitializeParams
251  *
252  * <b> Version 1.5 </b/> Dec 14, 2018
253  * - Fix MISRA violations 21.1 and 21.2
254  *
255  * <b> Version 1.6 </b> January 15, 2019
256  * - Fix MISRA violations 8.13
257  *
258  * <b> Version 1.7 </b> Feb 7, 2019
259  * - Added opaque handle for ofst
260  * internal usage into OFST object
261  * - Fix MISRA violations 11.3
262  * - Fix MISRA violations 8.13
263  *
264  * <b> Version 1.8 </b> February 28, 2019
265  * - Added required header includes nvmedia_core.h and nvmedia_surface.h
266  *
267  * <b> Version 1.9 </b> March 14, 2019
268  * - Removed ExternalHints related parameters from
269  * \ref NvMediaOFSTInitializeParams
270  * - Updated meExternalHints pointer type in
271  * \ref NvMediaOFSTExternalHintParams
272  *
273  * <b> Version 1.10 </b> April 03, 2019
274  * - Added \ref NvMediaIOFSTGetVersion API
275  */
276 
279 #ifdef __cplusplus
280 }; /* extern "C" */
281 #endif
282 
283 #endif /* NVMEDIA_IOFST_H */
High Performance OpticalFlow.
Definition: nvmedia_iofst.h:47
Holds a handle representing image objects.
Definition: nvmedia_image.h:69
#define NvMediaSurfaceType
Defines the set of NvMedia surface types.
struct NvMediaArray NvMediaArray
Holds a descriptor for an array.
Definition: nvmedia_array.h:79
NvMediaIOFSTType
Defines the image estimation type.
Definition: nvmedia_iofst.h:45
NvMediaSurfaceType inputFormat
Input surface format.
Definition: nvmedia_iofst.h:75
uint32_t NvMediaBool
A boolean value, holding NVMEDIA_TRUE or NVMEDIA_FALSE.
Definition: nvmedia_core.h:80
NvMediaEncoderInstanceId
Specifies the encoder instance ID.
Ultra High Performance OpticalFlow.
Definition: nvmedia_iofst.h:55
struct NvMediaIOFSTPriv_ * ofstPriv
An Opaque pointer for internal use.
Definition: nvmedia_iofst.h:81
Holds OFST estimation initialization parameters.
Definition: nvmedia_iofst.h:87
NVIDIA Media Interface: Surface Handling
NVIDIA Media Interface: Image Processing
NVIDIA Media Interface: Arrays
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
Holds an OFST object created by NvMediaIOFSTCreate.
Definition: nvmedia_iofst.h:71
NVIDIA Media Interface: Core
NvMediaStatus
Defines all possible error codes.
Definition: nvmedia_core.h:169
NvMediaIOFSTType estimationType
Motion estimation type.
Definition: nvmedia_iofst.h:73
Ultra High Performance StereoDisparity.
Definition: nvmedia_iofst.h:57
uint16_t height
OFST height.
Definition: nvmedia_iofst.h:91
uint16_t width
OFST width.
Definition: nvmedia_iofst.h:89
NvMediaBool enableSegmentMap
Enables the external segment ID map, as follows: A value of NVMEDIA_TRUE enables it...
Enables OFST profiling.
Definition: nvmedia_iofst.h:65
NvMediaEncoderInstanceId instanceId
Instance ID.
Definition: nvmedia_iofst.h:79
void NvMediaIOFSTDestroy(const NvMediaIOFST *ofst)
Destroys an NvMediaIOFST object.
NvMediaOFSTConfigFeatures
Defines OFST estimation configuration features.
Definition: nvmedia_iofst.h:63
NvMediaSurfaceType outputFormat
Output surface format.
Definition: nvmedia_iofst.h:77
NvMediaStatus NvMediaIOFSTGetVersion(NvMediaVersion *version)
Returns the version information for the NvMedia IOFST library.
NvMediaArray * meExternalHints
Specifies a pointer to ME external hints for the current frame.
uint32_t features
Specifies bitwise OR'ed configuration feature flags.
Definition: nvmedia_iofst.h:94
NvMediaIOFST * NvMediaIOFSTCreate(const NvMediaDevice *device, NvMediaIOFSTType estimationType, NvMediaSurfaceType inputFormat, NvMediaSurfaceType outputFormat, const NvMediaOFSTInitializeParams *initParams, uint8_t maxInputBuffering, NvMediaEncoderInstanceId instanceId)
Creates an OFST object that can create motion vectors based on the difference between two frames...
Holds OFST estimation parameters.
High Performance StereoDisparity.
Definition: nvmedia_iofst.h:49
NvMediaStatus NvMediaIOFSTProcessFrame(const NvMediaIOFST *ofst, NvMediaImage *frame, NvMediaImage *refFrame, NvMediaImage *mvs, const NvMediaOFSTExternalHintParams *extHintParams, NvMediaEncoderInstanceId instanceId)
Performs OFST estimation on a specified frame pair.