cgv
Loading...
Searching...
No Matches
cgv::media::video::video_reader Class Reference

the video reader chooses a specific reader automatically based on the extension of the given file name More...

#include <video_reader.h>

Inheritance diagram for cgv::media::video::video_reader:
cgv::base::base cgv::data::ref_counted cgv::reflect::self_reflection_tag

Public Member Functions

 video_reader (cgv::data::data_format &image_format)
 construct a video reader from a reference to the image format, which will be set after opening a file.
 
 ~video_reader ()
 destruct reader and implementation
 
std::string get_type_name () const
 overload to return the type name of this object
 
std::string get_property_declarations ()
 return a semicolon separated list of property declarations of the form "name:type", by default an empty list is returned
 
const std::string & get_last_error () const
 return a reference to the last error message
 
bool open (const std::string &file_name)
 open the file and read the video header in order to determine the image format
 
const cgv::data::data_formatget_image_format () const
 return the image format of the video file
 
float get_fps () const
 return the frame rate
 
bool read_frame (cgv::data::data_view &dv)
 read the next frame to the given data view, if this is empty recreate it with a newly allocated data pointer, which is owned by the view afterwards.
 
bool read_frame (const cgv::data::data_view &dv)
 same as other read_frame version, but the data_view must point to allocated data of the correct format.
 
bool close ()
 close the video file
 
- Public Member Functions inherited from cgv::base::base
virtual std::string get_default_options () const
 overload to provide default options for registration
 
std::string get_name_or_type_name () const
 determine name of instance by checking cgv::base::named interface and in failure fallback to get_type_name()
 
virtual void on_register ()
 overload to handle register events that is sent after the instance has been registered
 
virtual void unregister ()
 overload to handle unregistration of instances
 
virtual bool on_exit_request ()
 overload to handle the appication exit request, return true if exiting is allowed and false otherwise
 
virtual void stream_stats (std::ostream &)
 overload to show the content of this object
 
virtual data::ref_ptr< named, trueget_named ()
 perform downcast to named
 
virtual data::ref_ptr< node, trueget_node ()
 perform downcast to node
 
virtual data::ref_ptr< group, trueget_group ()
 perform downcast to group
 
virtual data::ref_ptr< const named, trueget_named_const () const
 perform downcast to const named
 
virtual data::ref_ptr< const node, trueget_node_const () const
 perform downcast to const node
 
virtual data::ref_ptr< const group, trueget_group_const () const
 perform downcast to const group
 
template<class T >
data::ref_ptr< T, truecast ()
 cast to arbitrary class, but use the casts to named, node and group from the interface
 
template<class T >
data::ref_ptr< const T, truecast_const ()
 const cast to arbitrary class, but use the casts to named, node and group from the interface
 
template<class T >
Tget_interface ()
 use dynamic type cast to check for the given interface
 
template<class T >
const Tget_const_interface () const
 use dynamic type cast to check for the given interface
 
virtual void update ()
 this virtual update allows for example to ask a view to update the viewed value. The default implementation is empty.
 
virtual voidget_user_data () const
 this virtual method allows to pass application specific data for internal purposes
 
virtual bool self_reflect (cgv::reflect::reflection_handler &)
 used for simple self reflection
 
virtual void on_set (void *member_ptr)
 this callback is called when the set_void method has changed a member and can be overloaded in derived class
 
virtual bool call_void (const std::string &method, const std::vector< std::string > &param_value_types, const std::vector< const void * > &param_value_ptrs, const std::string &result_type="", void *result_value_ptr=0)
 abstract interface to call an action
 
void set (const std::string &property, const char *value)
 specialization of set method to support const char* as strings
 
template<typename T >
void set (const std::string &property, const T &value)
 set a property of the element to the given value and perform standard conversions if necessary.
 
template<typename T >
T get (const std::string &property)
 query a property of the element and perform standard conversions if necessary.
 
void multi_set (const std::string &property_assignments, bool report_error=true)
 set several properties
 
bool is_property (const std::string &property_name, std::string *type_name=0)
 check if the given name specifies a property.
 
voidfind_member_ptr (const std::string &property_name, std::string *type_name=0)
 find a member pointer by name.
 
- Public Member Functions inherited from cgv::data::ref_counted
int get_ref_count () const
 read access to current count
 

Static Public Member Functions

static const std::string & get_supported_extensions (char sep=';')
 return a string with a list of supported extensions, where the list entries are separated with the passed character that defaults to a semicolon
 
static std::string construct_filter_string ()
 use this to generate a file_open_dialog or file_save_dialog
 

Protected Member Functions

bool set_void (const std::string &property, const std::string &type, const void *value)
 abstract interface for the setter, by default it simply returns false
 
bool get_void (const std::string &property, const std::string &type, void *value)
 abstract interface for the getter, by default it simply returns false
 
- Protected Member Functions inherited from cgv::base::base
virtual ~base ()
 make destructor virtual and not accessible from outside
 
- Protected Member Functions inherited from cgv::data::ref_counted
 ref_counted ()
 constructor initializes the count to 0
 
void set_ref_count (int c) const
 write access is also const to allow ref counted pointers to const instances
 

Protected Attributes

cgv::data::data_formatimage_format_ptr
 store the image format
 
abst_video_readerrd
 store a pointer to the chosen reader
 
float fps
 store the fps of the opened video file
 
std::string last_error
 store the last error not resulting from video writer implementations
 

Additional Inherited Members

- Static Protected Member Functions inherited from cgv::base::base
template<class T >
static data::ref_ptr< T, truecast_dynamic (base *b)
 use dynamic cast for upcast to given class
 

