| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/browser/renderer_host/media/audio_input_sync_writer.h" | 5 #include "content/browser/renderer_host/media/audio_input_sync_writer.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/metrics/histogram.h" | 9 #include "base/metrics/histogram.h" |
| 10 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 56 DVLOG(1) << "audio_bus_memory_size: " << audio_bus_memory_size_; | 56 DVLOG(1) << "audio_bus_memory_size: " << audio_bus_memory_size_; |
| 57 | 57 |
| 58 // Create vector of audio buses by wrapping existing blocks of memory. | 58 // Create vector of audio buses by wrapping existing blocks of memory. |
| 59 uint8_t* ptr = shared_memory_; | 59 uint8_t* ptr = shared_memory_; |
| 60 for (int i = 0; i < shared_memory_segment_count; ++i) { | 60 for (int i = 0; i < shared_memory_segment_count; ++i) { |
| 61 CHECK_EQ(0U, reinterpret_cast<uintptr_t>(ptr) & | 61 CHECK_EQ(0U, reinterpret_cast<uintptr_t>(ptr) & |
| 62 (AudioBus::kChannelAlignment - 1)); | 62 (AudioBus::kChannelAlignment - 1)); |
| 63 AudioInputBuffer* buffer = reinterpret_cast<AudioInputBuffer*>(ptr); | 63 AudioInputBuffer* buffer = reinterpret_cast<AudioInputBuffer*>(ptr); |
| 64 scoped_ptr<AudioBus> audio_bus = | 64 scoped_ptr<AudioBus> audio_bus = |
| 65 AudioBus::WrapMemory(params, buffer->audio); | 65 AudioBus::WrapMemory(params, buffer->audio); |
| 66 audio_buses_.push_back(audio_bus.release()); | 66 audio_buses_.push_back(std::move(audio_bus)); |
| 67 ptr += shared_memory_segment_size_; | 67 ptr += shared_memory_segment_size_; |
| 68 } | 68 } |
| 69 } | 69 } |
| 70 | 70 |
| 71 AudioInputSyncWriter::~AudioInputSyncWriter() { | 71 AudioInputSyncWriter::~AudioInputSyncWriter() { |
| 72 // We log the following: | 72 // We log the following: |
| 73 // - Percentage of data written to fifo (and not to shared memory). | 73 // - Percentage of data written to fifo (and not to shared memory). |
| 74 // - Percentage of data dropped (fifo reached max size or socket buffer full). | 74 // - Percentage of data dropped (fifo reached max size or socket buffer full). |
| 75 // - Glitch yes/no (at least 1 drop). | 75 // - Glitch yes/no (at least 1 drop). |
| 76 // | 76 // |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 245 } | 245 } |
| 246 | 246 |
| 247 // Push parameters to fifo. | 247 // Push parameters to fifo. |
| 248 OverflowParams params = { volume, hardware_delay_bytes, key_pressed }; | 248 OverflowParams params = { volume, hardware_delay_bytes, key_pressed }; |
| 249 overflow_params_.push_back(params); | 249 overflow_params_.push_back(params); |
| 250 | 250 |
| 251 // Push audio data to fifo. | 251 // Push audio data to fifo. |
| 252 scoped_ptr<AudioBus> audio_bus = | 252 scoped_ptr<AudioBus> audio_bus = |
| 253 AudioBus::Create(data->channels(), data->frames()); | 253 AudioBus::Create(data->channels(), data->frames()); |
| 254 data->CopyTo(audio_bus.get()); | 254 data->CopyTo(audio_bus.get()); |
| 255 overflow_buses_.push_back(audio_bus.release()); | 255 overflow_buses_.push_back(std::move(audio_bus)); |
| 256 | 256 |
| 257 DCHECK_LE(overflow_buses_.size(), static_cast<size_t>(kMaxOverflowBusesSize)); | 257 DCHECK_LE(overflow_buses_.size(), static_cast<size_t>(kMaxOverflowBusesSize)); |
| 258 DCHECK_EQ(overflow_params_.size(), overflow_buses_.size()); | 258 DCHECK_EQ(overflow_params_.size(), overflow_buses_.size()); |
| 259 | 259 |
| 260 return true; | 260 return true; |
| 261 } | 261 } |
| 262 | 262 |
| 263 bool AudioInputSyncWriter::WriteDataFromFifoToSharedMemory() { | 263 bool AudioInputSyncWriter::WriteDataFromFifoToSharedMemory() { |
| 264 if (overflow_buses_.empty()) | 264 if (overflow_buses_.empty()) |
| 265 return true; | 265 return true; |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 329 current_segment_id_ = 0; | 329 current_segment_id_ = 0; |
| 330 ++number_of_filled_segments_; | 330 ++number_of_filled_segments_; |
| 331 CHECK_LE(number_of_filled_segments_, | 331 CHECK_LE(number_of_filled_segments_, |
| 332 static_cast<int>(shared_memory_segment_count_)); | 332 static_cast<int>(shared_memory_segment_count_)); |
| 333 ++next_buffer_id_; | 333 ++next_buffer_id_; |
| 334 | 334 |
| 335 return true; | 335 return true; |
| 336 } | 336 } |
| 337 | 337 |
| 338 } // namespace content | 338 } // namespace content |
| OLD | NEW |