summaryrefslogtreecommitdiffstats
path: root/demux/demux_mkv.c
diff options
context:
space:
mode:
Diffstat (limited to 'demux/demux_mkv.c')
-rw-r--r--demux/demux_mkv.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c
index 65c3559f55..b174d260a6 100644
--- a/demux/demux_mkv.c
+++ b/demux/demux_mkv.c
@@ -2104,13 +2104,16 @@ static int demux_mkv_open(demuxer_t *demuxer, enum demux_check check)
if (elem->parsed)
continue;
// Warn against incomplete files and skip headers outside of range.
- if (elem->pos >= end) {
+ if (elem->pos >= end || !s->seekable) {
elem->parsed = true; // don't bother if file is incomplete
- if (!mkv_d->eof_warning && !(mkv_d->probably_webm_dash_init &&
- elem->pos == end))
+ if (end < 0 || !s->seekable) {
+ MP_WARN(demuxer, "Stream is not seekable or unknown size, "
+ "not reading mkv metadata at end of file.\n");
+ } else if (!mkv_d->eof_warning &&
+ !(mkv_d->probably_webm_dash_init && elem->pos == end))
{
- MP_WARN(demuxer, "SeekHead position beyond "
- "end of file - incomplete file?\n");
+ MP_WARN(demuxer, "mkv metadata beyond end of file - incomplete "
+ "file?\n");
mkv_d->eof_warning = true;
}
continue;