Dynamically FIFO when OSX requests unexpected frame counts.

Previously we would just return silence in this case.  However we
did not invoke the AudioSourceCallback which would leave clients
hanging.

Traces don't seem to indicate this is the cause of OSX audio
dropouts (the "AUHALStream::Render" traces are not even present
when the bug occurs).  However I'd like to remove all instances
where we're returning silence w/o triggering an error.

This change fixes an additional issue where we weren't calculating
the latency correctly.  Chrome expects the AudioBuffersState to be
calculated for all channels, while CoreAudio expects mBytesPerFrame
to be sizeof(Float32) for planar data.

BUG=160920
TEST=force buffer size increase/decrease, check playback is okay.

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236378 0039d316-1c4b-4281-b951-d872f2087c98
2 files changed