class InferenceEngine::gpu::VASurfaceBlob

Overview

This class represents an abstraction for GPU plugin remote blob which is shared with VA output surface. The plugin object derived from this class can be obtained with CreateBlob() call. More…

#include <gpu_context_api_va.hpp>

class VASurfaceBlob: public InferenceEngine::gpu::ClImage2DBlob
{
public:
    // typedefs

    typedef std::shared_ptr<VASurfaceBlob> Ptr;

    // construction

    VASurfaceBlob(const TensorDesc& tensorDesc);

    // methods

    operator VASurfaceID ();
    uint32_t plane();
};

Inherited Members

public:
    // typedefs

    typedef std::shared_ptr<Blob> Ptr;
    typedef std::shared_ptr<const Blob> CPtr;
    typedef std::shared_ptr<MemoryBlob> Ptr;
    typedef std::shared_ptr<const MemoryBlob> CPtr;
    typedef std::shared_ptr<RemoteBlob> Ptr;
    typedef std::shared_ptr<const RemoteBlob> CPtr;
    typedef std::shared_ptr<ClBlob> Ptr;
    typedef std::shared_ptr<ClImage2DBlob> Ptr;

    // methods

    static Ptr CreateFromData(const DataPtr& data);

    template <
        typename T,
        typename std::enable_if<!std::is_pointer<T>::value&&!std::is_reference<T>::value, int>::type = 0,
        typename std::enable_if<std::is_base_of<Blob, T>::value, int>::type = 0
        >
    bool is();

    template <
        typename T,
        typename std::enable_if<!std::is_pointer<T>::value&&!std::is_reference<T>::value, int>::type = 0,
        typename std::enable_if<std::is_base_of<Blob, T>::value, int>::type = 0
        >
    bool is() const;

    template <
        typename T,
        typename std::enable_if<!std::is_pointer<T>::value&&!std::is_reference<T>::value, int>::type = 0,
        typename std::enable_if<std::is_base_of<Blob, T>::value, int>::type = 0
        >
    T \* as();

    template <
        typename T,
        typename std::enable_if<!std::is_pointer<T>::value&&!std::is_reference<T>::value, int>::type = 0,
        typename std::enable_if<std::is_base_of<Blob, T>::value, int>::type = 0
        >
    const T \* as() const;

    virtual const TensorDesc& getTensorDesc() const;
    virtual TensorDesc& getTensorDesc();
    virtual size_t size() const;
    virtual size_t byteSize() const;
    virtual size_t element_size() const = 0;
    virtual void allocate() = 0;
    virtual bool deallocate() = 0;
    void setShape(const SizeVector& dims);
    virtual Blob::Ptr createROI(const ROI& roi) const;

    virtual Blob::Ptr createROI(
        const std::vector<std::size_t>& begin,
        const std::vector<std::size_t>& end
        ) const;

    virtual const TensorDesc& getTensorDesc() const;
    virtual TensorDesc& getTensorDesc();
    virtual size_t size() const;
    virtual size_t byteSize() const;
    virtual size_t element_size() const;
    virtual void allocate() = 0;
    virtual bool deallocate() = 0;
    virtual LockedMemory<void> rwmap() = 0;
    virtual LockedMemory<const void> rmap() const = 0;
    virtual LockedMemory<void> wmap() = 0;
    virtual ParamMap getParams() const = 0;
    virtual std::string getDeviceName() const = 0;
    virtual std::shared_ptr<RemoteContext> getContext() const = 0;
    cl_mem get();
    operator cl_mem ();
    operator cl::Image2D ();

Detailed Documentation

This class represents an abstraction for GPU plugin remote blob which is shared with VA output surface. The plugin object derived from this class can be obtained with CreateBlob() call.

User can also obtain OpenCL 2D image handle from this class.

Typedefs

typedef std::shared_ptr<VASurfaceBlob> Ptr

A smart pointer to the VASurfaceBlob object.

Construction

VASurfaceBlob(const TensorDesc& tensorDesc)

Creates a VASurfaceBlob object with the specified dimensions and layout.

Parameters:

tensorDesc

Tensor description

Methods

operator VASurfaceID ()

VASurfaceID conversion operator for the VASurfaceBlob object.

Returns:

VASurfaceID handle

uint32_t plane()

Returns plane ID of underlying video decoder surface.

Returns:

Plane ID