summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--demux/demux.h1
-rw-r--r--demux/demux_mkv.c2
-rw-r--r--mpvcore/timeline/tl_matroska.c1
3 files changed, 3 insertions, 1 deletions
diff --git a/demux/demux.h b/demux/demux.h
index c42c964fa9..af8766ec22 100644
--- a/demux/demux.h
+++ b/demux/demux.h
@@ -148,6 +148,7 @@ typedef struct demux_attachment
} demux_attachment_t;
struct demuxer_params {
+ int matroska_num_wanted_uids;
unsigned char (*matroska_wanted_uids)[16];
int matroska_wanted_segment;
bool *matroska_was_valid;
diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c
index 03ffc84844..fec2e223d0 100644
--- a/demux/demux_mkv.c
+++ b/demux/demux_mkv.c
@@ -394,7 +394,7 @@ static int demux_mkv_read_info(demuxer_t *demuxer)
unsigned char (*uids)[16] = demuxer->params->matroska_wanted_uids;
if (!info.n_segment_uid)
uids = NULL;
- for (int i = 0; i < MP_TALLOC_ELEMS(uids); i++) {
+ for (int i = 0; i < demuxer->params->matroska_num_wanted_uids; i++) {
if (!memcmp(info.segment_uid.start, uids[i], 16))
goto out;
}
diff --git a/mpvcore/timeline/tl_matroska.c b/mpvcore/timeline/tl_matroska.c
index cad1c3444e..4c3b705f20 100644
--- a/mpvcore/timeline/tl_matroska.c
+++ b/mpvcore/timeline/tl_matroska.c
@@ -155,6 +155,7 @@ static bool check_file_seg(struct MPContext *mpctx, struct demuxer **sources,
{
bool was_valid = false;
struct demuxer_params params = {
+ .matroska_num_wanted_uids = num_sources,
.matroska_wanted_uids = uid_map,
.matroska_wanted_segment = segment,
.matroska_was_valid = &was_valid,