diff --git a/demux/demux_edl.c b/demux/demux_edl.c index 7016df3558..62e6c50070 100644 --- a/demux/demux_edl.c +++ b/demux/demux_edl.c @@ -270,8 +270,11 @@ static struct timeline_par *build_timeline(struct timeline *root, MP_VERBOSE(root, "Opening init fragment...\n"); stream_t *s = stream_create(parts->init_fragment_url, STREAM_READ, root->cancel, root->global); - if (s) + if (s) { + root->is_network |= s->is_network; + root->is_streaming |= s->streaming; tl->init_fragment = stream_read_complete(s, tl, 1000000); + } free_stream(s); if (!tl->init_fragment.len) { MP_ERR(root, "Could not read init fragment.\n"); diff --git a/demux/demux_timeline.c b/demux/demux_timeline.c index b18ae70faa..aefca9f1c9 100644 --- a/demux/demux_timeline.c +++ b/demux/demux_timeline.c @@ -525,6 +525,9 @@ static int d_open(struct demuxer *demuxer, enum demux_check check) if (!p->num_sources) return -1; + demuxer->is_network |= p->tl->is_network; + demuxer->is_streaming |= p->tl->is_streaming; + demuxer->duration = p->duration; print_timeline(demuxer); diff --git a/demux/timeline.h b/demux/timeline.h index d4a7b39403..e64b2f96c9 100644 --- a/demux/timeline.h +++ b/demux/timeline.h @@ -35,6 +35,7 @@ struct timeline { struct mp_log *log; struct mp_cancel *cancel; + bool is_network, is_streaming; const char *format; // main source, and all other sources (this usually only has special meaning