Chromium Code Reviews| Index: media/audio/mac/audio_manager_mac.h |
| diff --git a/media/audio/mac/audio_manager_mac.h b/media/audio/mac/audio_manager_mac.h |
| index f5159e956cc44a249af38a698cf4e3399969f6b5..a7a74a3a4a2f7254b88fecf32cb83e947d14d6e1 100644 |
| --- a/media/audio/mac/audio_manager_mac.h |
| +++ b/media/audio/mac/audio_manager_mac.h |
| @@ -10,6 +10,7 @@ |
| #include <stddef.h> |
| #include <list> |
| +#include <map> |
| #include <memory> |
| #include <string> |
| @@ -127,6 +128,22 @@ class MEDIA_EXPORT AudioManagerMac : public AudioManagerBase { |
| // sample rate has changed, otherwise does nothing. |
| void HandleDeviceChanges(); |
| + // Returns true if any active input stream is using the specified |device_id|. |
| + bool AudioDeviceIsUsedForInput(AudioDeviceID device_id); |
| + |
| + // This method is called when an output stream has been released and it takes |
| + // the given |device_id| and scans all active output streams that are |
| + // using this id. The goal is to find a new (larger) I/O buffer size which |
| + // can be applied to all active output streams since doing so will save |
| + // system resources. |
| + // Note that, it is only called if no input stream is also using the device. |
| + // Example: two active output streams where #1 wants 1024 as buffer size but |
| + // is using 256 since stream #2 wants it. Now, if stream #2 is closed down, |
| + // the native I/O buffer size will be increased to 1024 instead of 256. |
| + // TODO(henrika): possibly extend the scheme to also take input streams into |
| + // account. |
| + bool IncreaseIOBufferSizeIfPossible(AudioDeviceID device_id); |
|
Henrik Grunell
2016/04/28 12:42:50
Would it be possible to merge this function with M
henrika (OOO until Aug 14)
2016/04/28 12:46:23
I would like to avoid that at this stage since it
|
| + |
| std::unique_ptr<AudioDeviceListenerMac> output_device_listener_; |
| // Track the output sample-rate and the default output device |
| @@ -149,6 +166,10 @@ class MEDIA_EXPORT AudioManagerMac : public AudioManagerBase { |
| std::list<AUAudioInputStream*> low_latency_input_streams_; |
| std::list<AUHALStream*> output_streams_; |
| + // Maps device IDs and their corresponding actual (I/O) buffer sizes for |
| + // all output streams using the specific device. |
| + std::map<AudioDeviceID, size_t> output_io_buffer_size_map_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(AudioManagerMac); |
| }; |