summaryrefslogtreecommitdiffstats
path: root/demux
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-11-21 15:59:00 +0100
committerwm4 <wm4@nowhere>2013-11-21 15:59:00 +0100
commitd585382f0ef9cf6c8e5e481bb2f4f18a30feca59 (patch)
treede9724356de557aa09712803613aef45f8f497cd /demux
parent287d2e060319f741e394802d3f09c44432945077 (diff)
downloadmpv-d585382f0ef9cf6c8e5e481bb2f4f18a30feca59.tar.bz2
mpv-d585382f0ef9cf6c8e5e481bb2f4f18a30feca59.tar.xz
timeline: reject mplayer2 EDL files, change EDL header
This was forgotten when the parser for mplayer2 EDL files was removed. Change the header of the mpv EDL format to include a '#', so a naive parser could skip the header as comment. (Maybe this is questionable; on the other hand, if it can be simpler, why not.) Also, strip the header in demux_edl.c before passing on the data, so the header check doesn't need to be duplicated in tl_mpv_edl.c.
Diffstat (limited to 'demux')
-rw-r--r--demux/demux_edl.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/demux/demux_edl.c b/demux/demux_edl.c
index 62103d67d2..010e9c1db3 100644
--- a/demux/demux_edl.c
+++ b/demux/demux_edl.c
@@ -25,27 +25,24 @@
#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);
-}
+#define HEADER "# mpv EDL v0\n"
// 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 (s->uncached_type == STREAMTYPE_EDL) {
- demuxer->file_contents = bstr0(s->url);
+ demuxer->file_contents = bstr0(s->path);
return 0;
}
if (check >= DEMUX_CHECK_UNSAFE) {
- if (!test_header(s, "mplayer EDL file") &&
- !test_header(s, "mpv EDL v0\n"))
+ if (!bstr_equals0(stream_peek(s, strlen(HEADER)), HEADER))
return -1;
}
demuxer->file_contents = stream_read_complete(s, demuxer, 1000000);
if (demuxer->file_contents.start == NULL)
return -1;
+ bstr_eatstart0(&demuxer->file_contents, HEADER);
return 0;
}