libcvd
Public Types | Public Member Functions | List of all members
CVD::SkipBuffer< T > Class Template Reference

A decorator class which wraps a VideoBuffer to skip frames. More...

#include <skipbuffer.h>

Inheritance diagram for CVD::SkipBuffer< T >:
Inheritance graph
[legend]
Collaboration diagram for CVD::SkipBuffer< T >:
Collaboration graph
[legend]

Public Types

typedef DeinterlaceBufferFields Fields
 

Public Member Functions

 SkipBuffer (CVD::VideoBuffer< T > &buf, bool do_seek, double seek, int drop_)
 Construct a DeinterlaceBuffer by wrapping it around another VideoBuffer. More...
 
ImageRef size ()
 The size of the VideoFrames returns by this buffer. More...
 
CVD::VideoFrame< T > * get_frame ()
 Returns the next frame from the buffer. This function blocks until a frame is ready.
 
virtual RawVideoBuffersource_buffer ()
 Which video grabber provides the source images for this video grabber. More...
 
void put_frame (CVD::VideoFrame< T > *f)
 Tell the buffer that you are finished with this frame. More...
 
virtual bool frame_pending ()
 Is there a frame waiting in the buffer? This function does not block. More...
 
virtual void seek_to (double t)
 Go to a particular point in the video buffer (only implemented in buffers of recorded video) More...
 
virtual double frame_rate ()
 What is the (expected) frame rate of this video buffer, in frames per second?
 
- Public Member Functions inherited from CVD::VideoBuffer< T >
 VideoBuffer (VideoBufferType::Type _type)
 Construct the buffer with the known semantics.
 
virtual void flush ()
 Flush all old frames out of the video buffer, on a flushable buffer, causing the next get_frame() to sleep until a frame arrives. More...
 
VideoBufferType::Type type ()
 Returns the type of the video stream. More...
 
- Public Member Functions inherited from CVD::RawVideoBuffer
RawVideoBufferroot_buffer ()
 Follow the chain of video grabbers back as far as at will go. More...
 

Detailed Description

template<typename T>
class CVD::SkipBuffer< T >

A decorator class which wraps a VideoBuffer to skip frames.

Parameters
TThe pixel type of the original VideoBuffer

Constructor & Destructor Documentation

◆ SkipBuffer()

template<typename T >
CVD::SkipBuffer< T >::SkipBuffer ( CVD::VideoBuffer< T > &  buf,
bool  do_seek,
double  seek,
int  drop_ 
)
inline

Construct a DeinterlaceBuffer by wrapping it around another VideoBuffer.

Parameters
bufThe buffer that will provide the raw frames
fieldsThe fields to

Member Function Documentation

◆ frame_pending()

template<typename T >
virtual bool CVD::SkipBuffer< T >::frame_pending ( )
inlinevirtual

Is there a frame waiting in the buffer? This function does not block.

See is_live and is_flushable.

Implements CVD::RawVideoBuffer.

◆ put_frame()

template<typename T >
void CVD::SkipBuffer< T >::put_frame ( CVD::VideoFrame< T > *  f)
inlinevirtual

Tell the buffer that you are finished with this frame.

Typically the VideoBuffer then destroys the frame.

Parameters
fThe frame that you are finished with.

Implements CVD::VideoBuffer< T >.

◆ seek_to()

template<typename T >
virtual void CVD::SkipBuffer< T >::seek_to ( double  )
inlinevirtual

Go to a particular point in the video buffer (only implemented in buffers of recorded video)

Parameters
tThe frame time in seconds

Reimplemented from CVD::RawVideoBuffer.

◆ size()

template<typename T >
ImageRef CVD::SkipBuffer< T >::size ( )
inlinevirtual

The size of the VideoFrames returns by this buffer.

This will be half the height of the original frames.

Implements CVD::RawVideoBuffer.

◆ source_buffer()

template<typename T >
virtual RawVideoBuffer* CVD::SkipBuffer< T >::source_buffer ( )
inlinevirtual

Which video grabber provides the source images for this video grabber.

Reimplemented from CVD::RawVideoBuffer.


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