NVIDIA DeepStream SDK API Reference

8.0 Release
deepstream::Buffer Class Reference

Detailed Description

Base class of a buffer.

Buffer is the fundamental wrapper of data and metadata trunks that flows through the pipeline. Buffer is reference based and supports copying and moving, however both copying and moving only affects the reference and never transfers the data.

Definition at line 46 of file buffer.hpp.

Inheritance diagram for deepstream::Buffer:

Data Structures

struct  _Latency
 Unified definition of latency for a buffer. More...
 

Public Types

typedef struct deepstream::Buffer::_Latency Latency
 Unified definition of latency for a buffer. More...
 
using FreeFunction = void(*)(void *)
 Signature of customized function for freeing data in a buffer. More...
 

Public Member Functions

 Buffer ()
 empty buffer constructor More...
 
 Buffer (size_t length, void *data=nullptr, FreeFunction=nullptr)
 New buffer constructor. More...
 
 Buffer (const std::vector< uint8_t >)
 New Buffer constructor. More...
 
 Buffer (OpaqueBuffer *buffer)
 New buffer constructor for OpaqueBuffer. More...
 
 Buffer (const Buffer &)
 Copy constructor. More...
 
 Buffer (Buffer &&)
 Move constructor. More...
 
Bufferoperator= (const Buffer &)
 Copy assignment. More...
 
Bufferoperator= (Buffer &&)
 Move assignment. More...
 
virtual ~Buffer ()
 Destructor. More...
 
 operator bool () const
 If the buffer is null. More...
 
size_t size () const
 Size of the buffer in bytes. More...
 
uint64_t timestamp () const
 Timestamp of the buffer. More...
 
int32_t chunkId (unsigned int batchId) const
 Chunk id of the buffer. More...
 
std::vector< LatencymeasureLatency () const
 Return latency data of the buffer. More...
 
virtual size_t read (std::function< size_t(const void *data, size_t len)> callable)
 Read data from the buffer. More...
 
virtual size_t write (std::function< size_t(void *data, size_t len)> callable)
 Write data to the buffer. More...
 
OpaqueBuffergive ()
 Give up the ownership of this buffer and return the opaque buffer pointer. More...
 
virtual size_t batchSize ()
 get the batch size of the buffer, 1 for un-batched buffer More...
 
virtual Tensorextract (unsigned int batchId)
 create a tensor object with the buffer data More...
 

Static Public Member Functions

static void wrap (Tensor *)
 wrap the tensor to a new buffer More...
 

Protected Attributes

OpaqueBufferbuffer_
 opaque buffer pointer More...
 
std::vector< int > chunk_ids_ = { 0 }
 chunk ids, optional More...
 

Member Typedef Documentation

◆ FreeFunction

using deepstream::Buffer::FreeFunction = void(*)(void*)

Signature of customized function for freeing data in a buffer.

Definition at line 59 of file buffer.hpp.

◆ Latency

Unified definition of latency for a buffer.

Constructor & Destructor Documentation

◆ Buffer() [1/6]

deepstream::Buffer::Buffer ( )

empty buffer constructor

◆ Buffer() [2/6]

deepstream::Buffer::Buffer ( size_t  length,
void *  data = nullptr,
FreeFunction  = nullptr 
)

New buffer constructor.

Create a new buffer with given size. User can choose pass a raw data pointer or request the default allocation.

Parameters
[in]lengthnumber of bytes used by the buffer
[in]dataif set null, default allocation will be used, otherwise, the buffer will take and own the provided pointer.

◆ Buffer() [3/6]

deepstream::Buffer::Buffer ( const std::vector< uint8_t >  )

New Buffer constructor.

Create a new buffer from a byte vector, used by python mostly

Parameters
[in]bytesbyte vector

◆ Buffer() [4/6]

deepstream::Buffer::Buffer ( OpaqueBuffer buffer)

New buffer constructor for OpaqueBuffer.

Create a new buffer from a OpaqueBuffer, for professionals who understands how Buffer Wrapper works

Parameters
[in]bufferpointer to a OpaqueBuffer

◆ Buffer() [5/6]

deepstream::Buffer::Buffer ( const Buffer )

Copy constructor.

◆ Buffer() [6/6]

deepstream::Buffer::Buffer ( Buffer &&  )

Move constructor.

◆ ~Buffer()

virtual deepstream::Buffer::~Buffer ( )
virtual

Destructor.

Member Function Documentation

◆ batchSize()

virtual size_t deepstream::Buffer::batchSize ( )
virtual

get the batch size of the buffer, 1 for un-batched buffer

◆ chunkId()

int32_t deepstream::Buffer::chunkId ( unsigned int  batchId) const

Chunk id of the buffer.

◆ extract()

virtual Tensor* deepstream::Buffer::extract ( unsigned int  batchId)
virtual

create a tensor object with the buffer data

◆ give()

OpaqueBuffer* deepstream::Buffer::give ( )

Give up the ownership of this buffer and return the opaque buffer pointer.

Referenced by deepstream::EnsembleRender::consume().

◆ measureLatency()

std::vector<Latency> deepstream::Buffer::measureLatency ( ) const

Return latency data of the buffer.

Referenced by deepstream::NvDsMeasureLatency::handleBuffer().

◆ operator bool()

deepstream::Buffer::operator bool ( ) const

If the buffer is null.

◆ operator=() [1/2]

Buffer& deepstream::Buffer::operator= ( Buffer &&  )

Move assignment.

◆ operator=() [2/2]

Buffer& deepstream::Buffer::operator= ( const Buffer )

Copy assignment.

◆ read()

virtual size_t deepstream::Buffer::read ( std::function< size_t(const void *data, size_t len)>  callable)
virtual

Read data from the buffer.

Parameters
[in]callablecallable provided by the caller to collect data

Reimplemented in deepstream::VideoBuffer.

◆ size()

size_t deepstream::Buffer::size ( ) const

Size of the buffer in bytes.

◆ timestamp()

uint64_t deepstream::Buffer::timestamp ( ) const

Timestamp of the buffer.

◆ wrap()

static void deepstream::Buffer::wrap ( Tensor )
static

wrap the tensor to a new buffer

◆ write()

virtual size_t deepstream::Buffer::write ( std::function< size_t(void *data, size_t len)>  callable)
virtual

Write data to the buffer.

Parameters
[in]callablecallable provided by the caller to inject data

Reimplemented in deepstream::VideoBuffer.

Referenced by deepstream::FileDataSource::read().

Field Documentation

◆ buffer_

OpaqueBuffer* deepstream::Buffer::buffer_
protected

opaque buffer pointer

Definition at line 164 of file buffer.hpp.

Referenced by deepstream::DS3DBuffer::DS3DBuffer().

◆ chunk_ids_

std::vector<int> deepstream::Buffer::chunk_ids_ = { 0 }
protected

chunk ids, optional

Definition at line 166 of file buffer.hpp.


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