void push_pts(int64_t pts)
{
if (buf.empty() && num_b_frames > 0) { // First frame.
- int64_t base_dts = pts - num_b_frames * (TIMEBASE / MAX_FPS);
+ int64_t base_dts = pts - num_b_frames * (TIMEBASE / TYPICAL_FPS);
for (int i = 0; i < num_b_frames; ++i) {
- buf.push(base_dts + i * (TIMEBASE / MAX_FPS));
+ buf.push(base_dts + i * (TIMEBASE / TYPICAL_FPS));
}
}
buf.push(pts);
int display_frame_num = pending_frame.first;
assert(display_frame_num > 0);
PendingFrame frame = move(pending_frame.second);
- int64_t dts = last_dts + (TIMEBASE / MAX_FPS);
+ int64_t dts = last_dts + (TIMEBASE / TYPICAL_FPS);
printf("Finalizing encode: Encoding leftover frame %d as P-frame instead of B-frame.\n", display_frame_num);
encode_frame(frame, encoding_frame_num++, display_frame_num, gop_start_display_frame_num, FRAME_P, frame.pts, dts, frame.duration, frame.ycbcr_coefficients);
last_dts = dts;