- if (speed_control) {
- speed_control->before_frame(float(free_frames.size()) / X264_QUEUE_LENGTH, X264_QUEUE_LENGTH, 1e6 * qf.duration / TIMEBASE);
- }
- x264_encoder_encode(x264, &nal, &num_nal, &pic, &pic);
- if (speed_control) {
- speed_control->after_frame();
- }
- } else {
- if (speed_control) {
- speed_control->before_frame(float(free_frames.size()) / X264_QUEUE_LENGTH, X264_QUEUE_LENGTH, 1e6 * qf.duration / TIMEBASE);
- }
- x264_encoder_encode(x264, &nal, &num_nal, nullptr, &pic);
- if (speed_control) {
- speed_control->after_frame();
- }
+ input_pic = &pic;
+ }
+
+ if (speed_control) {
+ speed_control->before_frame(float(free_frames.size()) / X264_QUEUE_LENGTH, X264_QUEUE_LENGTH, 1e6 * qf.duration / TIMEBASE);
+ }
+ x264_encoder_encode(x264, &nal, &num_nal, input_pic, &pic);
+ if (speed_control) {
+ speed_control->after_frame();