summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_mkv.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmpdemux/demux_mkv.c')
-rw-r--r--libmpdemux/demux_mkv.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libmpdemux/demux_mkv.c b/libmpdemux/demux_mkv.c
index 5a3347be61..d503ab14ad 100644
--- a/libmpdemux/demux_mkv.c
+++ b/libmpdemux/demux_mkv.c
@@ -3143,6 +3143,10 @@ handle_block (demuxer_t *demuxer, uint8_t *block, uint64_t length,
if (modified)
free (buffer);
dp->flags = (block_bref == 0 && block_fref == 0) ? 0x10 : 0;
+ /* If default_duration is 0, assume no pts value is known
+ * for packets after the first one (rather than all pts
+ * values being the same) */
+ if (i == 0 || track->default_duration)
dp->pts = mkv_d->last_pts + i * track->default_duration;
ds_add_packet (ds, dp);
}