diff options
author | wm4 <wm4@nowhere> | 2013-11-21 15:59:00 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2013-11-21 15:59:00 +0100 |
commit | d585382f0ef9cf6c8e5e481bb2f4f18a30feca59 (patch) | |
tree | de9724356de557aa09712803613aef45f8f497cd /demux/demux_edl.c | |
parent | 287d2e060319f741e394802d3f09c44432945077 (diff) | |
download | mpv-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/demux_edl.c')
-rw-r--r-- | demux/demux_edl.c | 11 |
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; } |