summaryrefslogtreecommitdiff
path: root/src/lib/ffmpeg_content.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2018-11-23 01:15:37 +0000
committerCarl Hetherington <cth@carlh.net>2018-11-23 01:15:37 +0000
commit673ba43fb66eb0dee43807501753749f144254a7 (patch)
tree1c337ccebdc2dc6f25d76d761252976814f34d57 /src/lib/ffmpeg_content.cc
parente13e5cd4cfda39b0a0b77ed8036e14e15f93ec2e (diff)
Remove required Film from content examine.
Diffstat (limited to 'src/lib/ffmpeg_content.cc')
-rw-r--r--src/lib/ffmpeg_content.cc19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/lib/ffmpeg_content.cc b/src/lib/ffmpeg_content.cc
index 919200679..f4e4beba9 100644
--- a/src/lib/ffmpeg_content.cc
+++ b/src/lib/ffmpeg_content.cc
@@ -307,7 +307,7 @@ FFmpegContent::examine (shared_ptr<const Film> film, shared_ptr<Job> job)
AudioStreamPtr as = audio->streams().front();
AudioMapping m = as->mapping ();
- m.make_default (film->audio_processor(), first_path);
+ m.make_default (film ? film->audio_processor() : 0, first_path);
as->set_mapping (m);
}
@@ -415,6 +415,23 @@ FFmpegContent::full_length (shared_ptr<const Film> film) const
return longest;
}
+DCPTime
+FFmpegContent::approximate_length () const
+{
+ if (video) {
+ return DCPTime::from_frames (video->length_after_3d_combine(), 24);
+ }
+
+ DCPOMATIC_ASSERT (audio);
+
+ Frame longest = 0;
+ BOOST_FOREACH (AudioStreamPtr i, audio->streams ()) {
+ longest = max (longest, Frame(llrint(i->length())));
+ }
+
+ return DCPTime::from_frames (longest, 24);
+}
+
void
FFmpegContent::set_filters (vector<Filter const *> const & filters)
{