| Index: content/browser/renderer_host/media/audio_input_sync_writer.cc
|
| diff --git a/content/browser/renderer_host/media/audio_input_sync_writer.cc b/content/browser/renderer_host/media/audio_input_sync_writer.cc
|
| index 987fd23205485749acca5d804659400ee7f107e3..600881af9a93799011f993ebaae27a766a2414c0 100644
|
| --- a/content/browser/renderer_host/media/audio_input_sync_writer.cc
|
| +++ b/content/browser/renderer_host/media/audio_input_sync_writer.cc
|
| @@ -20,7 +20,8 @@ AudioInputSyncWriter::AudioInputSyncWriter(base::SharedMemory* shared_memory,
|
| shared_memory_segment_count_(shared_memory_segment_count),
|
| current_segment_id_(0),
|
| creation_time_(base::Time::Now()),
|
| - audio_bus_memory_size_(AudioBus::CalculateMemorySize(params)) {
|
| + audio_bus_memory_size_(AudioBus::CalculateMemorySize(params)),
|
| + next_buffer_id_(0) {
|
| DCHECK_GT(shared_memory_segment_count, 0);
|
| DCHECK_EQ(shared_memory->requested_size() % shared_memory_segment_count, 0u);
|
| shared_memory_segment_size_ =
|
| @@ -33,6 +34,8 @@ AudioInputSyncWriter::AudioInputSyncWriter(base::SharedMemory* shared_memory,
|
| // Create vector of audio buses by wrapping existing blocks of memory.
|
| uint8* ptr = static_cast<uint8*>(shared_memory_->memory());
|
| for (int i = 0; i < shared_memory_segment_count; ++i) {
|
| + CHECK((reinterpret_cast<uintptr_t>(ptr) &
|
| + (media::AudioBus::kChannelAlignment - 1)) == 0U);
|
| media::AudioInputBuffer* buffer =
|
| reinterpret_cast<media::AudioInputBuffer*>(ptr);
|
| scoped_ptr<media::AudioBus> audio_bus =
|
| @@ -44,14 +47,10 @@ AudioInputSyncWriter::AudioInputSyncWriter(base::SharedMemory* shared_memory,
|
|
|
| AudioInputSyncWriter::~AudioInputSyncWriter() {}
|
|
|
| -// TODO(henrika): Combine into one method (including Write).
|
| -void AudioInputSyncWriter::UpdateRecordedBytes(uint32 bytes) {
|
| - socket_->Send(&bytes, sizeof(bytes));
|
| -}
|
| -
|
| void AudioInputSyncWriter::Write(const media::AudioBus* data,
|
| double volume,
|
| - bool key_pressed) {
|
| + bool key_pressed,
|
| + uint32 hardware_delay_bytes) {
|
| #if !defined(OS_ANDROID)
|
| static const base::TimeDelta kLogDelayThreadhold =
|
| base::TimeDelta::FromMilliseconds(500);
|
| @@ -86,12 +85,16 @@ void AudioInputSyncWriter::Write(const media::AudioBus* data,
|
| buffer->params.volume = volume;
|
| buffer->params.size = audio_bus_memory_size_;
|
| buffer->params.key_pressed = key_pressed;
|
| + buffer->params.hardware_delay_bytes = hardware_delay_bytes;
|
| + buffer->params.id = next_buffer_id_++;
|
|
|
| // Copy data from the native audio layer into shared memory using pre-
|
| // allocated audio buses.
|
| media::AudioBus* audio_bus = audio_buses_[current_segment_id_];
|
| data->CopyTo(audio_bus);
|
|
|
| + socket_->Send(¤t_segment_id_, sizeof(current_segment_id_));
|
| +
|
| if (++current_segment_id_ >= shared_memory_segment_count_)
|
| current_segment_id_ = 0;
|
| }
|
|
|