CVD 0.8
Public Member Functions | Protected Attributes | Related Functions
CVD::DiskBuffer2< T > Class Template Reference

Play a series of image files as a video stream. More...

#include <diskbuffer2.h>

Inheritance diagram for CVD::DiskBuffer2< T >:
CVD::LocalVideoBuffer< T > CVD::VideoBuffer< T > CVD::RawVideoBuffer CVD::TimedDiskBuffer< T >

List of all members.

Public Member Functions

 DiskBuffer2 (const std::vector< std::string > &names, double fps, VideoBufferFlags::OnEndOfBuffer eob=VideoBufferFlags::RepeatLastFrame)
virtual ImageRef size ()
virtual bool frame_pending ()
virtual DiskBuffer2Frame< T > * get_frame ()
virtual void put_frame (VideoFrame< T > *f)
virtual void seek_to (double t)
virtual void on_end_of_buffer (VideoBufferFlags::OnEndOfBuffer eob)
virtual double frame_rate ()

Protected Attributes

ImageRef my_size
int next_frame
double start_time
double time_per_frame
double frames_per_sec
bool frame_ready
std::vector< std::string > file_names
VideoBufferFlags::OnEndOfBuffer end_of_buffer_behaviour

Related Functions

(Note that these are not member functions.)

std::vector< std::string > globlist (const std::string &gl)

Detailed Description

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

Play a series of image files as a video stream.

Provides frames of type CVD::DiskBuffer2Frame and throws exceptions of type CVD::Exceptions::DiskBuffer2

TThe pixel type of the frames to provide (usually CVD::Rgb<CVD::byte> or CVD::byte. If the image files are of a different type, they will be automatically converted (see Image loading and saving, and format conversion).

Definition at line 91 of file diskbuffer2.h.

Constructor & Destructor Documentation

template<typename T >
CVD::DiskBuffer2< T >::DiskBuffer2 ( const std::vector< std::string > &  names,
double  fps,
VideoBufferFlags::OnEndOfBuffer  eob = VideoBufferFlags::RepeatLastFrame 
) [inline]

Construct a DiskBuffer2 from a vector of filenames.

Typically the globlist() helper function is used to provide the filenames e.g. DiskBuffer2 buffer(globlist("~/Images/lab*.jpg"), 25);

namesThe filenames to use (played in the order that they are in the vector)
fpsThe frames per second to report for this VideoBuffer
eobWhat should the buffer do when it reaches the end of the list of files?

Definition at line 137 of file diskbuffer2.h.

References CVD::img_load(), and CVD::SubImage< T >::size().

Member Function Documentation

template<typename T >
void CVD::DiskBuffer2< T >::put_frame ( VideoFrame< T > *  f) [inline, virtual]

Tell the buffer that you are finished with this frame.

Typically the VideoBuffer then destroys the frame.

fThe frame that you are finished with.

Implements CVD::LocalVideoBuffer< T >.

Definition at line 227 of file diskbuffer2.h.

template<typename T >
void CVD::DiskBuffer2< T >::seek_to ( double  ) [inline, virtual]

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

tThe frame time in seconds

Reimplemented from CVD::LocalVideoBuffer< T >.

Definition at line 242 of file diskbuffer2.h.

template<typename T>
virtual void CVD::DiskBuffer2< T >::on_end_of_buffer ( VideoBufferFlags::OnEndOfBuffer  eob) [inline, virtual]

What should the buffer do when it reaches the end of the list of files?

eobThe desired behaviour

Definition at line 115 of file diskbuffer2.h.

Friends And Related Function Documentation

template<typename T>
std::vector< std::string > globlist ( const std::string &  gl) [related]

Make a list of strings from a UNIX-style pattern pathname expansion.

Tilde expansion is done, and * ? [] and {} can all be used as normal. The filenames are returned in alphabetical (and numerical) order.

glThe pattern from which to generate the strings

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