Detailed Description

the video reader chooses a specific reader automatically based on the extension of the given file name

Definition at line 36 of file video_reader.h.

Constructor & Destructor Documentation

◆ video_reader()

cgv::media::video::video_reader::video_reader ( cgv::data::data_format image_format)

construct a video reader from a reference to the image format, which will be set after opening a file.

construct an image reader from a file name

Definition at line 46 of file video_reader.cxx.

References fps.

◆ ~video_reader()

cgv::media::video::video_reader::~video_reader ( )

destruct reader and implementation

Definition at line 53 of file video_reader.cxx.

References close().

Member Function Documentation

◆ close()

bool cgv::media::video::video_reader::close ( )

close the video file

Definition at line 156 of file video_reader.cxx.

References cgv::media::video::abst_video_reader::close(), last_error, and rd.

Referenced by open(), and ~video_reader().

◆ construct_filter_string()

std::string cgv::media::video::video_reader::construct_filter_string ( )
static

use this to generate a file_open_dialog or file_save_dialog

Definition at line 75 of file video_reader.cxx.

References get_supported_extensions(), and cgv::utils::replace().

◆ get_fps()

float cgv::media::video::video_reader::get_fps ( ) const

return the frame rate

Definition at line 124 of file video_reader.cxx.

References fps.

◆ get_image_format()

const cgv::data::data_format & cgv::media::video::video_reader::get_image_format ( ) const

return the image format of the video file

Definition at line 118 of file video_reader.cxx.

References image_format_ptr.

◆ get_last_error()

const std::string & cgv::media::video::video_reader::get_last_error ( ) const

return a reference to the last error message

Definition at line 87 of file video_reader.cxx.

References cgv::media::video::abst_video_reader::get_last_error(), and rd.

◆ get_property_declarations()

std::string cgv::media::video::video_reader::get_property_declarations ( )
virtual

return a semicolon separated list of property declarations of the form "name:type", by default an empty list is returned

Reimplemented from cgv::base::base.

Definition at line 176 of file video_reader.cxx.

References cgv::base::base::get_property_declarations(), and rd.

◆ get_supported_extensions()

const std::string & cgv::media::video::video_reader::get_supported_extensions ( char  sep = ';')
static

return a string with a list of supported extensions, where the list entries are separated with the passed character that defaults to a semicolon

Definition at line 60 of file video_reader.cxx.

References cgv::utils::replace().

Referenced by construct_filter_string(), and open().

◆ get_type_name()

std::string cgv::media::video::video_reader::get_type_name ( ) const
virtual

overload to return the type name of this object

Reimplemented from cgv::base::base.

Definition at line 169 of file video_reader.cxx.

References cgv::base::base::get_type_name(), and rd.

◆ get_void()

bool cgv::media::video::video_reader::get_void ( const std::string &  property,
const std::string &  type,
void value 
)
protectedvirtual

abstract interface for the getter, by default it simply returns false

Reimplemented from cgv::base::base.

Definition at line 191 of file video_reader.cxx.

References cgv::base::base::get_void(), and rd.

◆ open()

bool cgv::media::video::video_reader::open ( const std::string &  file_name)

open the file and read the video header in order to determine the image format

Definition at line 96 of file video_reader.cxx.

References close(), fps, get_supported_extensions(), image_format_ptr, cgv::utils::is_element(), last_error, cgv::media::video::abst_video_reader::open(), rd, and cgv::utils::to_lower().

◆ read_frame() [1/2]

bool cgv::media::video::video_reader::read_frame ( cgv::data::data_view dv)

read the next frame to the given data view, if this is empty recreate it with a newly allocated data pointer, which is owned by the view afterwards.

This method returns false if an error occurs or if there are no more frames in the file.

Definition at line 133 of file video_reader.cxx.

References cgv::data::data_view_impl< D, P >::empty(), image_format_ptr, last_error, rd, and cgv::media::video::abst_video_reader::read_frame().

◆ read_frame() [2/2]

bool cgv::media::video::video_reader::read_frame ( const cgv::data::data_view dv)

same as other read_frame version, but the data_view must point to allocated data of the correct format.

Definition at line 148 of file video_reader.cxx.

References last_error, rd, and cgv::media::video::abst_video_reader::read_frame().

◆ set_void()

bool cgv::media::video::video_reader::set_void ( const std::string &  property,
const std::string &  type,
const void value 
)
protectedvirtual

abstract interface for the setter, by default it simply returns false

Reimplemented from cgv::base::base.

Definition at line 184 of file video_reader.cxx.

References rd, and cgv::base::base::set_void().

Member Data Documentation

◆ fps

float cgv::media::video::video_reader::fps
protected

store the fps of the opened video file

Definition at line 44 of file video_reader.h.

Referenced by get_fps(), open(), and video_reader().

◆ image_format_ptr

cgv::data::data_format* cgv::media::video::video_reader::image_format_ptr
protected

store the image format

Definition at line 40 of file video_reader.h.

Referenced by get_image_format(), open(), and read_frame().

◆ last_error

std::string cgv::media::video::video_reader::last_error
protected

store the last error not resulting from video writer implementations

Definition at line 46 of file video_reader.h.

Referenced by close(), open(), read_frame(), and read_frame().

◆ rd

abst_video_reader* cgv::media::video::video_reader::rd
protected

store a pointer to the chosen reader

Definition at line 42 of file video_reader.h.

Referenced by close(), get_last_error(), get_property_declarations(), get_type_name(), get_void(), open(), read_frame(), read_frame(), and set_void().


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