- shared_ptr<Content> locked = _content.lock ();
- DCPOMATIC_ASSERT (locked);
- _film_viewer->set_position (locked, _start_times[ev.GetIndex()]);
+ shared_ptr<Content> lc = _content.lock ();
+ DCPOMATIC_ASSERT (lc);
+ shared_ptr<FilmViewer> fv = _film_viewer.lock ();
+ DCPOMATIC_ASSERT (fv);
+ /* Add on a frame here to work around any rounding errors and make sure land in the subtitle */
+ fv->seek (lc, _start_times[ev.GetIndex()] + ContentTime::from_frames(1, _frc->source), true);