diff options
| author | Carl Hetherington <cth@carlh.net> | 2024-02-18 23:36:10 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2024-02-19 09:54:43 +0100 |
| commit | 167ff6413dcc32680b2b778303f659656c2a51df (patch) | |
| tree | 757df02b914e53d89d49ae3cd3300e8568942ff1 /src/lib | |
| parent | d36b320c0a3d0ba0951eea486578275b3738a687 (diff) | |
Reset _next_video_time when deciding to emit black.
Otherwise if we inaccurately seek into an area with no video there
will never be any content coming into ::video() which could reset
_next_video_time. Then when a black frame is emitted using
emit_video_until we will emit black frames from time 0 to the time
of the inaccurate seek.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/player.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/lib/player.cc b/src/lib/player.cc index 6f9b70d0a..03935a46b 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -774,6 +774,12 @@ Player::pass () } case BLACK: LOG_DEBUG_PLAYER ("Emit black for gap at %1", to_string(_black.position())); + if (!_next_video_time) { + /* Deciding to emit black has the same effect as getting some video from the content + * when we are inaccurately seeking. + */ + _next_video_time = _black.position(); + } if (film->three_d()) { use_video(black_player_video_frame(Eyes::LEFT), _black.position(), _black.period_at_position().to); use_video(black_player_video_frame(Eyes::RIGHT), _black.position(), _black.period_at_position().to); |
