Save subtitle video frame rates properly; don't cast them to int for TextSubtitleContent.
authorCarl Hetherington <cth@carlh.net>
Mon, 25 Apr 2016 08:46:42 +0000 (09:46 +0100)
committerCarl Hetherington <cth@carlh.net>
Mon, 25 Apr 2016 08:46:42 +0000 (09:46 +0100)
ChangeLog
src/lib/text_subtitle_content.cc
src/lib/text_subtitle_content.h

index 4a4992039071596d937c03bb5bdff1f10393e33a..a2ebe0fb59f5b1ef1472b1494e9cb3fa082b73d8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2016-04-25  c.hetherington  <cth@carlh.net>
+
+       * Fix saving of modified video frame rates for subtitle content.
+
 2016-04-25  Carl Hetherington  <cth@carlh.net>
 
        * Version 2.7.15 released.
index 2044c3a41336ea76a31e07c713dc90067c3c96ef..0de219574332ea8b542a9f00478d15ecfef369bb 100644 (file)
@@ -52,7 +52,7 @@ TextSubtitleContent::TextSubtitleContent (shared_ptr<const Film> film, cxml::Con
        : Content (film, node)
        , SubtitleContent (film, node, version)
        , _length (node->number_child<ContentTime::Type> ("Length"))
-       , _frame_rate (node->optional_number_child<double>("SubtitleFrameRate"))
+       , _frame_rate (node->optional_number_child<double>("SubtitleVideoFrameRate"))
        , _colour (
                node->optional_number_child<int>("Red").get_value_or(255),
                node->optional_number_child<int>("Green").get_value_or(255),
@@ -101,6 +101,9 @@ TextSubtitleContent::as_xml (xmlpp::Node* node) const
        Content::as_xml (node);
        SubtitleContent::as_xml (node);
        node->add_child("Length")->add_child_text (raw_convert<string> (_length.get ()));
+       if (_frame_rate) {
+               node->add_child("SubtitleVideoFrameRate")->add_child_text (raw_convert<string> (_frame_rate.get()));
+       }
        node->add_child("Red")->add_child_text (raw_convert<string> (_colour.r));
        node->add_child("Green")->add_child_text (raw_convert<string> (_colour.g));
        node->add_child("Blue")->add_child_text (raw_convert<string> (_colour.b));
@@ -118,7 +121,7 @@ TextSubtitleContent::full_length () const
 }
 
 void
-TextSubtitleContent::set_subtitle_video_frame_rate (int r)
+TextSubtitleContent::set_subtitle_video_frame_rate (double r)
 {
        {
                boost::mutex::scoped_lock lm (_mutex);
index ad63a0e7d7f13558489b8a8d6ea9ad505caff87b..2c8e3b1b7e77bd203b5f04dfd13f6f73277e4b07 100644 (file)
@@ -58,7 +58,7 @@ public:
        }
 
        double subtitle_video_frame_rate () const;
-       void set_subtitle_video_frame_rate (int r);
+       void set_subtitle_video_frame_rate (double r);
 
        void set_colour (dcp::Colour);