diff options
author | wm4 <wm4@nowhere> | 2013-06-01 19:54:34 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2013-06-03 22:40:06 +0200 |
commit | 6dbedd27d53b61744d512e27bb0c3853cf6d7bba (patch) | |
tree | 338f2c5ff1f900f6593b6bc1e15b2fd48efac2e8 /demux | |
parent | b11bd1fe5e82fb7cd9aa912c2b1c98de8704bb87 (diff) | |
download | mpv-6dbedd27d53b61744d512e27bb0c3853cf6d7bba.tar.bz2 mpv-6dbedd27d53b61744d512e27bb0c3853cf6d7bba.tar.xz |
demux_lavf: always set packet duration
Makes WebVTT actually work.
Also simplify the logic for setting duration. Only the subtitle path
uses the packet duration, so the checks for STREAM_SUB as well as the
keyframe flag are redundant.
Apparently duration and convergence_duration are the same thing, but
convergence_duration was added as Matroska-specific hack to get a higher
value range (int vs. int64_t) with high resolution Matroska timebases.
For us it doesn't matter, because double floats are used for timestamps
and durations.
Diffstat (limited to 'demux')
-rw-r--r-- | demux/demux_lavf.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/demux/demux_lavf.c b/demux/demux_lavf.c index a978bc9cee..a482f736c6 100644 --- a/demux/demux_lavf.c +++ b/demux/demux_lavf.c @@ -671,11 +671,8 @@ static int demux_lavf_fill_buffer(demuxer_t *demux, demux_stream_t *dsds) if (ts != AV_NOPTS_VALUE) { dp->pts = ts * av_q2d(st->time_base); priv->last_pts = dp->pts * AV_TIME_BASE; - // always set duration for subtitles, even if AV_PKT_FLAG_KEY isn't set, - // otherwise they will stay on screen to long if e.g. ASS is demuxed - // from mkv - if ((stream->type == STREAM_SUB || (pkt->flags & AV_PKT_FLAG_KEY)) && - pkt->convergence_duration > 0) + dp->duration = pkt->duration * av_q2d(st->time_base); + if (pkt->convergence_duration > 0) dp->duration = pkt->convergence_duration * av_q2d(st->time_base); } dp->pos = demux->filepos; |