Look up unknown subtitle end times from the data prepared by the examiner.
[dcpomatic.git] / src / lib / playlist.cc
index 1c65d1326b3d57e74e8b819553388c97bca94570..1aeed4062a8e2d603f3d09b731e43e499b56879e 100644 (file)
@@ -40,7 +40,6 @@ using std::vector;
 using std::min;
 using std::max;
 using std::string;
-using std::stringstream;
 using std::pair;
 using boost::optional;
 using boost::shared_ptr;
@@ -63,6 +62,12 @@ Playlist::~Playlist ()
 void
 Playlist::content_changed (weak_ptr<Content> content, int property, bool frequent)
 {
+       /* Don't respond to position changes here, as:
+          - sequencing after earlier/later changes is handled by move_earlier/move_later
+          - any other position changes will be timeline drags which should not result in content
+          being sequenced.
+       */
+       
        if (property == ContentProperty::LENGTH || property == VideoContentProperty::VIDEO_FRAME_TYPE) {
                maybe_sequence_video ();
        }
@@ -79,7 +84,6 @@ Playlist::maybe_sequence_video ()
        
        _sequencing_video = true;
        
-       ContentList cl = _content;
        DCPTime next_left;
        DCPTime next_right;
        for (ContentList::iterator i = _content.begin(); i != _content.end(); ++i) {
@@ -362,7 +366,7 @@ Playlist::move_earlier (shared_ptr<Content> c)
                ++i;
        }
 
-       assert (i != _content.end ());
+       DCPOMATIC_ASSERT (i != _content.end ());
        if (previous == _content.end ()) {
                return;
        }
@@ -384,7 +388,7 @@ Playlist::move_later (shared_ptr<Content> c)
                ++i;
        }
 
-       assert (i != _content.end ());
+       DCPOMATIC_ASSERT (i != _content.end ());
 
        ContentList::iterator next = i;
        ++next;
@@ -393,8 +397,7 @@ Playlist::move_later (shared_ptr<Content> c)
                return;
        }
 
-       DCPTime const p = (*next)->position ();
        (*next)->set_position (c->position ());
-       c->set_position (c->position() + c->length_after_trim ());
+       c->set_position (c->position() + (*next)->length_after_trim ());
        sort (_content.begin(), _content.end(), ContentSorter ());
 }