1 #include <libcxml/cxml.h>
2 #include "video_content.h"
3 #include "video_decoder.h"
5 int const VideoContentProperty::VIDEO_LENGTH = 0;
6 int const VideoContentProperty::VIDEO_SIZE = 1;
7 int const VideoContentProperty::VIDEO_FRAME_RATE = 2;
10 using boost::shared_ptr;
11 using boost::lexical_cast;
13 VideoContent::VideoContent (boost::filesystem::path f)
20 VideoContent::VideoContent (shared_ptr<const cxml::Node> node)
23 _video_length = node->number_child<ContentVideoFrame> ("VideoLength");
24 _video_size.width = node->number_child<int> ("VideoWidth");
25 _video_size.height = node->number_child<int> ("VideoHeight");
26 _video_frame_rate = node->number_child<float> ("VideoFrameRate");
30 VideoContent::as_xml (xmlpp::Node* node) const
32 boost::mutex::scoped_lock lm (_mutex);
33 node->add_child("VideoLength")->add_child_text (lexical_cast<string> (_video_length));
34 node->add_child("VideoWidth")->add_child_text (lexical_cast<string> (_video_size.width));
35 node->add_child("VideoHeight")->add_child_text (lexical_cast<string> (_video_size.height));
36 node->add_child("VideoFrameRate")->add_child_text (lexical_cast<string> (_video_frame_rate));
40 VideoContent::take_from_video_decoder (shared_ptr<VideoDecoder> d)
43 boost::mutex::scoped_lock lm (_mutex);
44 _video_size = d->native_size ();
45 _video_frame_rate = d->frames_per_second ();
48 Changed (VideoContentProperty::VIDEO_SIZE);
49 Changed (VideoContentProperty::VIDEO_FRAME_RATE);