Same thing with inter_size.
[dcpomatic.git] / src / wx / gl_video_view.cc
index 934a91ad5784d47f30ac8d615031fee5ac8edde2..ce152787a971fc31cc7e3ecdc29c54350e19764e 100644 (file)
@@ -140,7 +140,7 @@ GLVideoView::update ()
 }
 
 void
-GLVideoView::draw ()
+GLVideoView::draw (Position<int> inter_position, dcp::Size inter_size)
 {
        glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        check_gl_error ("glClear");
@@ -232,8 +232,6 @@ GLVideoView::draw ()
        if (_viewer->outline_content()) {
                glColor3ub (255, 0, 0);
                glBegin (GL_LINE_LOOP);
-               Position<int> inter_position = _viewer->inter_position ();
-               dcp::Size inter_size = _viewer->inter_size ();
                glVertex2f (inter_position.x, inter_position.y + (canvas_size.GetHeight() - out_size.height) / 2);
                glVertex2f (inter_position.x + inter_size.width, inter_position.y + (canvas_size.GetHeight() - out_size.height) / 2);
                glVertex2f (inter_position.x + inter_size.width, inter_position.y + (canvas_size.GetHeight() - out_size.height) / 2 + inter_size.height);
@@ -275,6 +273,8 @@ GLVideoView::set_image (shared_ptr<const Image> image)
 void
 GLVideoView::start ()
 {
+       VideoView::start ();
+
        boost::mutex::scoped_lock lm (_playing_mutex);
        _playing = true;
        _playing_condition.notify_all ();
@@ -303,6 +303,8 @@ try
                _one_shot = false;
                lm.unlock ();
 
+               Position<int> inter_position;
+               dcp::Size inter_size;
                if (length() != dcpomatic::DCPTime()) {
                        dcpomatic::DCPTime const next = position() + one_video_frame();
 
@@ -314,11 +316,14 @@ try
 
                        get_next_frame (false);
                        set_image (player_video().first->image(bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), false, true));
+                       inter_position = player_video().first->inter_position();
+                       inter_size = player_video().first->inter_size();
                }
-               draw ();
+               draw (inter_position, inter_size);
 
                while (time_until_next_frame() < 5) {
                        get_next_frame (true);
+                       add_dropped ();
                }
 
                boost::this_thread::interruption_point ();