From 8053593f2ccff66287c43d20a8f28be9919bff75 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 29 Oct 2013 18:40:48 +0000 Subject: Seek past trim on setting up player pieces. --- src/lib/video_content.cc | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/lib/video_content.cc') diff --git a/src/lib/video_content.cc b/src/lib/video_content.cc index 347836855..d0eab4dbf 100644 --- a/src/lib/video_content.cc +++ b/src/lib/video_content.cc @@ -26,6 +26,8 @@ #include "compose.hpp" #include "config.h" #include "colour_conversion.h" +#include "util.h" +#include "film.h" #include "i18n.h" @@ -289,3 +291,21 @@ VideoContent::video_size_after_crop () const { return crop().apply (video_size_after_3d_split ()); } + +/** @param t A time offset from the start of this piece of content. + * @return Corresponding frame index. + */ +VideoContent::Frame +VideoContent::time_to_content_video_frames (Time t) const +{ + shared_ptr film = _film.lock (); + assert (film); + + FrameRateConversion frc (video_frame_rate(), film->video_frame_rate()); + + /* Here we are converting from time (in the DCP) to a frame number in the content. + Hence we need to use the DCP's frame rate and the double/skip correction, not + the source's rate. + */ + return t * film->video_frame_rate() / (frc.factor() * TIME_HZ); +} -- cgit v1.2.3