mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
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 <mans@mansr.com>
This commit is contained in:
parent
110d0cdc9d
commit
4f1500689d
4
avconv.c
4
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);
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user