Skip to content

cvedia::rt::iface::Buffer

Inherited by UnifiedBuffer

Public Functions

Name
virtual ~Buffer() =default
virtual cbuffer copy() const =0
virtual cbuffer copy(double scaleFactor) const =0
virtual cbuffer copy(Rect2f const & rc, bool relative) const =0
virtual cbuffer downloadAsGrayscale() const =0
virtual NODISCARD expected< cbuffer > region(Rect2f const & rc, bool relative) const =0
virtual NODISCARD expected< void > copyToRegion(Rect2f const & rc, bool relative, cbuffer destBuffer, Rect2f const & rectDest, bool destRelative) =0
virtual NODISCARD expected< void > batchCopyRegionsToCanvas(std::vector< RegionCopyOp > const & ops, cbuffer destCanvas) const =0
virtual NODISCARD expected< void > resize(Size size, builtin::ResizeMethod resizeMethod =builtin::ResizeMethod::SQUASH) =0
virtual NODISCARD expected< void > resize(Size size, builtin::ResizeMethod resizeMethod, std::string const & interpolationMethod) =0
virtual NODISCARD expected< cbuffer > resizeAndCopy(Size size, builtin::ResizeMethod resizeMethod =builtin::ResizeMethod::SQUASH) const =0
virtual NODISCARD expected< cbuffer > resizeAndCopy(Size size, builtin::ResizeMethod resizeMethod, std::string const & interpolationMethod) const =0
virtual NODISCARD expected< cbuffer > resizeAndCopyRegion(Size size, builtin::ResizeMethod resizeMethod, std::optional< Rect2f > const & region, bool relative, std::optional< BufferDataType > const & destType) const =0
virtual NODISCARD expected< cbuffer > resizeAndCopyRegion(Size size, builtin::ResizeMethod resizeMethod, std::string const & interpolationMethod, std::optional< Rect2f > const & region, bool relative, std::optional< BufferDataType > const & destType) const =0
virtual NODISCARD expected< void > pixelate(cv::Mat mask, int blockSize) =0
virtual NODISCARD expected< void > pixelate(float x, float y, float w, float h, int blockSize) =0
virtual NODISCARD expected< void > rotate90deg(int times) =0
virtual void brightness(double delta) =0
virtual void bgr2rgb() =0
virtual NODISCARD expected< void > toTransportUri(std::string const & targetTransportUri) =0
virtual NODISCARD expected< void > toDataType(BufferDataType dataType) =0
virtual void setColor(float color[3]) =0
virtual NODISCARD expected< void > grayscale(bool singleChannel) =0
virtual NODISCARD expected< cbuffer > grayscaleCopy(bool singleChannel) const =0
virtual NODISCARD expected< void > invert() =0
virtual void blur(cv::Mat mask, double amount) =0
virtual void blur(float x, float y, float w, float h, double amount) =0
virtual NODISCARD expected< void > fishToPano(float xOffset, float yOffset) =0
virtual void clahe(int const & clipLimit, int const & tileGridSizeX, int const & tileGridSizeY) =0
virtual cmap meanStdDev() =0
virtual NODISCARD expected< std::vector< cbuffer > > split() const =0
virtual void syncStream() const =0
virtual void syncToStream(void * targetStream) const =0
virtual NODISCARD expected< void > fill(cbuffer const & mask, float color[3]) =0
virtual NODISCARD expected< void > fill(float color[3], int opacity) =0
virtual NODISCARD expected< void > drawLine(Point2f const & src, Point2f const & dest, float color[3], int thickness) =0
virtual NODISCARD expected< void > drawRect(Rect2f const & pos, float color[3], int thickness) =0
virtual NODISCARD expected< void > drawPoly(std::vector< Point2f > const & pts, float color[3], double alpha) =0
virtual NODISCARD expected< void > drawPolyLine(std::vector< Point2f > const & pts, float color[3], int thickness) =0
virtual NODISCARD expected< void > drawCircle(Point2f const & center, int radius, float color[3], int thickness) =0
virtual NODISCARD expected< void > writeText(Point2f const & pos, std::string const & text, float color[3], int fontface, double fontscale, int thickness) =0
virtual NODISCARD expected< void > writeTextAutoSize(Point2f const & pos, std::string const & text, float color[3], int fontface, int genericSize) =0
virtual NODISCARD expected< std::pair< int, int > > getTextAutoSize(std::string const & text, int fontface, int genericSize) =0
virtual NODISCARD expected< void > drawBoundingBox(Rect2f const & pos, std::string const & label, float color[3], int thickness) =0
virtual void allocate(int width, int height, BufferDataType type) =0
virtual NODISCARD expected< void > fromData(int width, int height, BufferDataType type, void * data, size_t step =0) =0
virtual NODISCARD expected< void > mergeChannels(cbuffer const & r, cbuffer const & g, cbuffer const & b) =0
virtual NODISCARD expected< void > horizontalConcat(cbuffer const & left, cbuffer const & right) =0
virtual NODISCARD expected< void > loadImage(std::string const & filename) =0
virtual NODISCARD expected< void > decodeImage(void * data, int data_size) =0
virtual NODISCARD expected< void > saveImage(std::string const & fileName) =0
virtual NODISCARD expected< std::vector< unsigned char > > encodeImage() =0
virtual std::string base64Encode() =0
virtual bool base64Decode(std::string const & base64String) =0
virtual Size getSize() const =0
virtual int getChannels() const =0
virtual std::string getTransportUri() const =0
virtual size_t getStride() const =0
Get the row stride (bytes per row) for the buffer's primary plane.
virtual void * getData() =0
virtual void const * getData() const =0
virtual void * getStream() const =0
virtual void setStream(void * stream) =0
virtual void * getBackendPtr() const =0
void timestamp(double timestamp)
double timestamp() const
void frameid(int frameid)
int frameid() const
virtual BufferDataType dataType() const =0
virtual void dataType(BufferDataType ) =0
std::string dataTypeToString(BufferDataType type)
BufferDataType dataTypeFromString(std::string const & str)

