| Index: ppapi/shared_impl/ppb_audio_shared.cc
|
| ===================================================================
|
| --- ppapi/shared_impl/ppb_audio_shared.cc (revision 152430)
|
| +++ ppapi/shared_impl/ppb_audio_shared.cc (working copy)
|
| @@ -5,9 +5,10 @@
|
| #include "ppapi/shared_impl/ppb_audio_shared.h"
|
|
|
| #include "base/logging.h"
|
| -#include "media/audio/shared_memory_util.h"
|
| #include "ppapi/shared_impl/ppapi_globals.h"
|
|
|
| +using base::subtle::Atomic32;
|
| +
|
| namespace ppapi {
|
|
|
| #if defined(OS_NACL)
|
| @@ -17,6 +18,29 @@
|
| }
|
| #endif // defined(OS_NACL)
|
|
|
| +// FIXME: The following two functions (TotalSharedMemorySizeInBytes,
|
| +// SetActualDataSizeInBytes) are copied from audio_util.cc.
|
| +// Remove these functions once a minimal media library is provided for them.
|
| +// code.google.com/p/chromium/issues/detail?id=123203
|
| +
|
| +uint32 TotalSharedMemorySizeInBytes(uint32 packet_size) {
|
| + // Need to reserve extra 4 bytes for size of data.
|
| + return packet_size + sizeof(Atomic32);
|
| +}
|
| +
|
| +void SetActualDataSizeInBytes(base::SharedMemory* shared_memory,
|
| + uint32 shared_memory_size,
|
| + uint32 actual_data_size) {
|
| + char* ptr = static_cast<char*>(shared_memory->memory()) + shared_memory_size;
|
| + DCHECK_EQ(0u, reinterpret_cast<size_t>(ptr) & 3);
|
| +
|
| + // Set actual data size at the end of the buffer.
|
| + base::subtle::Release_Store(reinterpret_cast<volatile Atomic32*>(ptr),
|
| + actual_data_size);
|
| +}
|
| +
|
| +const int PPB_Audio_Shared::kPauseMark = -1;
|
| +
|
| PPB_Audio_Shared::PPB_Audio_Shared()
|
| : playing_(false),
|
| shared_memory_size_(0),
|
| @@ -69,8 +93,7 @@
|
| shared_memory_.reset(new base::SharedMemory(shared_memory_handle, false));
|
| shared_memory_size_ = shared_memory_size;
|
|
|
| - if (!shared_memory_->Map(
|
| - media::TotalSharedMemorySizeInBytes(shared_memory_size_))) {
|
| + if (!shared_memory_->Map(TotalSharedMemorySizeInBytes(shared_memory_size_))) {
|
| PpapiGlobals::Get()->LogWithSource(instance, PP_LOGLEVEL_WARNING, "",
|
| "Failed to map shared memory for PPB_Audio_Shared.");
|
| }
|
| @@ -144,12 +167,12 @@
|
|
|
| while (sizeof(pending_data) ==
|
| socket_->Receive(&pending_data, sizeof(pending_data)) &&
|
| - pending_data != media::kPauseMark) {
|
| + pending_data != kPauseMark) {
|
| callback_(buffer, shared_memory_size_, user_data_);
|
|
|
| // Let the host know we are done.
|
| - media::SetActualDataSizeInBytes(
|
| - shared_memory_.get(), shared_memory_size_, shared_memory_size_);
|
| + SetActualDataSizeInBytes(shared_memory_.get(), shared_memory_size_,
|
| + shared_memory_size_);
|
| }
|
| }
|
|
|
|
|
| Property changes on: ppapi/shared_impl/ppb_audio_shared.cc
|
| ___________________________________________________________________
|
| Added: svn:mergeinfo
|
|
|
|
|