deleting pointers to incomplete types may cause undefined behavior
[ardour.git] / gtk2_ardour / video_timeline.cc
index eed09fdb23d24c8226feaab15c5afaedc778d45f..12236eec38bba31558f39df14955f1d0da184946 100644 (file)
@@ -356,16 +356,20 @@ VideoTimeLine::update_video_timeline()
        vtl_start -= visible_video_frames * vtl_dist;
        visible_video_frames *=3;
 
-       if (vtl_start < video_offset ) {
-               visible_video_frames += ceil((double)vtl_start/vtl_dist);
+       /* don't request frames that are too far to the right */
+       if (vtl_start < video_offset) {
+               visible_video_frames = std::max((double)0.0, (double)visible_video_frames + ceil((double)(vtl_start - video_offset)/vtl_dist));
                vtl_start = video_offset;
        }
 
-       /* apply video-file constraints */
+       /* apply video-file constraints
+        * (first frame in video is at video_start_offset) */
        if (vtl_start > video_start_offset + video_duration + video_offset ) {
                visible_video_frames = 0;
        }
-       /* TODO optimize: compute rather than iterate */
+       /* trim end.
+        * end = position on timeline (video-offset)  minus  video-file's first frame position
+        * TODO optimize: compute rather than iterate */
        while (visible_video_frames > 0 && vtl_start + (visible_video_frames-1) * vtl_dist >= video_start_offset + video_duration + video_offset) {
                --visible_video_frames;
        }
@@ -757,14 +761,13 @@ VideoTimeLine::find_xjadeo () {
                        {
                                if (v_major >= 1) v_ok = true;
                                else if (v_major == 0 && v_minor >= 8) v_ok = true;
-                               else if (v_major == 0 && v_minor >= 7 && v_micro >= 7) v_ok = true;
                        }
                }
                if (!v_ok) {
                        _xjadeo_bin = X_("");
                        warning << _(
                                        "Video-monitor 'xjadeo' is too old. "
-                                       "Please install xjadeo version 0.7.7 or later. http://xjadeo.sf.net/"
+                                       "Please install xjadeo version 0.8.0 or later. http://xjadeo.sf.net/"
                                        ) << endmsg;
                }
        }