|
|
DescriptionRewrote UpdateToMix in the audio mixer.
The new version is much shorter than the old one, and hopefully easier
to read. This is part of the effort to rewrite the old mixer.
NOTRY=True
Committed: https://crrev.com/f3882571b01aec41bb67e01dc932584ccdaf7b2f
Cr-Commit-Position: refs/heads/master@{#13570}
Patch Set 1 #
Total comments: 31
Patch Set 2 : Initialized uninitialized enum class in test. #Patch Set 3 : Renaming from upstream. #
Total comments: 6
Patch Set 4 : Small change should fix 'unitialized' complaint. #
Total comments: 3
Patch Set 5 : Small changes in response to comments. #Patch Set 6 : Renaming to fix linker issue. #
Depends on Patchset: Messages
Total messages: 57 (31 generated)
aleloi@webrtc.org changed reviewers: + ivoc@webrtc.org, ossu@webrtc.org
AudioConferenceMixer::UpdateToMix is the central piece of logic in the old mixer. It selects what participants to mix based on different criteria: VAD, mutedness and audio level. This CL replaces UpdateToMix with something that I hope is easier to read and does the same thing. After a few days with this I am reasonably confident in how the old mixer worked and that my code does the same thing. To be more sure that the replacement does the same thing, I have tests that compare the new mixer with the old one. This is the most complex mixer change as of yet.
The CQ bit was checked by aleloi@webrtc.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: CLs for remote refs other than refs/pending/heads/master must contain NOTRY=true and NOPRESUBMIT=true in order for the CQ to process them
The CQ bit was checked by aleloi@webrtc.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_baremetal on master.tryserver.webrtc (JOB_FAILED, http://build.chromium.org/p/tryserver.webrtc/builders/linux_baremetal/builds/...) mac_rel on master.tryserver.webrtc (JOB_FAILED, http://build.chromium.org/p/tryserver.webrtc/builders/mac_rel/builds/16462)
Patchset #2 (id:20001) has been deleted
The CQ bit was checked by aleloi@webrtc.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_drmemory_light on master.tryserver.webrtc (JOB_FAILED, http://build.chromium.org/p/tryserver.webrtc/builders/win_drmemory_light/buil...)
https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... File webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc (left): https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:186: RTC_DCHECK(thread_checker_.CalledOnValidThread()); Why is this no longer useful? https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:261: ClearAudioFrameList(&mixList); So I guess this used to be necessary to hand the frames back to the pool? https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... File webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc (right): https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:25: class ParticipantFrameStruct { I don't think we suffix structs with Struct. Probably something from way back. Should probably be just SourceFrame or something (since MixerParticipant is no longer a thing). https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:43: return muted_ && !other.muted_; wh... what? Returning muted should be enough here. https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:47: other_activity = other.audio_frame_->vad_activity_; I'm not sure if this is in the style guide, but I'd prefer it if these were two separate statements: auto our_activity = ...; auto other_activity = ...; https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:57: MixerAudioSource* participant_; participant or source? Pick one! :) https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:195: size_t remainingParticipantsAllowedToMix = kMaximumAmountOfMixedParticipants; Just in general, if we're now using the term MixerAudioSource instead of MixerParticipant, all uses should be updated to source rather than participant, imo. https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:198: AudioFrameList mixList; Move down to where it's actually initialized. https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:199: AudioFrameList rampOutList; Not used? https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:200: AudioFrameList additionalFramesList; Probably move this one down as well. https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:247: mixList = UpdateToMix(remainingParticipantsAllowedToMix); You could just use kMaximumAmountOfMixedParticipants, it seems. https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:248: remainingParticipantsAllowedToMix -= mixList.size(); Who cares? It's never used again, is it? https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:459: auto audio_frame_with_info = participant->GetAudioFrameWithMuted( Hmm... reading this, I'm thinking AudioFrameWithInfo() should be called AudioFrameWithMuted(), since the method to get one is called GetAudioFrameWithMuted. Muted is also a better description of that enum than "info". https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:477: std::sort( Suggestion: rework shouldMixAfter into shouldMixBefore and use it directly, rather than adding a lambda around it. shouldMixBefore is more congruent with using operator< for comparisons as well. https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:491: // Add frame to result vectorfor mixing. vectorfor -> vector for https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:513: void NewAudioConferenceMixerImpl::GetAdditionalAudio( Not necessary for this CL, but this should be changed to returning an AudioFrameList rather than taking one as an output parameter.
Patchset #2 (id:40001) has been deleted
Changes (and responses) in response to review comments. https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... File webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc (right): https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:25: class ParticipantFrameStruct { On 2016/07/08 11:02:14, ossu wrote: > I don't think we suffix structs with Struct. Probably something from way back. > Should probably be just SourceFrame or something (since MixerParticipant is no > longer a thing). Done. https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:43: return muted_ && !other.muted_; On 2016/07/08 11:02:14, ossu wrote: > wh... what? Returning muted should be enough here. Done. You are right, it's shorter. https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:47: other_activity = other.audio_frame_->vad_activity_; On 2016/07/08 11:02:14, ossu wrote: > I'm not sure if this is in the style guide, but I'd prefer it if these were two > separate statements: > auto our_activity = ...; > auto other_activity = ...; Done. https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:195: size_t remainingParticipantsAllowedToMix = kMaximumAmountOfMixedParticipants; On 2016/07/08 11:02:13, ossu wrote: > Just in general, if we're now using the term MixerAudioSource instead of > MixerParticipant, all uses should be updated to source rather than participant, > imo. I'll change upstream. https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:198: AudioFrameList mixList; On 2016/07/08 11:02:14, ossu wrote: > Move down to where it's actually initialized. It's assigned to while we're holding the lock. And the lock is a scope lock, so it's inside its own scope. https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:199: AudioFrameList rampOutList; On 2016/07/08 11:02:14, ossu wrote: > Not used? Yes! Thanks for noticing! https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:200: AudioFrameList additionalFramesList; On 2016/07/08 11:02:14, ossu wrote: > Probably move this one down as well. Changes are also guarded by lock. https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:247: mixList = UpdateToMix(remainingParticipantsAllowedToMix); On 2016/07/08 11:02:14, ossu wrote: > You could just use kMaximumAmountOfMixedParticipants, it seems. Done. https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:248: remainingParticipantsAllowedToMix -= mixList.size(); On 2016/07/08 11:02:14, ossu wrote: > Who cares? It's never used again, is it? Removed. Thanks! https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:459: auto audio_frame_with_info = participant->GetAudioFrameWithMuted( On 2016/07/08 11:02:14, ossu wrote: > Hmm... reading this, I'm thinking AudioFrameWithInfo() should be called > AudioFrameWithMuted(), since the method to get one is called > GetAudioFrameWithMuted. Muted is also a better description of that enum than > "info". I agree. Changed. https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:477: std::sort( On 2016/07/08 11:02:13, ossu wrote: > Suggestion: rework shouldMixAfter into shouldMixBefore and use it directly, > rather than adding a lambda around it. shouldMixBefore is more congruent with > using operator< for comparisons as well. Done. Btw, I got the impression from reading the style guide that I should probably not define an operator< for the participant struct. Because it's not clear how it should behave, I only use it once, and I don't define all the other comparison operators. Do you agree with me here? https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:491: // Add frame to result vectorfor mixing. On 2016/07/08 11:02:14, ossu wrote: > vectorfor -> vector for Done. https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:513: void NewAudioConferenceMixerImpl::GetAdditionalAudio( On 2016/07/08 11:02:14, ossu wrote: > Not necessary for this CL, but this should be changed to returning an > AudioFrameList rather than taking one as an output parameter. Acknowledged.
The CQ bit was checked by aleloi@webrtc.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_x64_gn_dbg on master.tryserver.webrtc (JOB_FAILED, http://build.chromium.org/p/tryserver.webrtc/builders/win_x64_gn_dbg/builds/1...) win_x64_rel on master.tryserver.webrtc (JOB_FAILED, http://build.chromium.org/p/tryserver.webrtc/builders/win_x64_rel/builds/16070)
Boom! https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... File webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc (right): https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:198: AudioFrameList mixList; On 2016/07/08 13:45:24, aleloi wrote: > On 2016/07/08 11:02:14, ossu wrote: > > Move down to where it's actually initialized. > > It's assigned to while we're holding the lock. And the lock is a scope lock, so > it's inside its own scope. Oh, right! Silly me! https://codereview.webrtc.org/2132563002/diff/1/webrtc/modules/audio_mixer/so... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:477: std::sort( On 2016/07/08 13:45:24, aleloi wrote: > On 2016/07/08 11:02:13, ossu wrote: > > Suggestion: rework shouldMixAfter into shouldMixBefore and use it directly, > > rather than adding a lambda around it. shouldMixBefore is more congruent with > > using operator< for comparisons as well. > > Done. Btw, I got the impression from reading the style guide that I should > probably not define an operator< for the participant struct. Because it's not > clear how it should behave, I only use it once, and I don't define all the other > comparison operators. Do you agree with me here? That makes perfect sense. Reading up on that, I might have to go back and revise one of my CLs. You could probably hide it even more by not making it a member of (what once was) ParticipantFrameStruct but just defining it here, possibly as a named lambda. I'm not going to insist on it, though. As long as it has a name or a comment describing how things are being sorted, I'm happy! https://codereview.webrtc.org/2132563002/diff/80001/webrtc/modules/audio_mixe... File webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc (right): https://codereview.webrtc.org/2132563002/diff/80001/webrtc/modules/audio_mixe... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:27: class AudioSourceAndFrame { Maybe just SourceFrame is enough? You don't need to list all the members of the class in its name. :)
Sorry for the delay, forgot about this CL. https://codereview.webrtc.org/2132563002/diff/80001/webrtc/modules/audio_mixe... File webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc (right): https://codereview.webrtc.org/2132563002/diff/80001/webrtc/modules/audio_mixe... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:54: our_activity == AudioFrame::kVadActive; Because we already know that other_activity is different from our_activity, this can be simplified to: return our_activity == AudioFrame::kVadActive; https://codereview.webrtc.org/2132563002/diff/80001/webrtc/modules/audio_mixe... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:67: typedef std::list<AudioSourceAndFrame*> AudioSourceWithFrameList; Doesn't it make more sense to use a vector here? https://codereview.webrtc.org/2132563002/diff/100001/webrtc/modules/audio_mix... File webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc (right): https://codereview.webrtc.org/2132563002/diff/100001/webrtc/modules/audio_mix... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:472: audio_source, audio_source_audio_frame, Does git cl format approve of this?
New patch set and responses to comments. https://codereview.webrtc.org/2132563002/diff/80001/webrtc/modules/audio_mixe... File webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc (right): https://codereview.webrtc.org/2132563002/diff/80001/webrtc/modules/audio_mixe... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:27: class AudioSourceAndFrame { On 2016/07/08 13:58:34, ossu wrote: > Maybe just SourceFrame is enough? You don't need to list all the members of the > class in its name. :) Done. https://codereview.webrtc.org/2132563002/diff/80001/webrtc/modules/audio_mixe... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:54: our_activity == AudioFrame::kVadActive; On 2016/07/27 15:14:04, ivoc wrote: > Because we already know that other_activity is different from our_activity, this > can be simplified to: > return our_activity == AudioFrame::kVadActive; Well spotted! Done. https://codereview.webrtc.org/2132563002/diff/80001/webrtc/modules/audio_mixe... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:67: typedef std::list<AudioSourceAndFrame*> AudioSourceWithFrameList; On 2016/07/27 15:14:04, ivoc wrote: > Doesn't it make more sense to use a vector here? It wasn't used. I removed it alltogether.
LGTM, please have a look at the point below. https://codereview.webrtc.org/2132563002/diff/100001/webrtc/modules/audio_mix... File webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc (right): https://codereview.webrtc.org/2132563002/diff/100001/webrtc/modules/audio_mix... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:472: audio_source, audio_source_audio_frame, On 2016/07/27 15:14:05, ivoc wrote: > Does git cl format approve of this? So, does it?
https://codereview.webrtc.org/2132563002/diff/100001/webrtc/modules/audio_mix... File webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc (right): https://codereview.webrtc.org/2132563002/diff/100001/webrtc/modules/audio_mix... webrtc/modules/audio_mixer/source/new_audio_conference_mixer_impl.cc:472: audio_source, audio_source_audio_frame, On 2016/07/28 09:34:25, ivoc wrote: > On 2016/07/27 15:14:05, ivoc wrote: > > Does git cl format approve of this? > > So, does it? Yes it does (missed the question, sorry).
The CQ bit was checked by aleloi@webrtc.org
The CQ bit was unchecked by commit-bot@chromium.org
This CL has an open dependency (Issue 2127763002 Patch 200001). Please resolve the dependency and try again. If you are sure that there is no real dependency, please use one of the options listed in https://goo.gl/9Es4OR to land the CL.
The CQ bit was checked by aleloi@webrtc.org to run a CQ dry run
The CQ bit was unchecked by aleloi@webrtc.org
The CQ bit was checked by aleloi@webrtc.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/...
The CQ bit was unchecked by aleloi@webrtc.org
The CQ bit was checked by aleloi@webrtc.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: android_arm64_rel on master.tryserver.webrtc (JOB_TIMED_OUT, no build URL)
The CQ bit was checked by aleloi@webrtc.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/...
Message was sent while issue was closed.
Committed patchset #5 (id:120001)
Message was sent while issue was closed.
Description was changed from ========== Rewrote UpdateToMix in the audio mixer. The new version is much shorter than the old one, and hopefully easier to read. This is part of the effort to rewrite the old mixer. ========== to ========== Rewrote UpdateToMix in the audio mixer. The new version is much shorter than the old one, and hopefully easier to read. This is part of the effort to rewrite the old mixer. Committed: https://crrev.com/2942e240f4a985752714dac18c141064c97696d4 Cr-Commit-Position: refs/heads/master@{#13568} ==========
Message was sent while issue was closed.
Patchset 5 (id:??) landed as https://crrev.com/2942e240f4a985752714dac18c141064c97696d4 Cr-Commit-Position: refs/heads/master@{#13568}
Message was sent while issue was closed.
A revert of this CL (patchset #5 id:120001) has been created in https://codereview.webrtc.org/2195633002/ by terelius@webrtc.org. The reason for reverting is: Multiple definitions of webrtc::MockMixerParticipant::MockMixerParticipant() during linking of modules_unittests. Please investigate and resubmit..
Message was sent while issue was closed.
Description was changed from ========== Rewrote UpdateToMix in the audio mixer. The new version is much shorter than the old one, and hopefully easier to read. This is part of the effort to rewrite the old mixer. Committed: https://crrev.com/2942e240f4a985752714dac18c141064c97696d4 Cr-Commit-Position: refs/heads/master@{#13568} ========== to ========== Rewrote UpdateToMix in the audio mixer. The new version is much shorter than the old one, and hopefully easier to read. This is part of the effort to rewrite the old mixer. Committed: https://crrev.com/2942e240f4a985752714dac18c141064c97696d4 Cr-Commit-Position: refs/heads/master@{#13568} ==========
The CQ bit was checked by aleloi@webrtc.org
The patchset sent to the CQ was uploaded after l-g-t-m from ivoc@webrtc.org Link to the patchset: https://codereview.webrtc.org/2132563002/#ps140001 (title: "Renaming to fix linker issue.")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/...
Description was changed from ========== Rewrote UpdateToMix in the audio mixer. The new version is much shorter than the old one, and hopefully easier to read. This is part of the effort to rewrite the old mixer. Committed: https://crrev.com/2942e240f4a985752714dac18c141064c97696d4 Cr-Commit-Position: refs/heads/master@{#13568} ========== to ========== Rewrote UpdateToMix in the audio mixer. The new version is much shorter than the old one, and hopefully easier to read. This is part of the effort to rewrite the old mixer. NOTRY=True ==========
The CQ bit was unchecked by aleloi@webrtc.org
The CQ bit was checked by aleloi@webrtc.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/...
Message was sent while issue was closed.
Description was changed from ========== Rewrote UpdateToMix in the audio mixer. The new version is much shorter than the old one, and hopefully easier to read. This is part of the effort to rewrite the old mixer. NOTRY=True ========== to ========== Rewrote UpdateToMix in the audio mixer. The new version is much shorter than the old one, and hopefully easier to read. This is part of the effort to rewrite the old mixer. NOTRY=True ==========
Message was sent while issue was closed.
Committed patchset #6 (id:140001)
Message was sent while issue was closed.
Description was changed from ========== Rewrote UpdateToMix in the audio mixer. The new version is much shorter than the old one, and hopefully easier to read. This is part of the effort to rewrite the old mixer. NOTRY=True ========== to ========== Rewrote UpdateToMix in the audio mixer. The new version is much shorter than the old one, and hopefully easier to read. This is part of the effort to rewrite the old mixer. NOTRY=True Committed: https://crrev.com/f3882571b01aec41bb67e01dc932584ccdaf7b2f Cr-Commit-Position: refs/heads/master@{#13570} ==========
Message was sent while issue was closed.
Patchset 6 (id:??) landed as https://crrev.com/f3882571b01aec41bb67e01dc932584ccdaf7b2f Cr-Commit-Position: refs/heads/master@{#13570} |