| Index: webrtc/modules/audio_device/android/opensles_player.h
 | 
| diff --git a/webrtc/modules/audio_device/android/opensles_player.h b/webrtc/modules/audio_device/android/opensles_player.h
 | 
| index e3978a19909f7594981bf87423be8956c2c5df45..1b2b1d78fdbebfeb7b2811cfee50f0e1e92c7f17 100644
 | 
| --- a/webrtc/modules/audio_device/android/opensles_player.h
 | 
| +++ b/webrtc/modules/audio_device/android/opensles_player.h
 | 
| @@ -11,8 +11,6 @@
 | 
|  #ifndef WEBRTC_MODULES_AUDIO_DEVICE_ANDROID_OPENSLES_PLAYER_H_
 | 
|  #define WEBRTC_MODULES_AUDIO_DEVICE_ANDROID_OPENSLES_PLAYER_H_
 | 
|  
 | 
| -#include <memory>
 | 
| -
 | 
|  #include <SLES/OpenSLES.h>
 | 
|  #include <SLES/OpenSLES_Android.h>
 | 
|  #include <SLES/OpenSLES_AndroidConfiguration.h>
 | 
| @@ -49,11 +47,13 @@ class FineAudioBuffer;
 | 
|  // the output latency may be higher.
 | 
|  class OpenSLESPlayer {
 | 
|   public:
 | 
| -  // The lower output latency path is used only if the application requests a
 | 
| -  // buffer count of 2 or more, and a buffer size and sample rate that are
 | 
| -  // compatible with the device's native output configuration provided via the
 | 
| -  // audio manager at construction.
 | 
| -  static const int kNumOfOpenSLESBuffers = 4;
 | 
| +  // Beginning with API level 17 (Android 4.2), a buffer count of 2 or more is
 | 
| +  // required for lower latency. Beginning with API level 18 (Android 4.3), a
 | 
| +  // buffer count of 1 is sufficient for lower latency. In addition, the buffer
 | 
| +  // size and sample rate must be compatible with the device's native output
 | 
| +  // configuration provided via the audio manager at construction.
 | 
| +  // TODO(henrika): perhaps set this value dynamically based on OS version.
 | 
| +  static const int kNumOfOpenSLESBuffers = 2;
 | 
|  
 | 
|    explicit OpenSLESPlayer(AudioManager* audio_manager);
 | 
|    ~OpenSLESPlayer();
 | 
| @@ -88,11 +88,6 @@ class OpenSLESPlayer {
 | 
|    // internal audio thread while output streaming is active.
 | 
|    void EnqueuePlayoutData();
 | 
|  
 | 
| -  // Configures the SL_DATAFORMAT_PCM structure.
 | 
| -  SLDataFormat_PCM CreatePCMConfiguration(size_t channels,
 | 
| -                                          int sample_rate,
 | 
| -                                          size_t bits_per_sample);
 | 
| -
 | 
|    // Allocate memory for audio buffers which will be used to render audio
 | 
|    // via the SLAndroidSimpleBufferQueueItf interface.
 | 
|    void AllocateDataBuffers();
 | 
| @@ -144,11 +139,6 @@ class OpenSLESPlayer {
 | 
|    // 32-bit float representation is needed.
 | 
|    SLDataFormat_PCM pcm_format_;
 | 
|  
 | 
| -  // Number of bytes per audio buffer in each |audio_buffers_[i]|.
 | 
| -  // Typical sizes are 480 or 512 bytes corresponding to native output buffer
 | 
| -  // sizes of 240 or 256 audio frames respectively.
 | 
| -  size_t bytes_per_buffer_;
 | 
| -
 | 
|    // Queue of audio buffers to be used by the player object for rendering
 | 
|    // audio. They will be used in a Round-robin way and the size of each buffer
 | 
|    // is given by FineAudioBuffer::RequiredBufferSizeBytes().
 | 
| @@ -159,12 +149,12 @@ class OpenSLESPlayer {
 | 
|    // a finer or coarser granularity. I.e. interacting with this class instead
 | 
|    // of directly with the AudioDeviceBuffer one can ask for any number of
 | 
|    // audio data samples.
 | 
| -  // Example: native buffer size is 240 audio frames at 48kHz sample rate.
 | 
| -  // WebRTC will provide 480 audio frames per 10ms but OpenSL ES asks for 240
 | 
| -  // in each callback (one every 5ms). This class can then ask for 240 and the
 | 
| -  // FineAudioBuffer will ask WebRTC for new data only every second callback
 | 
| -  // and also cach non-utilized audio.
 | 
| -  std::unique_ptr<FineAudioBuffer> fine_buffer_;
 | 
| +  // Example: native buffer size can be 192 audio frames at 48kHz sample rate.
 | 
| +  // WebRTC will provide 480 audio frames per 10ms but OpenSL ES asks for 192
 | 
| +  // in each callback (one every 4th ms). This class can then ask for 192 and
 | 
| +  // the FineAudioBuffer will ask WebRTC for new data approximately only every
 | 
| +  // second callback and also cache non-utilized audio.
 | 
| +  std::unique_ptr<FineAudioBuffer> fine_audio_buffer_;
 | 
|  
 | 
|    // Keeps track of active audio buffer 'n' in the audio_buffers_[n] queue.
 | 
|    // Example (kNumOfOpenSLESBuffers = 2): counts 0, 1, 0, 1, ...
 | 
| 
 |