From 4a74ca2cb973585122e84c21ff48ff4ff1ebd488 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 4 Jun 2014 13:10:28 +0100 Subject: Back-port v2's rename and slight extension of FrameRateConversion. --- src/lib/player.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/lib/player.cc') diff --git a/src/lib/player.cc b/src/lib/player.cc index 68df8ea70..20cea7e4a 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -36,6 +36,7 @@ #include "log.h" #include "scaler.h" #include "player_video_frame.h" +#include "frame_rate_change.h" #define LOG_GENERAL(...) _film->log()->log (String::compose (__VA_ARGS__), Log::TYPE_GENERAL); @@ -201,7 +202,7 @@ Player::process_video (weak_ptr weak_piece, shared_ptr shared_ptr content = dynamic_pointer_cast (piece->content); assert (content); - FrameRateConversion frc (content->video_frame_rate(), _film->video_frame_rate()); + FrameRateChange frc (content->video_frame_rate(), _film->video_frame_rate()); if (frc.skip && (frame % 2) == 1) { return; } -- cgit v1.2.3 From d39e59cbfff3b886af7a7d9c9c48f3f7f5928e43 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 5 Jun 2014 23:56:26 +0100 Subject: A couple of fixes to hangs when over-trimming content. --- src/lib/content.cc | 3 ++- src/lib/player.cc | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'src/lib/player.cc') diff --git a/src/lib/content.cc b/src/lib/content.cc index 1ec607d39..4cdb23e83 100644 --- a/src/lib/content.cc +++ b/src/lib/content.cc @@ -36,6 +36,7 @@ using std::set; using std::list; using std::cout; using std::vector; +using std::max; using boost::shared_ptr; using libdcp::raw_convert; @@ -211,7 +212,7 @@ Content::technical_summary () const Time Content::length_after_trim () const { - return full_length() - trim_start() - trim_end(); + return max (0L, full_length() - trim_start() - trim_end()); } /** @param t A time relative to the start of this content (not the position). diff --git a/src/lib/player.cc b/src/lib/player.cc index 20cea7e4a..7bf78c905 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -95,7 +95,7 @@ Player::pass () } type = VIDEO; for (list >::iterator i = _pieces.begin(); i != _pieces.end(); ++i) { - if ((*i)->decoder->done ()) { + if ((*i)->decoder->done () || (*i)->content->length_after_trim() == 0) { continue; } -- cgit v1.2.3