summaryrefslogtreecommitdiffstats
path: root/demux/demux_cue.c
diff options
context:
space:
mode:
Diffstat (limited to 'demux/demux_cue.c')
-rw-r--r--demux/demux_cue.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/demux/demux_cue.c b/demux/demux_cue.c
index 494ca6a78b..969c3ebb84 100644
--- a/demux/demux_cue.c
+++ b/demux/demux_cue.c
@@ -76,6 +76,10 @@ struct cue_track {
struct bstr title;
};
+struct priv {
+ bstr data;
+};
+
static enum cue_command read_cmd(struct bstr *data, struct bstr *out_params)
{
struct bstr line = bstr_strip_linebreaks(bstr_getline(*data, data));
@@ -279,11 +283,13 @@ static double source_get_length(struct demuxer *demuxer)
static void build_timeline(struct timeline *tl)
{
+ struct priv *p = tl->demuxer->priv;
+
void *ctx = talloc_new(NULL);
add_source(tl, tl->demuxer);
- struct bstr data = tl->demuxer->file_contents;
+ struct bstr data = p->data;
data = skip_utf8_bom(data);
struct cue_track *tracks = NULL;
@@ -425,8 +431,10 @@ static int try_open_file(struct demuxer *demuxer, enum demux_check check)
if (d.len < 1 || !mp_probe_cue(d))
return -1;
}
- demuxer->file_contents = stream_read_complete(s, demuxer, 1000000);
- if (demuxer->file_contents.start == NULL)
+ struct priv *p = talloc_zero(demuxer, struct priv);
+ demuxer->priv = p;
+ p->data = stream_read_complete(s, demuxer, 1000000);
+ if (p->data.start == NULL)
return -1;
return 0;
}