diff options
author | wm4 <wm4@nowhere> | 2015-02-17 23:49:38 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-02-17 23:49:38 +0100 |
commit | 082371a1603eaaa6c5c9f4bd57f9e77ff027ee15 (patch) | |
tree | 73ca8568f3f50c73cf7d7145ed402d52c3593d7e /demux/demux_edl.c | |
parent | d7a4cb14ff8dc61d87cec54abcd7f7623e8cc666 (diff) | |
download | mpv-082371a1603eaaa6c5c9f4bd57f9e77ff027ee15.tar.bz2 mpv-082371a1603eaaa6c5c9f4bd57f9e77ff027ee15.tar.xz |
demux: remove file_contents field
Only demux_cue and demux_edl used it. It's a weird field and doesn't
help with anything anymore - by now, it only saves a priv context in the
mentioned demuxers. Reducing the number of confusing things the demuxer
struct has is more important than minimizing the code.
Diffstat (limited to 'demux/demux_edl.c')
-rw-r--r-- | demux/demux_edl.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/demux/demux_edl.c b/demux/demux_edl.c index ef557225e9..c9f8f344be 100644 --- a/demux/demux_edl.c +++ b/demux/demux_edl.c @@ -50,6 +50,10 @@ struct tl_parts { int num_parts; }; +struct priv { + bstr data; +}; + // Parse a time (absolute file time or duration). Currently equivalent to a // number. Return false on failure. static bool parse_time(bstr str, double *out_time) @@ -288,7 +292,9 @@ static void fix_filenames(struct tl_parts *parts, char *source_path) static void build_mpv_edl_timeline(struct timeline *tl) { - struct tl_parts *parts = parse_edl(tl->demuxer->file_contents); + struct priv *p = tl->demuxer->priv; + + struct tl_parts *parts = parse_edl(p->data); if (!parts) { MP_ERR(tl, "Error in EDL.\n"); return; @@ -303,19 +309,22 @@ static void build_mpv_edl_timeline(struct timeline *tl) static int try_open_file(struct demuxer *demuxer, enum demux_check check) { + struct priv *p = talloc_zero(demuxer, struct priv); + demuxer->priv = p; + struct stream *s = demuxer->stream; if (s->uncached_type == STREAMTYPE_EDL) { - demuxer->file_contents = bstr0(s->path); + p->data = bstr0(s->path); return 0; } if (check >= DEMUX_CHECK_UNSAFE) { 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) + p->data = stream_read_complete(s, demuxer, 1000000); + if (p->data.start == NULL) return -1; - bstr_eatstart0(&demuxer->file_contents, HEADER); + bstr_eatstart0(&p->data, HEADER); return 0; } |