I have a lot of 1080p60 lossless videos encoded with ffv1/flac. VLC fails to decode these files in real time, the playback is stuttering constantly.
Then I found that VLC is only using 50% of my CPU. And when I increase the thread count (was 0, I suppose that means auto?) of FFmpeg decoder in advanced settings, the video can actually be played back smoothly.
Thus I suspect that VLC is only using 1 thread per core, rather than 2, which explains the 50% CPU usage.
Most modern applications will actually recognize SMT (simultaneous multithreading) / HT (hyperthreading) capability and double the thread count. Why wouldn't VLC do this by default?