demux_edl: add title option to override title of chapters

This commit is contained in:
sfan5 2018-07-31 19:46:19 +02:00
parent d5cad85625
commit 2e7f60c386
2 changed files with 22 additions and 1 deletions

View File

@ -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
==================

View File

@ -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