diff options
author | wm4 <wm4@nowhere> | 2019-01-05 08:43:58 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2019-09-19 20:37:04 +0200 |
commit | b230525352a8c43f00497774f81569c4ea026d6b (patch) | |
tree | 742873021da375786a53b873a835deb56fb2b490 /demux/demux_edl.c | |
parent | b8f282fd32223057bb7db3615b0600047dd54425 (diff) | |
download | mpv-b230525352a8c43f00497774f81569c4ea026d6b.tar.bz2 mpv-b230525352a8c43f00497774f81569c4ea026d6b.tar.xz |
demux_edl: add a special header to disable chapter generation
A bit of a hack.
Diffstat (limited to 'demux/demux_edl.c')
-rw-r--r-- | demux/demux_edl.c | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/demux/demux_edl.c b/demux/demux_edl.c index 98e31a79f2..882af417e7 100644 --- a/demux/demux_edl.c +++ b/demux/demux_edl.c @@ -45,6 +45,7 @@ struct tl_part { }; struct tl_parts { + bool disable_chapters; bool dash; char *init_fragment_url; struct tl_part *parts; @@ -153,6 +154,8 @@ static struct tl_parts *parse_edl(bstr str) struct tl_parts *ntl = talloc_zero(tl, struct tl_parts); tl->next = ntl; tl = ntl; + } else if (bstr_equals0(f_type, "no_chapters")) { + tl->disable_chapters = true; } else { goto error; } @@ -309,17 +312,20 @@ static void build_timeline(struct timeline *tl, struct tl_parts *parts) } } - // Add a chapter between each file. - struct demux_chapter ch = { - .pts = starttime, - .metadata = talloc_zero(tl, struct mp_tags), - }; - mp_tags_set_str(ch.metadata, "title", part->title ? part->title : part->filename); - MP_TARRAY_APPEND(tl, tl->chapters, tl->num_chapters, ch); - - // Also copy the source file's chapters for the relevant parts - copy_chapters(&tl->chapters, &tl->num_chapters, source, part->offset, - part->length, starttime); + if (!parts->disable_chapters) { + // Add a chapter between each file. + struct demux_chapter ch = { + .pts = starttime, + .metadata = talloc_zero(tl, struct mp_tags), + }; + mp_tags_set_str(ch.metadata, "title", + part->title ? part->title : part->filename); + MP_TARRAY_APPEND(tl, tl->chapters, tl->num_chapters, ch); + + // Also copy the source file's chapters for the relevant parts + copy_chapters(&tl->chapters, &tl->num_chapters, source, + part->offset, part->length, starttime); + } } tl->parts[n] = (struct timeline_part) { |