mirror of
https://github.com/mpv-player/mpv
synced 2024-12-22 14:52:43 +00:00
demux: timeline: honor quit requests
This commit is contained in:
parent
1cac7d1a65
commit
ee653b8a26
@ -192,7 +192,7 @@ static bool try_open(struct timeline *tl, char *filename)
|
||||
|| bstrcasecmp(bstr0(tl->demuxer->filename), bfilename) == 0)
|
||||
return false;
|
||||
|
||||
struct stream *s = stream_open(filename, tl->global);
|
||||
struct stream *s = stream_create(filename, STREAM_READ, tl->cancel, tl->global);
|
||||
if (!s)
|
||||
return false;
|
||||
struct demuxer *d = demux_open(s, NULL, tl->global);
|
||||
|
@ -141,7 +141,7 @@ static struct demuxer *open_source(struct timeline *tl, char *filename)
|
||||
if (strcmp(d->stream->url, filename) == 0)
|
||||
return d;
|
||||
}
|
||||
struct demuxer *d = demux_open_url(filename, NULL, NULL, tl->global);
|
||||
struct demuxer *d = demux_open_url(filename, NULL, tl->cancel, tl->global);
|
||||
if (d) {
|
||||
MP_TARRAY_APPEND(tl, tl->sources, tl->num_sources, d);
|
||||
} else {
|
||||
|
@ -47,6 +47,7 @@
|
||||
struct tl_ctx {
|
||||
struct mp_log *log;
|
||||
struct mpv_global *global;
|
||||
struct timeline *tl;
|
||||
|
||||
struct demuxer *demuxer;
|
||||
|
||||
@ -174,7 +175,11 @@ static bool check_file_seg(struct tl_ctx *ctx, struct demuxer ***sources,
|
||||
.matroska_was_valid = &was_valid,
|
||||
.disable_cache = true,
|
||||
};
|
||||
struct demuxer *d = demux_open_url(filename, ¶ms, NULL, ctx->global);
|
||||
struct mp_cancel *cancel = ctx->tl->cancel;
|
||||
if (mp_cancel_test(cancel))
|
||||
return false;
|
||||
|
||||
struct demuxer *d = demux_open_url(filename, ¶ms, cancel, ctx->global);
|
||||
if (!d)
|
||||
return false;
|
||||
|
||||
@ -212,7 +217,7 @@ static bool check_file_seg(struct tl_ctx *ctx, struct demuxer ***sources,
|
||||
{
|
||||
free_demuxer_and_stream(d);
|
||||
params.disable_cache = false;
|
||||
d = demux_open_url(filename, ¶ms, NULL, ctx->global);
|
||||
d = demux_open_url(filename, ¶ms, cancel, ctx->global);
|
||||
if (!d)
|
||||
continue;
|
||||
}
|
||||
@ -518,6 +523,7 @@ void build_ordered_chapter_timeline(struct timeline *tl)
|
||||
*ctx = (struct tl_ctx){
|
||||
.log = tl->log,
|
||||
.global = tl->global,
|
||||
.tl = tl,
|
||||
.demuxer = demuxer,
|
||||
};
|
||||
|
||||
|
@ -14,6 +14,7 @@ struct timeline *timeline_load(struct mpv_global *global, struct mp_log *log,
|
||||
*tl = (struct timeline){
|
||||
.global = global,
|
||||
.log = log,
|
||||
.cancel = demuxer->stream->cancel,
|
||||
.demuxer = demuxer,
|
||||
.track_layout = demuxer,
|
||||
};
|
||||
|
@ -10,6 +10,7 @@ struct timeline_part {
|
||||
struct timeline {
|
||||
struct mpv_global *global;
|
||||
struct mp_log *log;
|
||||
struct mp_cancel *cancel;
|
||||
|
||||
// main source
|
||||
struct demuxer *demuxer;
|
||||
|
Loading…
Reference in New Issue
Block a user