int64_t in_pts = lrint(in_pts_origin + TIMEBASE * frameno * speed / output_framerate);
pts = lrint(out_pts);
+ steady_clock::duration time_behind = steady_clock::now() - next_frame_start;
+ if (time_behind >= milliseconds(200)) {
+ fprintf(stderr, "WARNING: %ld ms behind, dropping a frame (no matter the type).\n",
+ lrint(1e3 * duration<double>(time_behind).count()));
+ continue;
+ }
+
int64_t in_pts_lower, in_pts_upper;
// Find the frame immediately before and after this point.
continue;
}
+ if (time_behind >= milliseconds(100)) {
+ fprintf(stderr, "WARNING: %ld ms behind, dropping an interpolated frame.\n",
+ lrint(1e3 * duration<double>(time_behind).count()));
+ continue;
+ }
+
double alpha = double(in_pts - in_pts_lower) / (in_pts_upper - in_pts_lower);
if (video_stream == nullptr) {