CVD 0.8
|
Play a series of image files as a video stream. More...
#include <diskbuffer2.h>
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) |
Play a series of image files as a video stream.
Provides frames of type CVD::DiskBuffer2Frame and throws exceptions of type CVD::Exceptions::DiskBuffer2
T | The 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.
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);
names | The filenames to use (played in the order that they are in the vector) |
fps | The frames per second to report for this VideoBuffer |
eob | What 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().
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.
f | The frame that you are finished with. |
Implements CVD::LocalVideoBuffer< T >.
Definition at line 227 of file diskbuffer2.h.
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)
t | The frame time in seconds |
Reimplemented from CVD::LocalVideoBuffer< T >.
Definition at line 242 of file diskbuffer2.h.
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?
eob | The desired behaviour |
Definition at line 115 of file diskbuffer2.h.
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.
gl | The pattern from which to generate the strings |