mirror of
https://github.com/mpv-player/mpv
synced 2024-11-14 22:48:35 +01:00
player: cleaner determination of current playback PTS
In particular, this won't overwrite the playback PTS in coverart mode, which actually fixes relative seeks.
This commit is contained in:
parent
abb3f80998
commit
786f37ae1c
@ -958,6 +958,17 @@ void run_playloop(struct MPContext *mpctx)
|
||||
fill_audio_out_buffers(mpctx);
|
||||
write_video(mpctx);
|
||||
|
||||
if (mpctx->vo_chain && !mpctx->vo_chain->is_coverart &&
|
||||
mpctx->video_status >= STATUS_PLAYING &&
|
||||
mpctx->video_status < STATUS_EOF)
|
||||
{
|
||||
mpctx->playback_pts = mpctx->video_pts;
|
||||
} else if (mpctx->audio_status >= STATUS_PLAYING &&
|
||||
mpctx->audio_status < STATUS_EOF)
|
||||
{
|
||||
mpctx->playback_pts = playing_audio_pts(mpctx);
|
||||
}
|
||||
|
||||
if (mpctx->lavfi) {
|
||||
if (lavfi_process(mpctx->lavfi))
|
||||
mpctx->sleeptime = 0;
|
||||
@ -967,14 +978,6 @@ void run_playloop(struct MPContext *mpctx)
|
||||
|
||||
handle_playback_restart(mpctx);
|
||||
|
||||
// Use the audio timestamp if no video, or video is enabled, but has ended.
|
||||
if (mpctx->video_status == STATUS_EOF &&
|
||||
mpctx->audio_status >= STATUS_PLAYING &&
|
||||
mpctx->audio_status < STATUS_EOF)
|
||||
{
|
||||
mpctx->playback_pts = playing_audio_pts(mpctx);
|
||||
}
|
||||
|
||||
handle_dummy_ticks(mpctx);
|
||||
|
||||
update_osd_msg(mpctx);
|
||||
|
@ -1380,7 +1380,6 @@ void write_video(struct MPContext *mpctx)
|
||||
|
||||
mpctx->video_pts = mpctx->next_frames[0]->pts;
|
||||
mpctx->last_vo_pts = mpctx->video_pts;
|
||||
mpctx->playback_pts = mpctx->video_pts;
|
||||
|
||||
shift_frames(mpctx);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user