video: cap CPU cores + thermal-manage RIFE interpolation
rife-ncnn-vulkan and the ffmpeg frame extract/encode were grabbing all cores
and ran with no ongoing thermal control. Now:
- _cpu_thread_limit() mirrors coderai's half-the-cores cap (honours the
OMP_NUM_THREADS set at import). All ffmpeg calls in the upscale + interpolate
paths pass -threads N and are CPU-pinned via a sched_setaffinity preexec_fn;
rife gets -j capped and the same affinity pin — so neither can saturate 24
cores.
- RIFE is one opaque subprocess, so it now runs under a watcher thread that
SIGSTOPs it when the GPU/CPU exceeds the configured thermal-high threshold and
SIGCONTs it once cooled (the subprocess analogue of the upscaler's per-frame
thermal gate), and terminates it on task cancel. Per-frame progress preserved.
Co-Authored-By:
Claude Opus 4.8 <noreply@anthropic.com>
Showing
Please
register
or
sign in
to comment