Chromium Code Reviews| 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..a14dbf70fee3f45af5fda62eb6dc5e3e00bac7eb 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_ = |
| @@ -44,14 +45,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 +83,21 @@ 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_; |
|
tommi (sloooow) - chröme
2015/08/14 09:56:21
Can we have a thread check in this method? (and wh
Henrik Grunell
2015/08/14 12:38:32
Hmm, this is called by AIC::OnData, and it seems a
|
| + |
| + if (next_buffer_id_ == UINT32_MAX) |
| + next_buffer_id_ = 0; |
|
DaleCurtis
2015/08/13 22:00:49
Rollover is defined for unsigned values, so no nee
Henrik Grunell
2015/08/14 12:38:32
Right, removed. (I used int first, but changed it.
|
| + else |
| + ++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; |
| } |