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

Unified Diff: content/renderer/media/track_audio_renderer.cc

Issue 1891183002: 1) Fixing TrackAudioRenderer::Render() to interpret the second parameters as delay in frames, not i… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/media/track_audio_renderer.cc
diff --git a/content/renderer/media/track_audio_renderer.cc b/content/renderer/media/track_audio_renderer.cc
index d81d8c28e6e67e2589f7a5d28fb97b8d04d6c175..07491289cd98fb5798a87b1239e67b009b4e5413 100644
--- a/content/renderer/media/track_audio_renderer.cc
+++ b/content/renderer/media/track_audio_renderer.cc
@@ -12,6 +12,7 @@
#include "base/trace_event/trace_event.h"
#include "content/renderer/media/audio_device_factory.h"
#include "content/renderer/media/media_stream_audio_track.h"
+#include "content/renderer/media/webrtc_audio_renderer.h"
#include "media/base/audio_bus.h"
#include "media/base/audio_shifter.h"
@@ -39,7 +40,7 @@ base::TimeDelta ComputeTotalElapsedRenderTime(
// media::AudioRendererSink::RenderCallback implementation
int TrackAudioRenderer::Render(media::AudioBus* audio_bus,
- uint32_t audio_delay_milliseconds,
+ uint32_t frames_delayed,
uint32_t frames_skipped) {
TRACE_EVENT0("audio", "TrackAudioRenderer::Render");
base::AutoLock auto_lock(thread_lock_);
@@ -49,6 +50,11 @@ int TrackAudioRenderer::Render(media::AudioBus* audio_bus,
return 0;
}
+ // Source sample rate equals to output one, see MaybeStartSink(), so using it.
+ uint32_t audio_delay_milliseconds = static_cast<double>(frames_delayed) *
+ base::Time::kMillisecondsPerSecond /
+ source_params_.sample_rate();
+
// TODO(miu): Plumbing is needed to determine the actual playout timestamp
// of the audio, instead of just snapshotting TimeTicks::Now(), for proper
// audio/video sync. http://crbug.com/335335
@@ -305,11 +311,12 @@ void TrackAudioRenderer::MaybeStartSink() {
media::AudioParameters sink_params(
hardware_params.format(), source_params_.channel_layout(),
source_params_.sample_rate(), source_params_.bits_per_sample(),
- hardware_params.frames_per_buffer() * source_params_.sample_rate() /
- hardware_params.sample_rate());
+ WebRtcAudioRenderer::GetOptimalBufferSize(
+ source_params_.sample_rate(), hardware_params.frames_per_buffer()));
DVLOG(1) << ("TrackAudioRenderer::MaybeStartSink() -- Starting sink. "
"source_params_={")
- << source_params_.AsHumanReadableString() << "}, sink parameters={"
+ << source_params_.AsHumanReadableString() << "}, hardware_params_={"
+ << hardware_params.AsHumanReadableString() << "}, sink parameters={"
<< sink_params.AsHumanReadableString() << '}';
sink_->Initialize(sink_params, this);
sink_->Start();
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698