| Index: content/browser/renderer_host/media/audio_sync_reader.cc
|
| ===================================================================
|
| --- content/browser/renderer_host/media/audio_sync_reader.cc (revision 104976)
|
| +++ content/browser/renderer_host/media/audio_sync_reader.cc (working copy)
|
| @@ -21,8 +21,21 @@
|
| AudioSyncReader::~AudioSyncReader() {
|
| }
|
|
|
| +bool AudioSyncReader::DataReady() {
|
| + return !media::IsUnknownDataSize(
|
| + shared_memory_,
|
| + media::PacketSizeSizeInBytes(shared_memory_->created_size()));
|
| +}
|
| +
|
| // media::AudioOutputController::SyncReader implementations.
|
| void AudioSyncReader::UpdatePendingBytes(uint32 bytes) {
|
| + if (bytes != static_cast<uint32>(media::AudioOutputController::kPauseMark)) {
|
| + // Store unknown length of data into buffer, so we later
|
| + // can find out if data became available.
|
| + media::SetUnknownDataSize(
|
| + shared_memory_,
|
| + media::PacketSizeSizeInBytes(shared_memory_->created_size()));
|
| + }
|
| socket_->Send(&bytes, sizeof(bytes));
|
| }
|
|
|
| @@ -38,7 +51,7 @@
|
| // Optimization: if renderer is "new" one that writes length of data we can
|
| // stop yielding the moment length is written -- not ideal solution,
|
| // but better than nothing.
|
| - while (media::IsUnknownDataSize(shared_memory_, max_size) &&
|
| + while (!DataReady() &&
|
| ((base::Time::Now() - previous_call_time_).InMilliseconds() <
|
| kMinIntervalBetweenReadCallsInMs)) {
|
| base::PlatformThread::YieldCurrentThread();
|
|
|