Drop WebRTC audio data if OS has skipped frames.

This ensures that we get what is actually played out with what we feed to the echo canceler as far-end data back in sync as quickly as possible after a skip, which in turn reduces the risk of echo. We drop data in WebRtcAudioRenderer::Render.

The fifo is created (if it doesn't exist) if the number of skipped frames is not 10 ms of data.

This CL also removes creating a new fifo unecessarily if only the sink's frames per buffer changes but not the source's (when they differ).

BUG=560371

Review URL: https://codereview.chromium.org/1596523005

Cr-Commit-Position: refs/heads/master@{#370686}
5 files changed