summaryrefslogtreecommitdiffstats
path: root/demux
diff options
context:
space:
mode:
Diffstat (limited to 'demux')
-rw-r--r--demux/demux_edl.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/demux/demux_edl.c b/demux/demux_edl.c
index 5c6afa2d9b..dd6c660f74 100644
--- a/demux/demux_edl.c
+++ b/demux/demux_edl.c
@@ -25,18 +25,19 @@
#include "demux.h"
#include "stream/stream.h"
+static bool test_header(struct stream *s, char *header)
+{
+ return bstr_equals0(stream_peek(s, strlen(header)), header);
+}
+
+// Note: the real work is handled in tl_mpv_edl.c.
static int try_open_file(struct demuxer *demuxer, enum demux_check check)
{
struct stream *s = demuxer->stream;
if (check >= DEMUX_CHECK_UNSAFE) {
- const char header[] = "mplayer EDL file";
- const int len = sizeof(header) - 1;
- char buf[len];
- if (stream_read(s, buf, len) < len)
- return -1;
- if (strncmp(buf, header, len))
+ if (!test_header(s, "mplayer EDL file") &&
+ !test_header(s, "mpv EDL v0\n"))
return -1;
- stream_seek(s, 0);
}
demuxer->file_contents = stream_read_complete(s, demuxer, 1000000);
if (demuxer->file_contents.start == NULL)
@@ -46,7 +47,7 @@ static int try_open_file(struct demuxer *demuxer, enum demux_check check)
const struct demuxer_desc demuxer_desc_edl = {
.name = "edl",
- .desc = "mplayer2 edit decision list",
+ .desc = "Edit decision list",
.type = DEMUXER_TYPE_EDL,
.open = try_open_file,
};