From d585382f0ef9cf6c8e5e481bb2f4f18a30feca59 Mon Sep 17 00:00:00 2001 From: wm4 Date: Thu, 21 Nov 2013 15:59:00 +0100 Subject: 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. --- demux/demux_edl.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'demux/demux_edl.c') 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; } -- cgit v1.2.3