From 2e7f60c38691fddfa67da07ac5ca2ad15dc84097 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Tue, 31 Jul 2018 19:46:19 +0200 Subject: demux_edl: add title option to override title of chapters --- DOCS/edl-mpv.rst | 18 ++++++++++++++++++ demux/demux_edl.c | 5 ++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/DOCS/edl-mpv.rst b/DOCS/edl-mpv.rst index 7c9f64e160..2d451926cb 100644 --- a/DOCS/edl-mpv.rst +++ b/DOCS/edl-mpv.rst @@ -147,6 +147,24 @@ Example:: Plays chapter 3 and ends with the start of chapter 7 (4 chapters later). +Implicit chapters +================= + +mpv will add one chapter per segment entry to the virtual timeline. + +By default, the chapter's titles will match the entries' filenames. +You can override set the ``title`` option to override the chapter title for +that segment. + +Example:: + + # mpv EDL v0 + cap.ts,5,240 + OP.mkv,0,90,title=Show Opening + +The virtual timeline will have two chapters, one called "cap.ts" from 0-240s +and a second one called "Show Opening" from 240-330s. + Syntax of EDL URIs ================== diff --git a/demux/demux_edl.c b/demux/demux_edl.c index 36a9c2cc3b..b724ffa592 100644 --- a/demux/demux_edl.c +++ b/demux/demux_edl.c @@ -41,6 +41,7 @@ struct tl_part { bool offset_set; bool chapter_ts; double length; // length of the part (-1 if rest of the file) + char *title; }; struct tl_parts { @@ -123,6 +124,8 @@ static struct tl_parts *parse_edl(bstr str) } else if (bstr_equals0(name, "timestamps")) { if (bstr_equals0(val, "chapters")) p.chapter_ts = true; + } else if (bstr_equals0(name, "title")) { + p.title = bstrto0(tl, val); } if (nparam >= MAX_PARAMS) goto error; @@ -296,7 +299,7 @@ static void build_timeline(struct timeline *tl, struct tl_parts *parts) .pts = starttime, .metadata = talloc_zero(tl, struct mp_tags), }; - mp_tags_set_str(ch.metadata, "title", part->filename); + 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 -- cgit v1.2.3