CVD 0.8
Public Member Functions
CVD::VideoBuffer< T > Class Template Reference

Base class for objects which provide a typed video stream. More...

#include <videobuffer.h>

Inheritance diagram for CVD::VideoBuffer< T >:
CVD::RawVideoBuffer CVD::DeinterlaceBuffer< T > CVD::DVBuffer2< T > CVD::LocalVideoBuffer< T > CVD::ReadAheadVideoBuffer< T > CVD::V4L1Buffer< T > CVD::V4L2BufferT< T > CVD::V4LBuffer< T > CVD::VideoBufferWithData< T, D >

List of all members.

Public Member Functions

 VideoBuffer (VideoBufferType::Type _type)
virtual VideoFrame< T > * get_frame ()=0
virtual void put_frame (VideoFrame< T > *f)=0
virtual void flush ()
VideoBufferType::Type type ()

Detailed Description

template<class T>
class CVD::VideoBuffer< T >

Base class for objects which provide a typed video stream.

A video stream is a sequence of video frames (derived from VideoFrame).

Parameters:
TThe pixel type of the video frames

Definition at line 110 of file videobuffer.h.


Member Function Documentation

template<class T>
virtual void CVD::VideoBuffer< T >::put_frame ( VideoFrame< T > *  f) [pure virtual]
template<class T>
virtual void CVD::VideoBuffer< T >::flush ( ) [inline, virtual]

Flush all old frames out of the video buffer, on a flushable buffer, causing the next get_frame() to sleep until a frame arrives.

On a non-flushable buffer, this does nothing.

Implements CVD::RawVideoBuffer.

Reimplemented in CVD::VideoBufferWithData< T, D >.

Definition at line 128 of file videobuffer.h.

template<class T>
VideoBufferType::Type CVD::VideoBuffer< T >::type ( ) [inline]

Returns the type of the video stream.

A video with live semantics has frames fed at some externally controlled rate, such as from a video camera.

A stream with live semantics also may be flushable, in that all current frames can be removed from the stream while frame_pending() is 1, and then the next get_frame() will sleep until a frame arrives. This ensures that the latency is low by discarding any old frames. Buffers flushable in this manner have a type of VideoBuffer::Type::Flushable.

Some live streams are not flushable because it is not possible to determine the state of frame_pending(). These have the type VideoBuffer::Type::Live, and frame_pending() is always 1.

Otherwise, streams have a type VideoBuffer::Type::NotLive, and frame_pending is always 1

This should be in the base class

Definition at line 156 of file videobuffer.h.

Referenced by CVD::VideoBuffer< Rgb8 >::flush().


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