diff options
Diffstat (limited to 'media-video/mpv/files/0.17.0/mpv-0.17.0-fix-relative-seeking-with-coverart.patch')
-rw-r--r-- | media-video/mpv/files/0.17.0/mpv-0.17.0-fix-relative-seeking-with-coverart.patch | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/media-video/mpv/files/0.17.0/mpv-0.17.0-fix-relative-seeking-with-coverart.patch b/media-video/mpv/files/0.17.0/mpv-0.17.0-fix-relative-seeking-with-coverart.patch new file mode 100644 index 000000000000..c50e45e55a84 --- /dev/null +++ b/media-video/mpv/files/0.17.0/mpv-0.17.0-fix-relative-seeking-with-coverart.patch @@ -0,0 +1,59 @@ +commit 786f37ae1c77b46b34ed66b4a73c42ff64bfc9b8 +Author: wm4 <wm4@nowhere> +Date: Sat Apr 23 17:16:54 2016 +0200 + +player: cleaner determination of current playback PTS + +In particular, this won't overwrite the playback PTS in coverart mode, +which actually fixes relative seeks. +--- + +diff --git a/player/playloop.c b/player/playloop.c +index 71ecd7e..6eadcbc 100644 +--- a/player/playloop.c ++++ b/player/playloop.c +@@ -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); +diff --git a/player/video.c b/player/video.c +index 0af0b90..7610c12 100644 +--- a/player/video.c ++++ b/player/video.c +@@ -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); + |