cvedia::rt::UnifiedBuffer¶
UnifiedBuffer - Complete implementation of iface::Buffer that delegates to backend plugins. More...
#include <unified_buffer.h>
Inherits from Buffer
Public Functions¶
| Name | |
|---|---|
| UnifiedBuffer(BufferDataType dataType, std::string const & transportUri ="cpu://") | |
| ~UnifiedBuffer() override | |
| UnifiedBuffer(UnifiedBuffer const & other) | |
| UnifiedBuffer & | operator=(UnifiedBuffer const & other) |
| UnifiedBuffer(UnifiedBuffer && other) | |
| UnifiedBuffer & | operator=(UnifiedBuffer && other) |
| virtual cbuffer | copy() const override |
| virtual cbuffer | copy(double scaleFactor) const override |
| virtual cbuffer | copy(Rect2f const & rc, bool relative) const override |
| virtual cbuffer | downloadAsGrayscale() const override |
| virtual expected< cbuffer > | region(Rect2f const & rc, bool relative) const override |
| virtual expected< void > | copyToRegion(Rect2f const & rc, bool relative, cbuffer destBuffer, Rect2f const & rectDest, bool destRelative) override |
| virtual expected< void > | batchCopyRegionsToCanvas(std::vector< RegionCopyOp > const & ops, cbuffer destCanvas) const override |
| virtual expected< void > | resize(Size size, builtin::ResizeMethod resizeMethod =builtin::ResizeMethod::SQUASH) override |
| virtual expected< void > | resize(Size size, builtin::ResizeMethod resizeMethod, std::string const & interpolationMethod) override |
| virtual expected< cbuffer > | resizeAndCopy(Size size, builtin::ResizeMethod resizeMethod =builtin::ResizeMethod::SQUASH) const override |
| virtual expected< cbuffer > | resizeAndCopy(Size size, builtin::ResizeMethod resizeMethod, std::string const & interpolationMethod) const override |
| virtual expected< cbuffer > | resizeAndCopyRegion(Size size, builtin::ResizeMethod resizeMethod, std::optional< Rect2f > const & region, bool relative, std::optional< BufferDataType > const & destType) const override |
| virtual 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 override |
| virtual expected< void > | pixelate(cv::Mat mask, int blockSize) override |
| virtual expected< void > | pixelate(float x, float y, float w, float h, int blockSize) override |
| virtual expected< void > | rotate90deg(int times) override |
| virtual void | brightness(double delta) override |
| virtual void | bgr2rgb() override |
| virtual expected< void > | toTransportUri(std::string const & targetTransportUri) override |
| virtual expected< void > | toDataType(BufferDataType dataType) override |
| virtual void | setColor(float color[3]) override |
| virtual expected< void > | grayscale(bool singleChannel) override |
| virtual expected< cbuffer > | grayscaleCopy(bool singleChannel) const override |
| virtual expected< void > | invert() override |
| virtual void | blur(cv::Mat mask, double amount) override |
| virtual void | blur(float x, float y, float w, float h, double amount) override |
| virtual expected< void > | fishToPano(float xOffset, float yOffset) override |
| virtual void | clahe(int const & clipLimit, int const & tileGridSizeX, int const & tileGridSizeY) override |
| virtual cmap | meanStdDev() override |
| virtual expected< std::vector< cbuffer > > | split() const override |
| virtual void | syncStream() const override |
| virtual void | syncToStream(void * targetStream) const override |
| virtual void * | getStream() const override |
| virtual void | setStream(void * stream) override |
| virtual expected< void > | fill(cbuffer const & mask, float color[3]) override |
| virtual expected< void > | fill(float color[3], int opacity) override |
| virtual expected< void > | drawLine(Point2f const & src, Point2f const & dest, float color[3], int thickness) override |
| virtual expected< void > | drawRect(Rect2f const & pos, float color[3], int thickness) override |
| virtual expected< void > | drawPoly(std::vector< Point2f > const & pts, float color[3], double alpha) override |
| virtual expected< void > | drawPolyLine(std::vector< Point2f > const & pts, float color[3], int thickness) override |
| virtual expected< void > | drawCircle(Point2f const & center, int radius, float color[3], int thickness) override |
| virtual expected< void > | writeText(Point2f const & pos, std::string const & text, float color[3], int fontface, double fontscale, int thickness) override |
| virtual expected< void > | writeTextAutoSize(Point2f const & pos, std::string const & text, float color[3], int fontface, int genericSize) override |
| virtual expected< std::pair< int, int > > | getTextAutoSize(std::string const & text, int fontface, int genericSize) override |
| virtual expected< void > | drawBoundingBox(Rect2f const & pos, std::string const & label, float color[3], int thickness) override |
| virtual void | allocate(int width, int height, BufferDataType type) override |
| virtual expected< void > | fromData(int width, int height, BufferDataType type, void * data, size_t step =0) override |
| virtual expected< void > | mergeChannels(cbuffer const & b, cbuffer const & g, cbuffer const & r) override |
| virtual expected< void > | loadImage(std::string const & filename) override |
| virtual expected< void > | decodeImage(void * data, int data_size) override |
| void | allocate(int width, int height, BufferDataType type, std::string const & transportUri) |
| expected< void > | fromData(int width, int height, BufferDataType type, void * data, size_t step, std::string const & transportUri) |
| expected< void > | mergeChannels(cbuffer const & b, cbuffer const & g, cbuffer const & r, std::string const & transportUri) |
| expected< void > | loadImage(std::string const & filename, std::string const & transportUri) |
| expected< void > | decodeImage(void * data, int data_size, std::string const & transportUri) |
| virtual expected< void > | horizontalConcat(cbuffer const & left, cbuffer const & right) override |
| virtual expected< void > | saveImage(std::string const & fileName) override |
| virtual expected< std::vector< unsigned char > > | encodeImage() override |
| virtual std::string | base64Encode() override |
| virtual bool | base64Decode(std::string const & base64String) override |
| virtual Size | getSize() const override |
| virtual int | getChannels() const override |
| virtual std::string | getTransportUri() const override |
| virtual size_t | getStride() const override Get the row stride (bytes per row) for the buffer's primary plane. |
| virtual BufferDataType | dataType() const override |
| virtual void | dataType(BufferDataType dt) override |
| virtual void * | getData() override |
| virtual void const * | getData() const override |
| virtual void * | getBackendPtr() const override |
| void | setLedgerEnabled(bool enabled) |
| bool | isLedgerEnabled() const |
| BufferLedger const & | getLedger() const |
| std::string | getLedgerAsString() const |
| void | clearLedger() |
| void | printLedger(std::ostream & os) const |
| void | adoptBackend(iface::BufferBackend * backend) |
| void | create(BufferInit * init) |
Public Attributes¶
| Name | |
|---|---|
| BufferOwnership | ownership_ |
| std::shared_ptr< void > | keepAlive_ |
| std::unique_ptr< iface::BufferBackend > | activeBackend_ |
Additional inherited members¶
Public Functions inherited from Buffer
| Name | |
|---|---|
| virtual | ~Buffer() =default |
| void | timestamp(double timestamp) |
| double | timestamp() const |
| void | frameid(int frameid) |
| int | frameid() const |
| std::string | dataTypeToString(BufferDataType type) |
| BufferDataType | dataTypeFromString(std::string const & str) |
Detailed Description¶
class cvedia::rt::UnifiedBuffer;
UnifiedBuffer - Complete implementation of iface::Buffer that delegates to backend plugins.
Replaces BufferImpl. Owns:
- dataType, storageType, timestamp, frameid (via iface::Buffer base)
- Buffer ledger for operation tracking
- Single active backend instance All operations delegate to the active backend. Storage conversion happens via cv::Mat using backend download/upload hooks.
Public Functions Documentation¶
function UnifiedBuffer¶
UnifiedBuffer(
BufferDataType dataType,
std::string const & transportUri ="cpu://"
)
function ~UnifiedBuffer¶
~UnifiedBuffer() override
function UnifiedBuffer¶
UnifiedBuffer(
UnifiedBuffer const & other
)
function operator=¶
UnifiedBuffer & operator=(
UnifiedBuffer const & other
)
function UnifiedBuffer¶
UnifiedBuffer(
UnifiedBuffer && other
)
function operator=¶
UnifiedBuffer & operator=(
UnifiedBuffer && other
)
function copy¶
virtual cbuffer copy() const override
Reimplements: cvedia::rt::iface::Buffer::copy
function copy¶
virtual cbuffer copy(
double scaleFactor
) const override
Reimplements: cvedia::rt::iface::Buffer::copy
function copy¶
virtual cbuffer copy(
Rect2f const & rc,
bool relative
) const override
Reimplements: cvedia::rt::iface::Buffer::copy
function downloadAsGrayscale¶
virtual cbuffer downloadAsGrayscale() const override
Reimplements: cvedia::rt::iface::Buffer::downloadAsGrayscale
function region¶
virtual expected< cbuffer > region(
Rect2f const & rc,
bool relative
) const override
Reimplements: cvedia::rt::iface::Buffer::region
function copyToRegion¶
virtual expected< void > copyToRegion(
Rect2f const & rc,
bool relative,
cbuffer destBuffer,
Rect2f const & rectDest,
bool destRelative
) override
Reimplements: cvedia::rt::iface::Buffer::copyToRegion
function batchCopyRegionsToCanvas¶
virtual expected< void > batchCopyRegionsToCanvas(
std::vector< RegionCopyOp > const & ops,
cbuffer destCanvas
) const override
Reimplements: cvedia::rt::iface::Buffer::batchCopyRegionsToCanvas
function resize¶
virtual expected< void > resize(
Size size,
builtin::ResizeMethod resizeMethod =builtin::ResizeMethod::SQUASH
) override
Reimplements: cvedia::rt::iface::Buffer::resize
function resize¶
virtual expected< void > resize(
Size size,
builtin::ResizeMethod resizeMethod,
std::string const & interpolationMethod
) override
Reimplements: cvedia::rt::iface::Buffer::resize
function resizeAndCopy¶
virtual expected< cbuffer > resizeAndCopy(
Size size,
builtin::ResizeMethod resizeMethod =builtin::ResizeMethod::SQUASH
) const override
Reimplements: cvedia::rt::iface::Buffer::resizeAndCopy
function resizeAndCopy¶
virtual expected< cbuffer > resizeAndCopy(
Size size,
builtin::ResizeMethod resizeMethod,
std::string const & interpolationMethod
) const override
Reimplements: cvedia::rt::iface::Buffer::resizeAndCopy
function resizeAndCopyRegion¶
virtual expected< cbuffer > resizeAndCopyRegion(
Size size,
builtin::ResizeMethod resizeMethod,
std::optional< Rect2f > const & region,
bool relative,
std::optional< BufferDataType > const & destType
) const override
Reimplements: cvedia::rt::iface::Buffer::resizeAndCopyRegion
function resizeAndCopyRegion¶
virtual 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 override
Reimplements: cvedia::rt::iface::Buffer::resizeAndCopyRegion
function pixelate¶
virtual expected< void > pixelate(
cv::Mat mask,
int blockSize
) override
Reimplements: cvedia::rt::iface::Buffer::pixelate
function pixelate¶
virtual expected< void > pixelate(
float x,
float y,
float w,
float h,
int blockSize
) override
Reimplements: cvedia::rt::iface::Buffer::pixelate
function rotate90deg¶
virtual expected< void > rotate90deg(
int times
) override
Reimplements: cvedia::rt::iface::Buffer::rotate90deg
function brightness¶
virtual void brightness(
double delta
) override
Reimplements: cvedia::rt::iface::Buffer::brightness
function bgr2rgb¶
virtual void bgr2rgb() override
Reimplements: cvedia::rt::iface::Buffer::bgr2rgb
function toTransportUri¶
virtual expected< void > toTransportUri(
std::string const & targetTransportUri
) override
Reimplements: cvedia::rt::iface::Buffer::toTransportUri
function toDataType¶
virtual expected< void > toDataType(
BufferDataType dataType
) override
Reimplements: cvedia::rt::iface::Buffer::toDataType
function setColor¶
virtual void setColor(
float color[3]
) override
Reimplements: cvedia::rt::iface::Buffer::setColor
function grayscale¶
virtual expected< void > grayscale(
bool singleChannel
) override
Reimplements: cvedia::rt::iface::Buffer::grayscale
function grayscaleCopy¶
virtual expected< cbuffer > grayscaleCopy(
bool singleChannel
) const override
Reimplements: cvedia::rt::iface::Buffer::grayscaleCopy
function invert¶
virtual expected< void > invert() override
Reimplements: cvedia::rt::iface::Buffer::invert
function blur¶
virtual void blur(
cv::Mat mask,
double amount
) override
Reimplements: cvedia::rt::iface::Buffer::blur
function blur¶
virtual void blur(
float x,
float y,
float w,
float h,
double amount
) override
Reimplements: cvedia::rt::iface::Buffer::blur
function fishToPano¶
virtual expected< void > fishToPano(
float xOffset,
float yOffset
) override
Reimplements: cvedia::rt::iface::Buffer::fishToPano
function clahe¶
virtual void clahe(
int const & clipLimit,
int const & tileGridSizeX,
int const & tileGridSizeY
) override
Reimplements: cvedia::rt::iface::Buffer::clahe
function meanStdDev¶
virtual cmap meanStdDev() override
Reimplements: cvedia::rt::iface::Buffer::meanStdDev
function split¶
virtual expected< std::vector< cbuffer > > split() const override
Reimplements: cvedia::rt::iface::Buffer::split
function syncStream¶
virtual void syncStream() const override
Reimplements: cvedia::rt::iface::Buffer::syncStream
function syncToStream¶
virtual void syncToStream(
void * targetStream
) const override
Reimplements: cvedia::rt::iface::Buffer::syncToStream
function getStream¶
virtual void * getStream() const override
Reimplements: cvedia::rt::iface::Buffer::getStream
function setStream¶
virtual void setStream(
void * stream
) override
Reimplements: cvedia::rt::iface::Buffer::setStream
function fill¶
virtual expected< void > fill(
cbuffer const & mask,
float color[3]
) override
Reimplements: cvedia::rt::iface::Buffer::fill
function fill¶
virtual expected< void > fill(
float color[3],
int opacity
) override
Reimplements: cvedia::rt::iface::Buffer::fill
function drawLine¶
virtual expected< void > drawLine(
Point2f const & src,
Point2f const & dest,
float color[3],
int thickness
) override
Reimplements: cvedia::rt::iface::Buffer::drawLine
function drawRect¶
virtual expected< void > drawRect(
Rect2f const & pos,
float color[3],
int thickness
) override
Reimplements: cvedia::rt::iface::Buffer::drawRect
function drawPoly¶
virtual expected< void > drawPoly(
std::vector< Point2f > const & pts,
float color[3],
double alpha
) override
Reimplements: cvedia::rt::iface::Buffer::drawPoly
function drawPolyLine¶
virtual expected< void > drawPolyLine(
std::vector< Point2f > const & pts,
float color[3],
int thickness
) override
Reimplements: cvedia::rt::iface::Buffer::drawPolyLine
function drawCircle¶
virtual expected< void > drawCircle(
Point2f const & center,
int radius,
float color[3],
int thickness
) override
Reimplements: cvedia::rt::iface::Buffer::drawCircle
function writeText¶
virtual expected< void > writeText(
Point2f const & pos,
std::string const & text,
float color[3],
int fontface,
double fontscale,
int thickness
) override
Reimplements: cvedia::rt::iface::Buffer::writeText
function writeTextAutoSize¶
virtual expected< void > writeTextAutoSize(
Point2f const & pos,
std::string const & text,
float color[3],
int fontface,
int genericSize
) override
Reimplements: cvedia::rt::iface::Buffer::writeTextAutoSize
function getTextAutoSize¶
virtual expected< std::pair< int, int > > getTextAutoSize(
std::string const & text,
int fontface,
int genericSize
) override
Reimplements: cvedia::rt::iface::Buffer::getTextAutoSize
function drawBoundingBox¶
virtual expected< void > drawBoundingBox(
Rect2f const & pos,
std::string const & label,
float color[3],
int thickness
) override
Reimplements: cvedia::rt::iface::Buffer::drawBoundingBox
function allocate¶
virtual void allocate(
int width,
int height,
BufferDataType type
) override
Reimplements: cvedia::rt::iface::Buffer::allocate
function fromData¶
virtual expected< void > fromData(
int width,
int height,
BufferDataType type,
void * data,
size_t step =0
) override
Reimplements: cvedia::rt::iface::Buffer::fromData
function mergeChannels¶
virtual expected< void > mergeChannels(
cbuffer const & b,
cbuffer const & g,
cbuffer const & r
) override
Reimplements: cvedia::rt::iface::Buffer::mergeChannels
function loadImage¶
virtual expected< void > loadImage(
std::string const & filename
) override
Reimplements: cvedia::rt::iface::Buffer::loadImage
function decodeImage¶
virtual expected< void > decodeImage(
void * data,
int data_size
) override
Reimplements: cvedia::rt::iface::Buffer::decodeImage
function allocate¶
void allocate(
int width,
int height,
BufferDataType type,
std::string const & transportUri
)
function fromData¶
expected< void > fromData(
int width,
int height,
BufferDataType type,
void * data,
size_t step,
std::string const & transportUri
)
function mergeChannels¶
expected< void > mergeChannels(
cbuffer const & b,
cbuffer const & g,
cbuffer const & r,
std::string const & transportUri
)
function loadImage¶
expected< void > loadImage(
std::string const & filename,
std::string const & transportUri
)
function decodeImage¶
expected< void > decodeImage(
void * data,
int data_size,
std::string const & transportUri
)
function horizontalConcat¶
virtual expected< void > horizontalConcat(
cbuffer const & left,
cbuffer const & right
) override
Reimplements: cvedia::rt::iface::Buffer::horizontalConcat
function saveImage¶
virtual expected< void > saveImage(
std::string const & fileName
) override
Reimplements: cvedia::rt::iface::Buffer::saveImage
function encodeImage¶
virtual expected< std::vector< unsigned char > > encodeImage() override
Reimplements: cvedia::rt::iface::Buffer::encodeImage
function base64Encode¶
virtual std::string base64Encode() override
Reimplements: cvedia::rt::iface::Buffer::base64Encode
function base64Decode¶
virtual bool base64Decode(
std::string const & base64String
) override
Reimplements: cvedia::rt::iface::Buffer::base64Decode
function getSize¶
virtual Size getSize() const override
Reimplements: cvedia::rt::iface::Buffer::getSize
function getChannels¶
virtual int getChannels() const override
Reimplements: cvedia::rt::iface::Buffer::getChannels
function getTransportUri¶
virtual std::string getTransportUri() const override
Reimplements: cvedia::rt::iface::Buffer::getTransportUri
function getStride¶
virtual size_t getStride() const override
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)
Reimplements: cvedia::rt::iface::Buffer::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 dataType¶
virtual BufferDataType dataType() const override
Reimplements: cvedia::rt::iface::Buffer::dataType
function dataType¶
virtual void dataType(
BufferDataType dt
) override
Reimplements: cvedia::rt::iface::Buffer::dataType
function getData¶
virtual void * getData() override
Reimplements: cvedia::rt::iface::Buffer::getData
function getData¶
virtual void const * getData() const override
Reimplements: cvedia::rt::iface::Buffer::getData
function getBackendPtr¶
virtual void * getBackendPtr() const override
Reimplements: cvedia::rt::iface::Buffer::getBackendPtr
function setLedgerEnabled¶
void setLedgerEnabled(
bool enabled
)
function isLedgerEnabled¶
bool isLedgerEnabled() const
function getLedger¶
BufferLedger const & getLedger() const
function getLedgerAsString¶
std::string getLedgerAsString() const
function clearLedger¶
void clearLedger()
function printLedger¶
void printLedger(
std::ostream & os
) const
function adoptBackend¶
void adoptBackend(
iface::BufferBackend * backend
)
function create¶
static void create(
BufferInit * init
)
Public Attributes Documentation¶
variable ownership_¶
BufferOwnership ownership_ = BufferOwnership::COPY;
variable keepAlive_¶
std::shared_ptr< void > keepAlive_;
variable activeBackend_¶
std::unique_ptr< iface::BufferBackend > activeBackend_;