Module: libav Branch: master Commit: 4f1500689d662cfe08bff6d949f7fb49311024da
Author: Mans Rullgard <[email protected]> Committer: Mans Rullgard <[email protected]> Date: Thu May 10 12:19:10 2012 +0100 avconv: use lrint() for rounding double timestamps Converting the double to float for lrintf() loses precision when the value is not exactly representable as a single-precision float. Apart from being inaccurate, this causes discrepancies in some configurations due to differences in rounding. Note that the changed timestamp in the vc1-ism test is a bogus, made-up value. Signed-off-by: Mans Rullgard <[email protected]> --- avconv.c | 4 ++-- tests/ref/fate/vc1-ism | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/avconv.c b/avconv.c index 1aed704..c157778 100644 --- a/avconv.c +++ b/avconv.c @@ -1697,10 +1697,10 @@ static void do_video_out(AVFormatContext *s, if (delta <= -0.6) nb_frames = 0; else if (delta > 0.6) - ost->sync_opts = lrintf(sync_ipts); + ost->sync_opts = lrint(sync_ipts); break; case VSYNC_PASSTHROUGH: - ost->sync_opts = lrintf(sync_ipts); + ost->sync_opts = lrint(sync_ipts); break; default: av_assert0(0); diff --git a/tests/ref/fate/vc1-ism b/tests/ref/fate/vc1-ism index a9cfb2c..a4d29cc 100644 --- a/tests/ref/fate/vc1-ism +++ b/tests/ref/fate/vc1-ism @@ -118,4 +118,4 @@ 0, 48750000, 48750000, 0, 37440, 0xf0fe8c1c 0, 49170000, 49170000, 0, 37440, 0xc0036222 0, 49590000, 49590000, 0, 37440, 0x3058385c -0, 49798332, 49798332, 0, 37440, 0x68141016 +0, 49798330, 49798330, 0, 37440, 0x68141016 _______________________________________________ libav-commits mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-commits
