diff options
author | Martin Herkt <lachs0r@srsfckn.biz> | 2016-06-25 02:25:44 +0200 |
---|---|---|
committer | Martin Herkt <lachs0r@srsfckn.biz> | 2016-06-25 02:25:44 +0200 |
commit | ad56f2c46ac6deec86870ec10f2a11a644df07d4 (patch) | |
tree | 89f2d90c5586560911e67c872b530c77f151168d /demux/demux_edl.c | |
parent | 0536841647ef7931bffb4386d8ffbb5b2b568e8a (diff) | |
parent | 393bb2a565dc1e27812e1dd20747814892f80da2 (diff) | |
download | mpv-ad56f2c46ac6deec86870ec10f2a11a644df07d4.tar.bz2 mpv-ad56f2c46ac6deec86870ec10f2a11a644df07d4.tar.xz |
Merge branch 'master' into release/current
Diffstat (limited to 'demux/demux_edl.c')
-rw-r--r-- | demux/demux_edl.c | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/demux/demux_edl.c b/demux/demux_edl.c index aeccab406f..f4968905bd 100644 --- a/demux/demux_edl.c +++ b/demux/demux_edl.c @@ -213,25 +213,25 @@ static void build_timeline(struct timeline *tl, struct tl_parts *parts) resolve_timestamps(part, source); - double len = source_get_length(source); - if (len > 0) { - len += source->start_time; - } else { - MP_WARN(tl, "EDL: source file '%s' has unknown duration.\n", - part->filename); - } + double end_time = source_get_length(source); + if (end_time >= 0) + end_time += source->start_time; // Unknown length => use rest of the file. If duration is unknown, make // something up. - if (part->length < 0) - part->length = (len < 0 ? 1 : len) - part->offset; - - if (len > 0) { - double partlen = part->offset + part->length; - if (partlen > len) { + if (part->length < 0) { + if (end_time < 0) { + MP_WARN(tl, "EDL: source file '%s' has unknown duration.\n", + part->filename); + end_time = 1; + } + part->length = end_time - part->offset; + } else if (end_time >= 0) { + double end_part = part->offset + part->length; + if (end_part > end_time) { MP_WARN(tl, "EDL: entry %d uses %f " "seconds, but file has only %f seconds.\n", - n, partlen, len); + n, end_part, end_time); } } |