From: Jaroslav Kysela Date: Thu, 24 Aug 2017 12:30:51 +0000 (+0200) Subject: muxer libav: do more precise pts/dts rescale X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=99d191a46646450279c0735707732e0ed1e7ce14;p=thirdparty%2Ftvheadend.git muxer libav: do more precise pts/dts rescale --- diff --git a/src/muxer/muxer_libav.c b/src/muxer/muxer_libav.c index 1841be55b..da6b6cff6 100644 --- a/src/muxer/muxer_libav.c +++ b/src/muxer/muxer_libav.c @@ -499,9 +499,12 @@ lav_muxer_write_pkt(muxer_t *m, streaming_message_type_t smt, void *data) packet.stream_index = st->index; - packet.pts = av_rescale_q(pkt->pkt_pts , mpeg_tc, st->time_base); - packet.dts = av_rescale_q(pkt->pkt_dts , mpeg_tc, st->time_base); - packet.duration = av_rescale_q(pkt->pkt_duration, mpeg_tc, st->time_base); + packet.pts = av_rescale_q_rnd(pkt->pkt_pts, mpeg_tc, st->time_base, + AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX); + packet.dts = av_rescale_q_rnd(pkt->pkt_dts, mpeg_tc, st->time_base, + AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX); + packet.duration = av_rescale_q_rnd(pkt->pkt_duration, mpeg_tc, st->time_base, + AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX); if(!SCT_ISVIDEO(pkt->pkt_type) || pkt->v.pkt_frametype < PKT_P_FRAME) packet.flags |= AV_PKT_FLAG_KEY;