projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
operator bool on Time is a really bad idea; removed it and fixed lots of bugs.
[dcpomatic.git]
/
src
/
lib
/
subrip_content.cc
diff --git
a/src/lib/subrip_content.cc
b/src/lib/subrip_content.cc
index 48d3528e14d881265dd93466b622038c207492a1..bf034200d366cd532b09bfc5150e948fbc98a560 100644
(file)
--- a/
src/lib/subrip_content.cc
+++ b/
src/lib/subrip_content.cc
@@
-20,12
+20,15
@@
#include "subrip_content.h"
#include "util.h"
#include "subrip.h"
#include "subrip_content.h"
#include "util.h"
#include "subrip.h"
+#include "film.h"
#include "i18n.h"
using std::stringstream;
using std::string;
#include "i18n.h"
using std::stringstream;
using std::string;
+using std::cout;
using boost::shared_ptr;
using boost::shared_ptr;
+using boost::lexical_cast;
SubRipContent::SubRipContent (shared_ptr<const Film> film, boost::filesystem::path path)
: Content (film, path)
SubRipContent::SubRipContent (shared_ptr<const Film> film, boost::filesystem::path path)
: Content (film, path)
@@
-34,9
+37,10
@@
SubRipContent::SubRipContent (shared_ptr<const Film> film, boost::filesystem::pa
}
}
-SubRipContent::SubRipContent (shared_ptr<const Film> film, shared_ptr<const cxml::Node> node, int)
+SubRipContent::SubRipContent (shared_ptr<const Film> film, shared_ptr<const cxml::Node> node, int
version
)
: Content (film, node)
: Content (film, node)
- , SubtitleContent (film, node)
+ , SubtitleContent (film, node, version)
+ , _length (node->number_child<int64_t> ("Length"))
{
}
{
}
@@
-47,7
+51,8
@@
SubRipContent::examine (boost::shared_ptr<Job> job)
Content::examine (job);
SubRip s (shared_from_this ());
boost::mutex::scoped_lock lm (_mutex);
Content::examine (job);
SubRip s (shared_from_this ());
boost::mutex::scoped_lock lm (_mutex);
- _length = s.length ();
+ shared_ptr<const Film> film = _film.lock ();
+ _length = DCPTime (s.length (), film->active_frame_rate_change (position ()));
}
string
}
string
@@
-69,11
+74,14
@@
SubRipContent::information () const
}
void
}
void
-SubRipContent::as_xml (xmlpp::Node* node)
+SubRipContent::as_xml (xmlpp::Node* node)
const
{
{
+ LocaleGuard lg;
+
node->add_child("Type")->add_child_text ("SubRip");
Content::as_xml (node);
SubtitleContent::as_xml (node);
node->add_child("Type")->add_child_text ("SubRip");
Content::as_xml (node);
SubtitleContent::as_xml (node);
+ node->add_child("Length")->add_child_text (lexical_cast<string> (_length.get ()));
}
DCPTime
}
DCPTime
@@
-93,7
+101,8
@@
SubRipContent::identifier () const
stringstream s;
s << Content::identifier()
<< "_" << subtitle_scale()
stringstream s;
s << Content::identifier()
<< "_" << subtitle_scale()
- << "_" << subtitle_offset();
+ << "_" << subtitle_x_offset()
+ << "_" << subtitle_y_offset();
return s.str ();
}
return s.str ();
}