summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'media-video/mpv/files/0.17.0/mpv-0.17.0-fix-timestamp-resets.patch')
-rw-r--r--media-video/mpv/files/0.17.0/mpv-0.17.0-fix-timestamp-resets.patch27
1 files changed, 27 insertions, 0 deletions
diff --git a/media-video/mpv/files/0.17.0/mpv-0.17.0-fix-timestamp-resets.patch b/media-video/mpv/files/0.17.0/mpv-0.17.0-fix-timestamp-resets.patch
new file mode 100644
index 000000000000..ecebb1f17619
--- /dev/null
+++ b/media-video/mpv/files/0.17.0/mpv-0.17.0-fix-timestamp-resets.patch
@@ -0,0 +1,27 @@
+commit 5f97bd42234ecc6fca7e06b9831318d67e865c8b
+Author: wm4 <wm4@nowhere>
+Date: Sun Apr 24 18:24:46 2016 +0200
+
+player: assume video forwards timestamps jumps only with some formats
+
+Another crappy fix for timestamp reset issues. This time, we try to fix
+files which have very weird but legitimate frame durations, such as
+cdgraphics. It can have many short frames, but once in a while there are
+potentially very long frames.
+
+Fixes #3027.
+---
+
+diff --git a/player/video.c b/player/video.c
+index 7610c12..2714060 100644
+--- a/player/video.c
++++ b/player/video.c
+@@ -685,7 +685,7 @@ static void handle_new_frame(struct MPContext *mpctx)
+ double pts = mpctx->next_frames[0]->pts;
+ if (mpctx->video_pts != MP_NOPTS_VALUE) {
+ frame_time = pts - mpctx->video_pts;
+- double tolerance = 15;
++ double tolerance = mpctx->demuxer->ts_resets_possible ? 5 : 1e4;
+ if (frame_time <= 0 || frame_time >= tolerance) {
+ // Assume a discontinuity.
+ MP_WARN(mpctx, "Invalid video timestamp: %f -> %f\n",