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

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

Issue 2689483006: Switch browser side audio capture path to use base time primitives. (Closed)
Patch Set: Bloop Created 3 years, 10 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
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 3bed144059548ebb64b41e9091ce70976dd1272d..041d8e17082769138b2175640f8349d6e064df37 100644
--- a/content/browser/renderer_host/media/audio_input_sync_writer.cc
+++ b/content/browser/renderer_host/media/audio_input_sync_writer.cc
@@ -119,7 +119,8 @@ AudioInputSyncWriter::~AudioInputSyncWriter() {
void AudioInputSyncWriter::Write(const AudioBus* data,
double volume,
bool key_pressed,
- uint32_t hardware_delay_bytes) {
+ base::TimeDelta delay,
+ base::TimeTicks delay_timestamp) {
TRACE_EVENT0("audio", "AudioInputSyncWriter::Write");
++write_count_;
CheckTimeSinceLastWrite();
@@ -150,7 +151,8 @@ void AudioInputSyncWriter::Write(const AudioBus* data,
// put it in the fifo.
if (number_of_filled_segments_ <
static_cast<int>(shared_memory_segment_count_)) {
- WriteParametersToCurrentSegment(volume, key_pressed, hardware_delay_bytes);
+ WriteParametersToCurrentSegment(volume, key_pressed, delay,
+ delay_timestamp);
// Copy data into shared memory using pre-allocated audio buses.
AudioBus* audio_bus = audio_buses_[current_segment_id_];
@@ -161,7 +163,7 @@ void AudioInputSyncWriter::Write(const AudioBus* data,
trailing_write_to_fifo_count_ = 0;
} else {
- if (!PushDataToFifo(data, volume, key_pressed, hardware_delay_bytes))
+ if (!PushDataToFifo(data, volume, key_pressed, delay, delay_timestamp))
write_error = true;
++write_to_fifo_count_;
@@ -231,7 +233,8 @@ void AudioInputSyncWriter::AddToNativeLog(const std::string& message) {
bool AudioInputSyncWriter::PushDataToFifo(const AudioBus* data,
double volume,
bool key_pressed,
- uint32_t hardware_delay_bytes) {
+ base::TimeDelta delay,
+ base::TimeTicks delay_timestamp) {
if (overflow_buses_.size() == kMaxOverflowBusesSize) {
// We use |write_error_count_| for capping number of log messages.
// |write_error_count_| also includes socket Send() errors, but those should
@@ -257,7 +260,7 @@ bool AudioInputSyncWriter::PushDataToFifo(const AudioBus* data,
}
// Push parameters to fifo.
- OverflowParams params = { volume, hardware_delay_bytes, key_pressed };
+ OverflowParams params = {volume, delay, delay_timestamp, key_pressed};
overflow_params_.push_back(params);
// Push audio data to fifo.
@@ -285,9 +288,9 @@ bool AudioInputSyncWriter::WriteDataFromFifoToSharedMemory() {
while (audio_bus_it != overflow_buses_.end() &&
number_of_filled_segments_ < segment_count) {
// Write parameters to shared memory.
- WriteParametersToCurrentSegment((*params_it).volume,
- (*params_it).key_pressed,
- (*params_it).hardware_delay_bytes);
+ WriteParametersToCurrentSegment(
+ (*params_it).volume, (*params_it).key_pressed, (*params_it).delay,
+ (*params_it).delay_timestamp);
// Copy data from the fifo into shared memory using pre-allocated audio
// buses.
@@ -317,14 +320,17 @@ bool AudioInputSyncWriter::WriteDataFromFifoToSharedMemory() {
void AudioInputSyncWriter::WriteParametersToCurrentSegment(
double volume,
bool key_pressed,
- uint32_t hardware_delay_bytes) {
+ base::TimeDelta delay,
+ base::TimeTicks delay_timestamp) {
uint8_t* ptr = shared_memory_;
ptr += current_segment_id_ * shared_memory_segment_size_;
AudioInputBuffer* buffer = reinterpret_cast<AudioInputBuffer*>(ptr);
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.delay = delay.InMicroseconds();
+ buffer->params.delay_timestamp =
+ (delay_timestamp - base::TimeTicks()).InMicroseconds();
buffer->params.id = next_buffer_id_;
}

Powered by Google App Engine
This is Rietveld 408576698