a frame. This breaks things like changing crop after slidering to
a new position; at this point we don't care that the last seek was
inaccurate: the new one should be so that the frame stays the same.
2018-01-06 Carl Hetherington <cth@carlh.net>
2018-01-06 Carl Hetherington <cth@carlh.net>
+ * Fix playhead wandering on some operations (#1112).
+
* Simplify user interface for managing keys.
* Version 2.11.37 released.
* Simplify user interface for managing keys.
* Version 2.11.37 released.
, _play_button (new wxToggleButton (this, wxID_ANY, _("Play")))
, _coalesce_player_changes (false)
, _pending_player_change (false)
, _play_button (new wxToggleButton (this, wxID_ANY, _("Play")))
, _coalesce_player_changes (false)
, _pending_player_change (false)
- , _last_seek_accurate (true)
, _audio (DCPOMATIC_RTAUDIO_API)
, _audio_channels (0)
, _audio_block_size (1024)
, _audio (DCPOMATIC_RTAUDIO_API)
, _audio_channels (0)
, _audio_block_size (1024)
void
FilmViewer::refresh ()
{
void
FilmViewer::refresh ()
{
- seek (_video_position, _last_seek_accurate);
+ seek (_video_position, true);
bool const was_running = stop ();
_butler->seek (t, accurate);
bool const was_running = stop ();
_butler->seek (t, accurate);
- _last_seek_accurate = accurate;
get ();
if (was_running) {
get ();
if (was_running) {
dcp::Size _out_size;
/** Size of the panel that we have available */
dcp::Size _panel_size;
dcp::Size _out_size;
/** Size of the panel that we have available */
dcp::Size _panel_size;
- /** true if the last call to Player::seek() was specified to be accurate;
- * this is used so that when re-fetching the current frame we
- * can get the same one that we got last time.
- */
- bool _last_seek_accurate;
RtAudio _audio;
int _audio_channels;
RtAudio _audio;
int _audio_channels;