summaryrefslogtreecommitdiff
path: root/src/lib/playlist.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2016-07-31 23:52:02 +0100
committerCarl Hetherington <cth@carlh.net>2016-07-31 23:52:02 +0100
commit9c01623c3038b978ba732de2ad147d29fad60afe (patch)
tree72907bc7560dcef38d43f363881e2b959d4c0d34 /src/lib/playlist.cc
parent83a2cf5916fe7207e786b95aa5c560b6b5d11e4e (diff)
Allow configuration of MXF/XML filenames (part of #710).
Diffstat (limited to 'src/lib/playlist.cc')
-rw-r--r--src/lib/playlist.cc25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/lib/playlist.cc b/src/lib/playlist.cc
index 739c5a20b..a8b5a26eb 100644
--- a/src/lib/playlist.cc
+++ b/src/lib/playlist.cc
@@ -511,3 +511,28 @@ Playlist::required_disk_space (int j2k_bandwidth, int audio_channels, int audio_
/* Add on 64k for bits and pieces (metadata, subs etc) */
return video + audio + 65536;
}
+
+string
+Playlist::content_summary (DCPTimePeriod period) const
+{
+ string best_summary;
+ int best_score = -1;
+ BOOST_FOREACH (shared_ptr<Content> i, _content) {
+ int score = 0;
+ optional<DCPTimePeriod> const o = DCPTimePeriod(i->position(), i->end()).overlap (period);
+ if (o) {
+ score += 100 * o.get().duration().get() / period.duration().get();
+ }
+
+ if (i->video) {
+ score += 100;
+ }
+
+ if (score > best_score) {
+ best_summary = i->path(0).leaf().string();
+ best_score = score;
+ }
+ }
+
+ return best_summary;
+}