vo: change vo_frame duration to double

32-bit signed integer can hold ~2.1s stored as nanoseconds. While frame
duration doesn't make sense to be this long, the existing clamp is to
10s. Change type to double, which is consistent with other fields in
vo_frame.
This commit is contained in:
Kacper Michajłow 2024-01-25 21:03:51 +01:00 committed by Dudemanguy
parent c243946338
commit dd491c7c61
2 changed files with 2 additions and 2 deletions

View File

@ -1252,7 +1252,7 @@ void write_video(struct MPContext *mpctx)
diff /= mpctx->video_speed;
if (mpctx->time_frame < 0)
diff += mpctx->time_frame;
frame->duration = MPCLAMP(diff, 0, 10) * 1e9;
frame->duration = MP_TIME_S_TO_NS(MPCLAMP(diff, 0, 10));
}
mpctx->video_pts = mpctx->next_frames[0]->pts;

View File

@ -211,7 +211,7 @@ struct vo_frame {
// If 0, present immediately.
int64_t pts;
// Approximate frame duration, in ns.
int duration;
double duration;
// Realtime of estimated distance between 2 vsync events.
double vsync_interval;
// "ideal" display time within the vsync