☠☠ backed out by d2ba56fc82b6 ☠ ☠ | |
author | Paul Adenot <paul@paul.cx> |
Wed, 20 Jul 2016 15:02:23 +0200 | |
changeset 305898 | 344300260f4c415dd8099c8350e942facf749398 |
parent 305897 | f8111ad4cb8e1e816be52b75036a22480a98484e |
child 305899 | 982597fcf17fafcb54d3114b8746c307a9c7ee1f |
push id | 30474 |
push user | cbook@mozilla.com |
push date | Thu, 21 Jul 2016 14:25:10 +0000 |
treeherder | mozilla-central@6b180266ac16 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | achronop |
bugs | 1283020 |
milestone | 50.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
dom/media/AudioStream.cpp | file | annotate | diff | comparison | revisions | |
dom/media/GraphDriver.cpp | file | annotate | diff | comparison | revisions |
--- a/dom/media/AudioStream.cpp +++ b/dom/media/AudioStream.cpp @@ -357,19 +357,21 @@ AudioStream::OpenCubeb(cubeb_stream_para { cubeb* cubebContext = CubebUtils::GetCubebContext(); if (!cubebContext) { NS_WARNING("Can't get cubeb context!"); return NS_ERROR_FAILURE; } cubeb_stream* stream = nullptr; + /* Convert from milliseconds to frames. */ + uint32_t latency_frames = CubebUtils::GetCubebLatency() * aParams.rate / 1000; if (cubeb_stream_init(cubebContext, &stream, "AudioStream", nullptr, nullptr, nullptr, &aParams, - CubebUtils::GetCubebLatency(), + latency_frames, DataCallback_S, StateCallback_S, this) == CUBEB_OK) { mCubebStream.reset(stream); CubebUtils::ReportCubebBackendUsed(); } else { NS_WARNING(nsPrintfCString("AudioStream::OpenCubeb() %p failed to init cubeb", this).get()); CubebUtils::ReportCubebStreamInitFailure(aIsFirst); return NS_ERROR_FAILURE; }
--- a/dom/media/GraphDriver.cpp +++ b/dom/media/GraphDriver.cpp @@ -554,17 +554,17 @@ AudioCallbackDriver::~AudioCallbackDrive MOZ_ASSERT(mPromisesForOperation.IsEmpty()); } void AudioCallbackDriver::Init() { cubeb_stream_params output; cubeb_stream_params input; - uint32_t latency; + uint32_t latency_frames; bool firstStream = CubebUtils::GetFirstStream(); MOZ_ASSERT(!NS_IsMainThread(), "This is blocking and should never run on the main thread."); mSampleRate = output.rate = CubebUtils::PreferredSampleRate(); #if defined(__ANDROID__) @@ -583,17 +583,17 @@ AudioCallbackDriver::Init() output.channels = mGraphImpl->AudioChannelCount(); if (AUDIO_OUTPUT_FORMAT == AUDIO_FORMAT_S16) { output.format = CUBEB_SAMPLE_S16NE; } else { output.format = CUBEB_SAMPLE_FLOAT32NE; } - if (cubeb_get_min_latency(CubebUtils::GetCubebContext(), output, &latency) != CUBEB_OK) { + if (cubeb_get_min_latency(CubebUtils::GetCubebContext(), output, &latency_frames) != CUBEB_OK) { NS_WARNING("Could not get minimal latency from cubeb."); return; } input = output; input.channels = mInputChannels; // change to support optional stereo capture cubeb_stream* stream = nullptr; @@ -619,17 +619,17 @@ AudioCallbackDriver::Init() // XXX Only pass input input if we have an input listener. Always // set up output because it's easier, and it will just get silence. // XXX Add support for adding/removing an input listener later. cubeb_stream_init(CubebUtils::GetCubebContext(), &stream, "AudioCallbackDriver", input_id, mGraphImpl->mInputWanted ? &input : nullptr, output_id, - mGraphImpl->mOutputWanted ? &output : nullptr, latency, + mGraphImpl->mOutputWanted ? &output : nullptr, latency_frames, DataCallback_s, StateCallback_s, this) == CUBEB_OK) { mAudioStream.own(stream); DebugOnly<int> rv = cubeb_stream_set_volume(mAudioStream, CubebUtils::GetVolumeScale()); NS_WARN_IF_FALSE(rv == CUBEB_OK, "Could not set the audio stream volume in GraphDriver.cpp"); CubebUtils::ReportCubebBackendUsed(); } else { #ifdef MOZ_WEBRTC