projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge 1.0.
[dcpomatic.git]
/
src
/
lib
/
video_content.cc
diff --git
a/src/lib/video_content.cc
b/src/lib/video_content.cc
index cc075a34ced0534d0e3298affe5ce840d0a8926a..404549532806fc947ecc7440d6acb85aef521bc0 100644
(file)
--- a/
src/lib/video_content.cc
+++ b/
src/lib/video_content.cc
@@
-59,7
+59,7
@@
VideoContent::VideoContent (shared_ptr<const Film> f)
setup_default_colour_conversion ();
}
setup_default_colour_conversion ();
}
-VideoContent::VideoContent (shared_ptr<const Film> f, Time s, VideoContent::Frame len)
+VideoContent::VideoContent (shared_ptr<const Film> f,
DCP
Time s, VideoContent::Frame len)
: Content (f, s)
, _video_length (len)
, _video_frame_rate (0)
: Content (f, s)
, _video_length (len)
, _video_frame_rate (0)
@@
-353,19
+353,21
@@
VideoContent::video_size_after_crop () const
}
/** @param t A time offset from the start of this piece of content.
}
/** @param t A time offset from the start of this piece of content.
- * @return Corresponding frame index.
+ * @return Corresponding frame index, rounded up so that the frame index
+ * is that of the next complete frame which starts after `t'.
*/
VideoContent::Frame
*/
VideoContent::Frame
-VideoContent::time_to_content_video_frames (Time t) const
+VideoContent::time_to_content_video_frames (
DCP
Time t) const
{
shared_ptr<const Film> film = _film.lock ();
assert (film);
{
shared_ptr<const Film> 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
/* 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.
+ the source's rate; source rate will be equal to DCP rate if we ignore
+ double/skip. There's no need to call Film::active_frame_rate_change() here
+ as we know that we are it (since we're video).
*/
*/
- return t * film->video_frame_rate() / (frc.factor() * TIME_HZ);
+ FrameRateChange frc (video_frame_rate(), film->video_frame_rate());
+ return ceil (t * film->video_frame_rate() / (frc.factor() * TIME_HZ));
}
}