DemuxLoop controls triggering buffering starvation/PCR_RESET
For stable playback, re-buffering needs to be guaranteed to happen before emptying previously buffered data.
es_out_GetWakeup/ES_OUT_PRIV_GET_WAKE_UP provides feedback to set up pacing accordingly.
Due to the Demux() ControlsPop() sequence, the synchronous controls can sometimes not guarantee to re-enter the demux buffering calls before emptying the current buffer.
On the es_out side, this is seen as PCR being more late than buffering amount, which means we're now below clock synchro point, and as we can't go back in time, triggers a PCR_RESET.