Fix busy loop in FakeAudioDeviceModule.
The implementation now has a mechanism that effectively turns off callbacks if used. BUG=webrtc:7237, 695438 TBR=solenberg@webrtc.org Review-Url: https://codereview.webrtc.org/2710023010 Cr-Commit-Position: refs/heads/master@{#16837}
This commit is contained in:
parent
d74517c52a
commit
4af9f962c3
@ -41,8 +41,20 @@ class FakeAudioDeviceModule : public AudioDeviceModule {
|
||||
virtual int32_t SetStereoRecording(bool enable) { return 0; }
|
||||
virtual int32_t SetAGC(bool enable) { return 0; }
|
||||
virtual int32_t StopRecording() { return 0; }
|
||||
virtual int64_t TimeUntilNextProcess() { return 0; }
|
||||
virtual void Process() {}
|
||||
|
||||
// If the subclass doesn't override the ProcessThread implementation,
|
||||
// we'll fall back on an implementation that doesn't eat too much CPU.
|
||||
virtual int64_t TimeUntilNextProcess() {
|
||||
if (turn_off_module_callbacks_)
|
||||
return 7 * 24 * 60 * 60 * 1000; // call me next week.
|
||||
uses_default_module_implementation_ = true;
|
||||
return 10;
|
||||
}
|
||||
|
||||
virtual void Process() {
|
||||
turn_off_module_callbacks_ = uses_default_module_implementation_;
|
||||
}
|
||||
|
||||
virtual int32_t Terminate() { return 0; }
|
||||
|
||||
virtual int32_t ActiveAudioLayer(AudioLayer* audioLayer) const { return 0; }
|
||||
@ -167,6 +179,10 @@ class FakeAudioDeviceModule : public AudioDeviceModule {
|
||||
return -1;
|
||||
}
|
||||
#endif // WEBRTC_IOS
|
||||
|
||||
private:
|
||||
bool uses_default_module_implementation_ = false;
|
||||
bool turn_off_module_callbacks_ = false;
|
||||
};
|
||||
|
||||
} // namespace webrtc
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user