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_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"
24 #include "nvmedia_core.h"
25 #include "nvmedia_surface.h"
26 
37 #define NVMEDIA_IOFST_VERSION_MAJOR 1
38 
39 #define NVMEDIA_IOFST_VERSION_MINOR 13
40 
44 typedef enum {
58 
62 typedef enum {
66 
70 typedef struct {
80  struct NvMediaIOFSTPriv_ *ofstPriv;
81 } NvMediaIOFST;
82 
86 typedef struct {
88  uint16_t width;
90  uint16_t height;
93  uint32_t features;
95 
100 typedef struct {
110 
121  NvMediaVersion *version
122 );
123 
179 NvMediaIOFST *
181  const NvMediaDevice *device,
182  NvMediaIOFSTType estimationType,
183  NvMediaSurfaceType inputFormat,
184  NvMediaSurfaceType outputFormat,
185  const NvMediaOFSTInitializeParams *initParams,
186  uint8_t maxInputBuffering,
187  NvMediaEncoderInstanceId instanceId
188 );
189 
196 void NvMediaIOFSTDestroy(const NvMediaIOFST *ofst);
197 
240  const NvMediaIOFST *ofst,
241  NvMediaImage *frame,
242  NvMediaImage *refFrame,
243  NvMediaImage *mvs,
244  const NvMediaOFSTExternalHintParams *extHintParams,
245  NvMediaEncoderInstanceId instanceId
246 );
247 
280  const NvMediaIOFST *ofst,
281  const NvMediaImage *image,
282  NvMediaAccessMode accessMode
283 );
284 
311  const NvMediaIOFST *ofst,
312  const NvMediaImage *image
313 );
314 
315 /*
316  * \defgroup history_nvmedia_iofst History
317  * Provides change history for the NvMedia IOFST API.
318  *
319  * \section history_nvmedia_iofst Version History
320  *
321  * <b> Version 1.0 </b> April 22, 2017
322  * - Initial release
323  *
324  * <b> Version 1.1 </b> June 08, 2017
325  * - Added enableSegmentMap parameter to \ref NvMediaOFSTInitializeParams
326  * - Added enableSegmentMap parameter to \ref NvMediaOFSTExternalHintParams
327  *
328  * <b> Version 1.2 </b/> June 13, 2017
329  * - Added instance ID parameter to \ref NvMediaIOFSTCreate()
330  * - Added instance ID parameter to \ref NvMediaIOFSTProcessFrame()
331  * - Added instanceId to \ref NvMediaIOFST object
332  *
333  * <b> Version 1.3 </b/> June 19, 2017
334  * - Added NVMEDIA_IMAGE_OPTICALFLOW_ESTIMATION_HQ_MODE and
335  * NVMEDIA_IMAGE_OPTICALFLOW_ESTIMATION_UHP_MODE and
336  * NVMEDIA_IMAGE_STEREODISPARITY_ESTIMATION_UHP_MODE
337  * parameters \ref NvMediaIOFSTType enum
338  *
339  * <b> Version 1.4 </b/> June 19, 2018
340  * - Added features parameter to \ref NvMediaOFSTInitializeParams
341  *
342  * <b> Version 1.5 </b/> Dec 14, 2018
343  * - Fix MISRA violations 21.1 and 21.2
344  *
345  * <b> Version 1.6 </b> January 15, 2019
346  * - Fix MISRA violations 8.13
347  *
348  * <b> Version 1.7 </b> Feb 7, 2019
349  * - Added opaque handle for ofst
350  * internal usage into OFST object
351  * - Fix MISRA violations 11.3
352  * - Fix MISRA violations 8.13
353  *
354  * <b> Version 1.8 </b> February 28, 2019
355  * - Added required header includes nvmedia_core.h and nvmedia_surface.h
356  *
357  * <b> Version 1.9 </b> March 14, 2019
358  * - Removed ExternalHints related parameters from
359  * \ref NvMediaOFSTInitializeParams
360  * - Updated meExternalHints pointer type in
361  * \ref NvMediaOFSTExternalHintParams
362  *
363  * <b> Version 1.10 </b> April 03, 2019
364  * - Added \ref NvMediaIOFSTGetVersion API
365  *
366  * <b> Version 1.11 </b> July 10, 2019
367  * - Header include nvmedia_common.h is replaced with nvmedia_common_encode_ofst.h
368  *
369  * <b> Version 1.12 </b> July 16, 2019
370  * - Added \ref NvMediaIOFSTImageRegister API
371  * - Added \ref NvMediaIOFSTImageUnRegister API
372  *
373  * <b> Version 1.13 </b> July 17, 2019
374  * - Removed nvmedia_array dependency
375  */
376 
379 #ifdef __cplusplus
380 }; /* extern "C" */
381 #endif
382 
383 #endif /* NVMEDIA_IOFST_H */
High Performance OpticalFlow.
Definition: nvmedia_iofst.h:46
Holds a handle representing image objects.
Definition: nvmedia_image.h:69
#define NvMediaSurfaceType
Defines the set of NvMedia surface types.
NvMediaIOFSTType
Defines the image estimation type.
Definition: nvmedia_iofst.h:44
NvMediaSurfaceType inputFormat
Input surface format.
Definition: nvmedia_iofst.h:74
uint32_t NvMediaBool
A boolean value, holding NVMEDIA_TRUE or NVMEDIA_FALSE.
Definition: nvmedia_core.h:80
NvMediaStatus NvMediaIOFSTImageUnRegister(const NvMediaIOFST *ofst, const NvMediaImage *image)
This API is not functional.
Ultra High Performance OpticalFlow.
Definition: nvmedia_iofst.h:54
struct NvMediaIOFSTPriv_ * ofstPriv
An Opaque pointer for internal use.
Definition: nvmedia_iofst.h:80
Holds OFST estimation initialization parameters.
Definition: nvmedia_iofst.h:86
NVIDIA Media Interface: Surface Handling
NVIDIA Media Interface: Image Processing
NvMediaAccessMode
Definition: nvmedia_core.h:288
Holds NvMedia version information.
Definition: nvmedia_core.h:226
struct NvMediaDevice NvMediaDevice
An opaque handle representing an NvMediaDevice object.
Definition: nvmedia_core.h:337
NvMediaStatus NvMediaIOFSTImageRegister(const NvMediaIOFST *ofst, const NvMediaImage *image, NvMediaAccessMode accessMode)
Registers NvMediaImage for use with a NvMediaIOFST handle.
NvMediaEncoderInstanceId
Specifies the encoder instance ID.
Holds an OFST object created by NvMediaIOFSTCreate.
Definition: nvmedia_iofst.h:70
NVIDIA Media Interface: Core
NvMediaStatus
Defines all possible error codes.
Definition: nvmedia_core.h:169
NvMediaIOFSTType estimationType
Motion estimation type.
Definition: nvmedia_iofst.h:72
Ultra High Performance StereoDisparity.
Definition: nvmedia_iofst.h:56
uint16_t height
OFST height.
Definition: nvmedia_iofst.h:90
void * meExternalHints
Specifies a pointer to ME external hints for the current frame.
uint16_t width
OFST width.
Definition: nvmedia_iofst.h:88
NvMediaBool enableSegmentMap
Enables the external segment ID map, as follows: A value of NVMEDIA_TRUE enables it...
Enables OFST profiling.
Definition: nvmedia_iofst.h:64
NvMediaEncoderInstanceId instanceId
Instance ID.
Definition: nvmedia_iofst.h:78
void NvMediaIOFSTDestroy(const NvMediaIOFST *ofst)
Destroys an NvMediaIOFST object.
NvMediaOFSTConfigFeatures
Defines OFST estimation configuration features.
Definition: nvmedia_iofst.h:62
NvMediaSurfaceType outputFormat
Output surface format.
Definition: nvmedia_iofst.h:76
NvMediaStatus NvMediaIOFSTGetVersion(NvMediaVersion *version)
Returns the version information for the NvMedia IOFST library.
uint32_t features
Specifies bitwise OR'ed configuration feature flags.
Definition: nvmedia_iofst.h:93
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.
NVIDIA Media Interface: Common Types for Video/Image Encode and OFST
High Performance StereoDisparity.
Definition: nvmedia_iofst.h:48
NvMediaStatus NvMediaIOFSTProcessFrame(const NvMediaIOFST *ofst, NvMediaImage *frame, NvMediaImage *refFrame, NvMediaImage *mvs, const NvMediaOFSTExternalHintParams *extHintParams, NvMediaEncoderInstanceId instanceId)
Performs OFST estimation on a specified frame pair.