projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Updated da_DK translation from Anders Uhl Pedersen.
[dcpomatic.git]
/
src
/
lib
/
content.cc
diff --git
a/src/lib/content.cc
b/src/lib/content.cc
index 2b4f02b903c90d8027d48c1f0fe1fbb36ac49380..aa596f75a3f931ed0fc83b52914b737e6db600d4 100644
(file)
--- a/
src/lib/content.cc
+++ b/
src/lib/content.cc
@@
-28,10
+28,12
@@
#include "film.h"
#include "safe_stringstream.h"
#include "job.h"
#include "film.h"
#include "safe_stringstream.h"
#include "job.h"
+#include "compose.hpp"
#include "raw_convert.h"
#include <libcxml/cxml.h>
#include <libxml++/libxml++.h>
#include <boost/thread/mutex.hpp>
#include "raw_convert.h"
#include <libcxml/cxml.h>
#include <libxml++/libxml++.h>
#include <boost/thread/mutex.hpp>
+#include <iostream>
#include "i18n.h"
#include "i18n.h"
@@
-88,9
+90,9
@@
Content::Content (shared_ptr<const Film> film, cxml::ConstNodePtr node)
_paths.push_back ((*i)->content ());
}
_digest = node->optional_string_child ("Digest").get_value_or ("X");
_paths.push_back ((*i)->content ());
}
_digest = node->optional_string_child ("Digest").get_value_or ("X");
- _position = DCPTime (node->number_child<
doubl
e> ("Position"));
- _trim_start =
DCPTime (node->number_child<doubl
e> ("TrimStart"));
- _trim_end =
DCPTime (node->number_child<doubl
e> ("TrimEnd"));
+ _position = DCPTime (node->number_child<
DCPTime::Typ
e> ("Position"));
+ _trim_start =
ContentTime (node->number_child<ContentTime::Typ
e> ("TrimStart"));
+ _trim_end =
ContentTime (node->number_child<ContentTime::Typ
e> ("TrimEnd"));
}
Content::Content (shared_ptr<const Film> film, vector<shared_ptr<Content> > c)
}
Content::Content (shared_ptr<const Film> film, vector<shared_ptr<Content> > c)
@@
-101,11
+103,11
@@
Content::Content (shared_ptr<const Film> film, vector<shared_ptr<Content> > c)
, _change_signals_frequent (false)
{
for (size_t i = 0; i < c.size(); ++i) {
, _change_signals_frequent (false)
{
for (size_t i = 0; i < c.size(); ++i) {
- if (i > 0 && c[i]->trim_start() >
DCPTime
()) {
+ if (i > 0 && c[i]->trim_start() >
ContentTime
()) {
throw JoinError (_("Only the first piece of content to be joined can have a start trim."));
}
throw JoinError (_("Only the first piece of content to be joined can have a start trim."));
}
- if (i < (c.size() - 1) && c[i]->trim_end () >
DCPTime
()) {
+ if (i < (c.size() - 1) && c[i]->trim_end () >
ContentTime
()) {
throw JoinError (_("Only the last piece of content to be joined can have an end trim."));
}
throw JoinError (_("Only the last piece of content to be joined can have an end trim."));
}
@@
-172,7
+174,7
@@
Content::set_position (DCPTime p)
}
void
}
void
-Content::set_trim_start (
DCP
Time t)
+Content::set_trim_start (
Content
Time t)
{
{
boost::mutex::scoped_lock lm (_mutex);
{
{
boost::mutex::scoped_lock lm (_mutex);
@@
-183,7
+185,7
@@
Content::set_trim_start (DCPTime t)
}
void
}
void
-Content::set_trim_end (
DCP
Time t)
+Content::set_trim_end (
Content
Time t)
{
{
boost::mutex::scoped_lock lm (_mutex);
{
{
boost::mutex::scoped_lock lm (_mutex);
@@
-221,11
+223,13
@@
Content::technical_summary () const
DCPTime
Content::length_after_trim () const
{
DCPTime
Content::length_after_trim () const
{
- return max (DCPTime (), full_length() - trim_start() - trim_end());
+ shared_ptr<const Film> film = _film.lock ();
+ DCPOMATIC_ASSERT (film);
+ return max (DCPTime (), full_length() - DCPTime (trim_start() + trim_end(), film->active_frame_rate_change (position ())));
}
}
-/** @return string which
includes everything about how this content
affects
- *
its playlist
.
+/** @return string which
changes when something about this content changes which
affects
+ *
the appearance of its video
.
*/
string
Content::identifier () const
*/
string
Content::identifier () const