Face Engine SDK  5.25.0
A face detection, recognition and tracking engine.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
fsdk::IImageTransfer Struct Referenceabstract

Image transfer facility which give speed up of usage internal memory pool. More...

#include <IImageTransfer.h>

Inheritance diagram for fsdk::IImageTransfer:
fsdk::IRefCounted

Public Types

using ImagesBatchFuture = vlc::future< IImagesBatchPtr >
 Common alias for IImageTransfer asynchronous interface.
 

Public Member Functions

virtual ResultValue< FSDKError,
Ref< IImagesBatch > > 
transfer (Span< const Image > images, Image::MemoryResidence residence) const noexcept=0
 Transfer of multiple images. More...
 
virtual Result< FSDKErrorvalidate (Span< const Image > images, Image::MemoryResidence residence, Span< Result< FSDKError >> errors) const noexcept=0
 Validate input of multiple frames in a single function call. More...
 
virtual ImagesBatchFuture transferAsync (Span< const Image > images, Image::MemoryResidence residence) const =0
 Asynchronously transfer multiple images. More...
 
- Public Member Functions inherited from fsdk::IRefCounted
virtual int32_t retain () noexcept=0
 Increase strong reference count. More...
 
virtual int32_t retainLocked () noexcept=0
 Increase strong reference count thread safely. More...
 
virtual int32_t release () noexcept=0
 Decrease strong reference count. More...
 
virtual int32_t getRefCount () const noexcept=0
 Get actual strong reference count. More...
 
virtual int32_t retainWeak () noexcept=0
 Increase weak reference count. More...
 
virtual int32_t releaseWeak () noexcept=0
 Decrease weak reference count. More...
 
virtual int32_t getWeakRefCount () const noexcept=0
 Get actual weak reference count. More...
 

Detailed Description

Image transfer facility which give speed up of usage internal memory pool.

Note
This module designed to work only while FaceEngine initialized. Usage of this module after FaceEngine destruction is undefined behaviour.
This module is only make sense to use if user get sdk compiled with cuda support and if user set deviceClass to GPU nevertheless transfer accomplished CPU -> GPU or reverse.

Member Function Documentation

virtual ResultValue<FSDKError, Ref<IImagesBatch> > fsdk::IImageTransfer::transfer ( Span< const Image images,
Image::MemoryResidence  residence 
) const
pure virtualnoexcept

Transfer of multiple images.

Parameters
[in]imagesspan of source images.
[in]residencedesired destination residence.
Returns
ResultValue with error code and IImagesBatch object.
See Also
Ref, Span, Image, MemoryResidence, IImagesBatch, ResultValue and FSDKError for details.
Note
all spans should be based on user owned continuous collections.
virtual ImagesBatchFuture fsdk::IImageTransfer::transferAsync ( Span< const Image images,
Image::MemoryResidence  residence 
) const
pure virtual

Asynchronously transfer multiple images.

Parameters
[in]imagesspan of source images.
[in]residencedesired destination residence.
Returns
Future with IImagesBatch object.
See Also
Ref, Span, Image, MemoryResidence, IImagesBatch vlc::future for details.
Note
all spans should be based on user owned continuous collections.
this method is experimental and interface may be changed in the future.
this method is not marked as noexcept and may throw an exception.
virtual Result<FSDKError> fsdk::IImageTransfer::validate ( Span< const Image images,
Image::MemoryResidence  residence,
Span< Result< FSDKError >>  errors 
) const
pure virtualnoexcept

Validate input of multiple frames in a single function call.

Parameters
[in]imagesspan of source images.
[in]residencedesired destination residence.
[out]errorsoutput span of errors for each image.
Returns
Result with error code.
See Also
Span, Image, MemoryResidence, Result and FSDKError for details.
Note
all spans should be based on user owned continuous collections.
all spans should be equal size.

The documentation for this struct was generated from the following file: