This avoids a systematic overestimate of the segments duration when there
are several streams.
Fix trac ticket #3724.
---
libavformat/segment.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavformat/segment.c b/libavformat/segment.c
index 3de4623..7c3a3c5 100644
--- a/libavformat/segment.c
+++ b/libavformat/segment.c
@@ -728,7 +728,7 @@ static int seg_write_packet(AVFormatContext *s, AVPacket
*pkt)
seg->cur_entry.index = seg->segment_idx +
seg->segment_idx_wrap*seg->segment_idx_wrap_nb;
seg->cur_entry.start_time = (double)pkt->pts * av_q2d(st->time_base);
seg->cur_entry.start_pts = av_rescale_q(pkt->pts, st->time_base,
AV_TIME_BASE_Q);
- } else if (pkt->pts != AV_NOPTS_VALUE) {
+ } else if (pkt->pts != AV_NOPTS_VALUE && pkt->stream_index ==
seg->reference_stream_index) {
seg->cur_entry.end_time =
FFMAX(seg->cur_entry.end_time, (double)(pkt->pts + pkt->duration)
* av_q2d(st->time_base));
}
--
1.8.3.2
_______________________________________________
ffmpeg-devel mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel