Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1640)

Unified Diff: content/browser/renderer_host/media/audio_sync_reader.cc

Issue 7831050: Revert 99236 - Very short-term change: while working on proper long-term solution, (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/renderer_host/media/audio_sync_reader.h ('k') | media/audio/audio_util.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/renderer_host/media/audio_sync_reader.cc
===================================================================
--- content/browser/renderer_host/media/audio_sync_reader.cc (revision 99444)
+++ content/browser/renderer_host/media/audio_sync_reader.cc (working copy)
@@ -8,12 +8,9 @@
#include "base/process_util.h"
#include "base/shared_memory.h"
-#include "base/threading/platform_thread.h"
#include "media/audio/audio_buffers_state.h"
#include "media/audio/audio_util.h"
-const int kMinIntervalBetweenReadCalls = 10;
-
AudioSyncReader::AudioSyncReader(base::SharedMemory* shared_memory)
: shared_memory_(shared_memory) {
}
@@ -29,19 +26,6 @@
uint32 AudioSyncReader::Read(void* data, uint32 size) {
uint32 max_size = media::PacketSizeSizeInBytes(
shared_memory_->created_size());
-
- // HACK: yield if reader is called too often.
- // Problem is lack of synchronization between host and renderer. We cannot be
- // sure if renderer already filled the buffer, and due to all the plugins we
- // cannot change the API, so we yield if previous call was too recent.
- // 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) &&
- ((base::Time::Now() - previous_call_time_).InMilliseconds() <
- kMinIntervalBetweenReadCalls)) {
- base::PlatformThread::YieldCurrentThread();
- }
uint32 read_size = std::min(media::GetActualDataSizeInBytes(shared_memory_,
max_size),
size);
@@ -56,11 +40,9 @@
// Zero out the entire buffer.
memset(shared_memory_->memory(), 0, max_size);
- // Store unknown length of data into buffer, in case renderer does not store
- // the length itself. It also helps in decision if we need to yield.
- media::SetUnknownDataSize(shared_memory_, max_size);
+ // Store max length of data into buffer, in case client does not do that.
+ media::SetActualDataSizeInBytes(shared_memory_, max_size, max_size);
- previous_call_time_ = base::Time::Now();
return read_size;
}
« no previous file with comments | « content/browser/renderer_host/media/audio_sync_reader.h ('k') | media/audio/audio_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698