From 89f9f69e3fa50083fd9df9c0628885c88f36bf4a Mon Sep 17 00:00:00 2001 From: Nicolas George Date: Wed, 27 Feb 2013 17:47:15 +0100 Subject: lavf: rescale duration for chained muxers. Fix trac ticket #2300 because the duration of the segments was computed using the timestamp of the last packet plus its duration using the 1/90000 default time base instead of using the chained muxer time base. --- libavformat/utils.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'libavformat') diff --git a/libavformat/utils.c b/libavformat/utils.c index 3df8c51ddd..60242056f1 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -3967,6 +3967,10 @@ int ff_write_chained(AVFormatContext *dst, int dst_stream, AVPacket *pkt, local_pkt.dts = av_rescale_q(pkt->dts, src->streams[pkt->stream_index]->time_base, dst->streams[dst_stream]->time_base); + if (pkt->duration) + local_pkt.duration = av_rescale_q(pkt->duration, + src->streams[pkt->stream_index]->time_base, + dst->streams[dst_stream]->time_base); return av_write_frame(dst, &local_pkt); } -- cgit v1.2.3