AudioFlinger: allow shared record audio history for fast capture
Enable shared audio history when a fast capture thread is present.
In this case, the fast capture thread is preserved but no fast record client
is allowed.
Bug: 186894758
Bug: 185972521
Test: atest AudioRecordSharedAudioTest
Change-Id: I78b11a35513c771e6966c533c2fd094c05a48ead
diff --git a/services/audioflinger/Threads.h b/services/audioflinger/Threads.h
index b6f7f24..65db986 100644
--- a/services/audioflinger/Threads.h
+++ b/services/audioflinger/Threads.h
@@ -338,7 +338,7 @@
virtual void updateOutDevices(const DeviceDescriptorBaseVector& outDevices);
virtual void toAudioPortConfig(struct audio_port_config *config) = 0;
- virtual void resizeInputBuffer_l(int32_t maxSharedAudioHistoryMs = 0);
+ virtual void resizeInputBuffer_l(int32_t maxSharedAudioHistoryMs);
@@ -1717,7 +1717,7 @@
audio_patch_handle_t *handle);
virtual status_t releaseAudioPatch_l(const audio_patch_handle_t handle);
void updateOutDevices(const DeviceDescriptorBaseVector& outDevices) override;
- void resizeInputBuffer_l(int32_t maxSharedAudioHistoryMs = 0) override;
+ void resizeInputBuffer_l(int32_t maxSharedAudioHistoryMs) override;
void addPatchTrack(const sp<PatchRecord>& record);
void deletePatchTrack(const sp<PatchRecord>& record);
@@ -1862,6 +1862,7 @@
DeviceDescriptorBaseVector mOutDevices;
+ int32_t mMaxSharedAudioHistoryMs = 0;
std::string mSharedAudioPackageName = {};
int32_t mSharedAudioStartFrames = -1;
audio_session_t mSharedAudioSessionId = AUDIO_SESSION_NONE;