summaryrefslogtreecommitdiffstats
path: root/demux/demux_edl.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-02-17 23:49:38 +0100
committerDiogo Franco (Kovensky) <diogomfranco@gmail.com>2015-02-19 13:39:39 +0900
commit7ea82eb7bc2d95bffa3135c8d93930c8b88e32b6 (patch)
tree845fb97772122938774c75df2f2a9d76731cdc15 /demux/demux_edl.c
parent3be989dcd04c1c061f570d6dbc5a98e4a15aefc5 (diff)
downloadmpv-7ea82eb7bc2d95bffa3135c8d93930c8b88e32b6.tar.bz2
mpv-7ea82eb7bc2d95bffa3135c8d93930c8b88e32b6.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. (cherry picked from commit 082371a1603eaaa6c5c9f4bd57f9e77ff027ee15)
Diffstat (limited to 'demux/demux_edl.c')
-rw-r--r--demux/demux_edl.c19
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;
}