#include <diskbuffer2.h>
Public Member Functions | |
DiskBuffer2 (const std::vector< std::string > &names, double fps, VideoBufferFlags::OnEndOfBuffer eob=VideoBufferFlags::RepeatLastFrame) | |
virtual bool | frame_pending () |
virtual double | frame_rate () |
What is the (expected) frame rate of this video buffer, in frames per second? | |
virtual DiskBuffer2Frame< T > * | get_frame () |
Returns the next frame from the buffer. This function blocks until a frame is ready. | |
virtual void | on_end_of_buffer (VideoBufferFlags::OnEndOfBuffer eob) |
virtual void | put_frame (VideoFrame< T > *f) |
virtual void | seek_to (double t) |
virtual ImageRef | size () |
The size of the VideoFrames returned by this buffer. | |
Protected Attributes | |
VideoBufferFlags::OnEndOfBuffer | end_of_buffer_behaviour |
std::vector< std::string > | file_names |
bool | frame_ready |
double | frames_per_sec |
ImageRef | my_size |
int | next_frame |
double | start_time |
double | time_per_frame |
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 88 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 134 of file diskbuffer2.h.
virtual bool CVD::DiskBuffer2< T >::frame_pending | ( | ) | [inline, virtual] |
Is there another frame waiting in the buffer? By default, this always returns true, but if the VideoBufferFlags::OnEndOfBuffer setting is VideoBufferFlags::UnsetPending, this will return false after the last frame has been returned by get_frame()
Implements CVD::LocalVideoBuffer< T >.
Definition at line 104 of file diskbuffer2.h.
virtual double CVD::DiskBuffer2< T >::frame_rate | ( | ) | [inline, virtual] |
What is the (expected) frame rate of this video buffer, in frames per second?
Implements CVD::RawVideoBuffer.
Definition at line 115 of file diskbuffer2.h.
DiskBuffer2Frame< T > * CVD::DiskBuffer2< T >::get_frame | ( | ) | [inline, virtual] |
Returns the next frame from the buffer. This function blocks until a frame is ready.
Implements CVD::LocalVideoBuffer< T >.
Reimplemented in CVD::TimedDiskBuffer< T >.
Definition at line 172 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 112 of file diskbuffer2.h.
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 224 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 239 of file diskbuffer2.h.
virtual ImageRef CVD::DiskBuffer2< T >::size | ( | ) | [inline, virtual] |
The size of the VideoFrames returned by this buffer.
Implements CVD::LocalVideoBuffer< T >.
Definition at line 99 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 |
VideoBufferFlags::OnEndOfBuffer CVD::DiskBuffer2< T >::end_of_buffer_behaviour [protected] |
Definition at line 127 of file diskbuffer2.h.
std::vector<std::string> CVD::DiskBuffer2< T >::file_names [protected] |
Definition at line 126 of file diskbuffer2.h.
bool CVD::DiskBuffer2< T >::frame_ready [protected] |
Definition at line 125 of file diskbuffer2.h.
double CVD::DiskBuffer2< T >::frames_per_sec [protected] |
Definition at line 124 of file diskbuffer2.h.
ImageRef CVD::DiskBuffer2< T >::my_size [protected] |
Definition at line 121 of file diskbuffer2.h.
int CVD::DiskBuffer2< T >::next_frame [protected] |
Definition at line 122 of file diskbuffer2.h.
double CVD::DiskBuffer2< T >::start_time [protected] |
Definition at line 123 of file diskbuffer2.h.
double CVD::DiskBuffer2< T >::time_per_frame [protected] |
Definition at line 124 of file diskbuffer2.h.