Public Functions Documentation

function ~Buffer

virtual ~Buffer() =default

function copy

virtual cbuffer copy() const =0

Reimplemented by: cvedia::rt::UnifiedBuffer::copy

function copy

virtual cbuffer copy(
    double scaleFactor
) const =0

Reimplemented by: cvedia::rt::UnifiedBuffer::copy

function copy

virtual cbuffer copy(
    Rect2f const & rc,
    bool relative
) const =0

Reimplemented by: cvedia::rt::UnifiedBuffer::copy

function downloadAsGrayscale

virtual cbuffer downloadAsGrayscale() const =0

Reimplemented by: cvedia::rt::UnifiedBuffer::downloadAsGrayscale

function region

virtual NODISCARD expected< cbuffer > region(
    Rect2f const & rc,
    bool relative
) const =0

Reimplemented by: cvedia::rt::UnifiedBuffer::region

function copyToRegion

virtual NODISCARD expected< void > copyToRegion(
    Rect2f const & rc,
    bool relative,
    cbuffer destBuffer,
    Rect2f const & rectDest,
    bool destRelative
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::copyToRegion

function batchCopyRegionsToCanvas

virtual NODISCARD expected< void > batchCopyRegionsToCanvas(
    std::vector< RegionCopyOp > const & ops,
    cbuffer destCanvas
) const =0

Reimplemented by: cvedia::rt::UnifiedBuffer::batchCopyRegionsToCanvas

function resize

virtual NODISCARD expected< void > resize(
    Size size,
    builtin::ResizeMethod resizeMethod =builtin::ResizeMethod::SQUASH
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::resize

function resize

virtual NODISCARD expected< void > resize(
    Size size,
    builtin::ResizeMethod resizeMethod,
    std::string const & interpolationMethod
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::resize

function resizeAndCopy

virtual NODISCARD expected< cbuffer > resizeAndCopy(
    Size size,
    builtin::ResizeMethod resizeMethod =builtin::ResizeMethod::SQUASH
) const =0

Reimplemented by: cvedia::rt::UnifiedBuffer::resizeAndCopy

function resizeAndCopy

virtual NODISCARD expected< cbuffer > resizeAndCopy(
    Size size,
    builtin::ResizeMethod resizeMethod,
    std::string const & interpolationMethod
) const =0

Reimplemented by: cvedia::rt::UnifiedBuffer::resizeAndCopy

function resizeAndCopyRegion

virtual NODISCARD expected< cbuffer > resizeAndCopyRegion(
    Size size,
    builtin::ResizeMethod resizeMethod,
    std::optional< Rect2f > const & region,
    bool relative,
    std::optional< BufferDataType > const & destType
) const =0

Reimplemented by: cvedia::rt::UnifiedBuffer::resizeAndCopyRegion

function resizeAndCopyRegion

virtual NODISCARD expected< cbuffer > resizeAndCopyRegion(
    Size size,
    builtin::ResizeMethod resizeMethod,
    std::string const & interpolationMethod,
    std::optional< Rect2f > const & region,
    bool relative,
    std::optional< BufferDataType > const & destType
) const =0

Reimplemented by: cvedia::rt::UnifiedBuffer::resizeAndCopyRegion

function pixelate

virtual NODISCARD expected< void > pixelate(
    cv::Mat mask,
    int blockSize
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::pixelate

function pixelate

virtual NODISCARD expected< void > pixelate(
    float x,
    float y,
    float w,
    float h,
    int blockSize
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::pixelate

function rotate90deg

virtual NODISCARD expected< void > rotate90deg(
    int times
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::rotate90deg

function brightness

virtual void brightness(
    double delta
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::brightness

function bgr2rgb

virtual void bgr2rgb() =0

Reimplemented by: cvedia::rt::UnifiedBuffer::bgr2rgb

function toTransportUri

virtual NODISCARD expected< void > toTransportUri(
    std::string const & targetTransportUri
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::toTransportUri

function toDataType

virtual NODISCARD expected< void > toDataType(
    BufferDataType dataType
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::toDataType

function setColor

virtual void setColor(
    float color[3]
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::setColor

function grayscale

virtual NODISCARD expected< void > grayscale(
    bool singleChannel
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::grayscale

function grayscaleCopy

virtual NODISCARD expected< cbuffer > grayscaleCopy(
    bool singleChannel
) const =0

Reimplemented by: cvedia::rt::UnifiedBuffer::grayscaleCopy

function invert

virtual NODISCARD expected< void > invert() =0

Reimplemented by: cvedia::rt::UnifiedBuffer::invert

function blur

virtual void blur(
    cv::Mat mask,
    double amount
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::blur

function blur

virtual void blur(
    float x,
    float y,
    float w,
    float h,
    double amount
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::blur

function fishToPano

virtual NODISCARD expected< void > fishToPano(
    float xOffset,
    float yOffset
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::fishToPano

function clahe

virtual void clahe(
    int const & clipLimit,
    int const & tileGridSizeX,
    int const & tileGridSizeY
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::clahe

function meanStdDev

virtual cmap meanStdDev() =0

Reimplemented by: cvedia::rt::UnifiedBuffer::meanStdDev

function split

virtual NODISCARD expected< std::vector< cbuffer > > split() const =0

Reimplemented by: cvedia::rt::UnifiedBuffer::split

function syncStream

virtual void syncStream() const =0

Reimplemented by: cvedia::rt::UnifiedBuffer::syncStream

function syncToStream

virtual void syncToStream(
    void * targetStream
) const =0

Reimplemented by: cvedia::rt::UnifiedBuffer::syncToStream

function fill

virtual NODISCARD expected< void > fill(
    cbuffer const & mask,
    float color[3]
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::fill

function fill

virtual NODISCARD expected< void > fill(
    float color[3],
    int opacity
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::fill

function drawLine

virtual NODISCARD expected< void > drawLine(
    Point2f const & src,
    Point2f const & dest,
    float color[3],
    int thickness
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::drawLine

function drawRect

virtual NODISCARD expected< void > drawRect(
    Rect2f const & pos,
    float color[3],
    int thickness
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::drawRect

function drawPoly

virtual NODISCARD expected< void > drawPoly(
    std::vector< Point2f > const & pts,
    float color[3],
    double alpha
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::drawPoly

function drawPolyLine

virtual NODISCARD expected< void > drawPolyLine(
    std::vector< Point2f > const & pts,
    float color[3],
    int thickness
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::drawPolyLine

function drawCircle

virtual NODISCARD expected< void > drawCircle(
    Point2f const & center,
    int radius,
    float color[3],
    int thickness
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::drawCircle

function writeText

virtual NODISCARD expected< void > writeText(
    Point2f const & pos,
    std::string const & text,
    float color[3],
    int fontface,
    double fontscale,
    int thickness
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::writeText

function writeTextAutoSize

virtual NODISCARD expected< void > writeTextAutoSize(
    Point2f const & pos,
    std::string const & text,
    float color[3],
    int fontface,
    int genericSize
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::writeTextAutoSize

function getTextAutoSize

virtual NODISCARD expected< std::pair< int, int > > getTextAutoSize(
    std::string const & text,
    int fontface,
    int genericSize
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::getTextAutoSize

function drawBoundingBox

virtual NODISCARD expected< void > drawBoundingBox(
    Rect2f const & pos,
    std::string const & label,
    float color[3],
    int thickness
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::drawBoundingBox

function allocate

virtual void allocate(
    int width,
    int height,
    BufferDataType type
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::allocate

function fromData

virtual NODISCARD expected< void > fromData(
    int width,
    int height,
    BufferDataType type,
    void * data,
    size_t step =0
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::fromData

function mergeChannels

virtual NODISCARD expected< void > mergeChannels(
    cbuffer const & r,
    cbuffer const & g,
    cbuffer const & b
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::mergeChannels

function horizontalConcat

virtual NODISCARD expected< void > horizontalConcat(
    cbuffer const & left,
    cbuffer const & right
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::horizontalConcat

function loadImage

virtual NODISCARD expected< void > loadImage(
    std::string const & filename
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::loadImage

function decodeImage

virtual NODISCARD expected< void > decodeImage(
    void * data,
    int data_size
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::decodeImage

function saveImage

virtual NODISCARD expected< void > saveImage(
    std::string const & fileName
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::saveImage

function encodeImage

virtual NODISCARD expected< std::vector< unsigned char > > encodeImage() =0

Reimplemented by: cvedia::rt::UnifiedBuffer::encodeImage

function base64Encode

virtual std::string base64Encode() =0

Reimplemented by: cvedia::rt::UnifiedBuffer::base64Encode

function base64Decode

virtual bool base64Decode(
    std::string const & base64String
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::base64Decode

function getSize

virtual Size getSize() const =0

Reimplemented by: cvedia::rt::UnifiedBuffer::getSize

function getChannels

virtual int getChannels() const =0

Reimplemented by: cvedia::rt::UnifiedBuffer::getChannels

function getTransportUri

virtual std::string getTransportUri() const =0

Reimplemented by: cvedia::rt::UnifiedBuffer::getTransportUri

function getStride

virtual size_t getStride() const =0

Get the row stride (bytes per row) for the buffer's primary plane.

Return: Row stride in bytes, or 0 if buffer is empty/uninitialized

Note:

  • GPU backends typically return stride >= width*channels due to alignment
  • For YUV formats, chroma plane strides may differ (see backend documentation)

Reimplemented by: cvedia::rt::UnifiedBuffer::getStride

For simple formats (BGR, BGRA, GRAY), returns the stride of the full image. For YUV formats (NV12, YV12), returns the stride of the Y (luma) plane.

The stride may be larger than width*channels due to memory alignment requirements, especially on GPU backends which use pitched allocation.

function getData

virtual void * getData() =0

Reimplemented by: cvedia::rt::UnifiedBuffer::getData

function getData

virtual void const * getData() const =0

Reimplemented by: cvedia::rt::UnifiedBuffer::getData

function getStream

virtual void * getStream() const =0

Reimplemented by: cvedia::rt::UnifiedBuffer::getStream

function setStream

virtual void setStream(
    void * stream
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::setStream

function getBackendPtr

virtual void * getBackendPtr() const =0

Reimplemented by: cvedia::rt::UnifiedBuffer::getBackendPtr

function timestamp

inline void timestamp(
    double timestamp
)

function timestamp

inline double timestamp() const

function frameid

inline void frameid(
    int frameid
)

function frameid

inline int frameid() const

function dataType

virtual BufferDataType dataType() const =0

Reimplemented by: cvedia::rt::UnifiedBuffer::dataType

function dataType

virtual void dataType(
    BufferDataType 
) =0

Reimplemented by: cvedia::rt::UnifiedBuffer::dataType

function dataTypeToString

static inline std::string dataTypeToString(
    BufferDataType type
)

function dataTypeFromString

static inline BufferDataType dataTypeFromString(
    std::string const & str
)