Index: www/chromium/files/sndio_output.cc =================================================================== --- www/chromium/files/sndio_output.cc (revision 508746) +++ www/chromium/files/sndio_output.cc (working copy) @@ -58,7 +58,7 @@ sio_initpar(&par); par.rate = params.sample_rate(); par.pchan = params.channels(); - par.bits = SampleFormatToBitsPerChannel(kSampleFormat); + par.bits = SampleFormatToBitsPerChannel(kSampleFormat); par.bps = par.bits / 8; par.sig = sig = par.bits != 8 ? 1 : 0; par.le = SIO_LE_NATIVE; @@ -139,6 +139,10 @@ pthread_mutex_unlock(&mutex); } +// This stream is always used with sub second buffer sizes, where it's +// sufficient to simply always flush upon Start(). +void SndioAudioOutputStream::Flush() {} + void SndioAudioOutputStream::ThreadLoop(void) { int avail, count, result; @@ -153,7 +157,7 @@ // Get data to play const base::TimeDelta delay = AudioTimestampHelper::FramesToTime(hw_delay, - params.sample_rate()); + params.sample_rate()); count = source->OnMoreData(delay, base::TimeTicks::Now(), 0, audio_bus.get()); audio_bus->ToInterleaved(count, SampleFormatToBytesPerChannel(kSampleFormat), buffer); if (count == 0) { Index: www/chromium/files/sndio_output.h =================================================================== --- www/chromium/files/sndio_output.h (revision 508746) +++ www/chromium/files/sndio_output.h (working copy) @@ -31,6 +31,7 @@ void Stop() override; void SetVolume(double volume) override; void GetVolume(double* volume) override; + void Flush() override; friend void sndio_onmove(void *arg, int delta); friend void sndio_onvol(void *arg, unsigned int vol);