void obs_output_stop(obs_output_t *output) { bool encoded; if (!obs_output_valid(output, "obs_output_stop")) return; if (!output->context.data) return; encoded = (output->info.flags & OBS_OUTPUT_ENCODED) != 0; if (encoded && output->active_delay_ns) { obs_output_delay_stop(output); } else { obs_output_actual_stop(output, false); do_output_signal(output, "stopping"); } }
void obs_output_stop(obs_output_t *output) { bool encoded; if (!obs_output_valid(output, "obs_output_stop")) return; if (!output->context.data) return; if (!active(output) && !reconnecting(output)) return; if (reconnecting(output)) { obs_output_force_stop(output); return; } encoded = (output->info.flags & OBS_OUTPUT_ENCODED) != 0; if (encoded && output->active_delay_ns) { obs_output_delay_stop(output); } else if (!stopping(output)) { do_output_signal(output, "stopping"); obs_output_actual_stop(output, false, os_gettime_ns()); } }