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

the image writer chooses a specific writer automatically based on the extension of the given file name More...

#include <video_writer.h>

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

Public Member Functions

 video_writer (const std::string &file_extension)
 construct a video writer from a file extension and choose an implementation based on the extension
 
const std::string & get_last_error () const
 return a reference to the last error message
 
std::string get_type_name () const
 returns the type name of the chosen video writer implementation
 
bool scan_codecs (std::vector< std::string > &codec_names) const
 return a list of supported codecs in text format
 
bool set_codec (const std::string &codec_name)
 select a specific codec. This will chance the properties available with the property interface.
 
std::string get_codec () const
 return the currently selected codec
 
std::string get_property_declarations ()
 return a semicolon separated list of property declarations supported by the selected codec.
 
bool open (const std::string &file_name, const cgv::data::data_format &image_format, float fps=25, bool interactive=false)
 open a video file for writing images in the given format with the given fps.
 
bool write_frame (const cgv::data::const_data_view &image_data)
 write the image data stored in the data view as next video frame to the previously opened video file.
 
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, uses the interface of the selected writer implementation
 
bool get_void (const std::string &property, const std::string &type, void *value)
 abstract interface for the getter, uses the interface of the selected writer implementation
 
- 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

abst_video_writerwr
 store a pointer to the chosen reader
 
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 image writer chooses a specific writer automatically based on the extension of the given file name

Definition at line 40 of file video_writer.h.

Constructor & Destructor Documentation

◆ video_writer()

cgv::media::video::video_writer::video_writer ( const std::string &  file_extension)

construct a video writer from a file extension and choose an implementation based on the extension

Definition at line 93 of file video_writer.cxx.

References get_supported_extensions(), cgv::utils::is_element(), last_error, cgv::utils::to_lower(), and wr.

Member Function Documentation

◆ close()

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

close the video file

Definition at line 191 of file video_writer.cxx.

References cgv::media::video::abst_video_writer::close(), last_error, and wr.

◆ construct_filter_string()

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

use this to generate a file_open_dialog or file_save_dialog

Definition at line 79 of file video_writer.cxx.

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

◆ get_codec()

std::string cgv::media::video::video_writer::get_codec ( ) const

return the currently selected codec

Definition at line 141 of file video_writer.cxx.

References cgv::media::video::abst_video_writer::get_codec(), and wr.

◆ get_last_error()

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

return a reference to the last error message

Definition at line 109 of file video_writer.cxx.

References cgv::media::video::abst_video_writer::get_last_error(), last_error, and wr.

◆ get_property_declarations()

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

return a semicolon separated list of property declarations supported by the selected codec.

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

Each property declaration is of the form "name:type", where type is in correcpondence with the cgv::type::info::type_name.

Reimplemented from cgv::base::base.

Definition at line 149 of file video_writer.cxx.

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

◆ get_supported_extensions()

const std::string & cgv::media::video::video_writer::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 64 of file video_writer.cxx.

References cgv::utils::replace().

Referenced by construct_filter_string(), and video_writer().

◆ get_type_name()

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

returns the type name of the chosen video writer implementation

Reimplemented from cgv::base::base.

Definition at line 117 of file video_writer.cxx.

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

◆ get_void()

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

abstract interface for the getter, uses the interface of the selected writer implementation

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

Reimplemented from cgv::base::base.

Definition at line 164 of file video_writer.cxx.

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

◆ open()

bool cgv::media::video::video_writer::open ( const std::string &  file_name,
const cgv::data::data_format image_format,
float  fps = 25,
bool  interactive = false 
)

open a video file for writing images in the given format with the given fps.

Use the currently selected codec and codec properties as set with the property interface.

Definition at line 173 of file video_writer.cxx.

References last_error, cgv::media::video::abst_video_writer::open(), and wr.

◆ scan_codecs()

bool cgv::media::video::video_writer::scan_codecs ( std::vector< std::string > &  codec_names) const

return a list of supported codecs in text format

Definition at line 125 of file video_writer.cxx.

References cgv::media::video::abst_video_writer::scan_codecs(), and wr.

◆ set_codec()

bool cgv::media::video::video_writer::set_codec ( const std::string &  codec_name)

select a specific codec. This will chance the properties available with the property interface.

Definition at line 133 of file video_writer.cxx.

References cgv::media::video::abst_video_writer::set_codec(), and wr.

◆ set_void()

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

abstract interface for the setter, uses the interface of the selected writer implementation

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

Reimplemented from cgv::base::base.

Definition at line 157 of file video_writer.cxx.

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

◆ write_frame()

bool cgv::media::video::video_writer::write_frame ( const cgv::data::const_data_view image_data)

write the image data stored in the data view as next video frame to the previously opened video file.

Return whether this was successful.

Definition at line 182 of file video_writer.cxx.

References last_error, wr, and cgv::media::video::abst_video_writer::write_frame().

Member Data Documentation

◆ last_error

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

store the last error not resulting from video writer implementations

Definition at line 46 of file video_writer.h.

Referenced by close(), get_last_error(), open(), video_writer(), and write_frame().

◆ wr

abst_video_writer* cgv::media::video::video_writer::wr
protected

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