| Index: media/audio/alsa/alsa_output.h
 | 
| diff --git a/media/audio/alsa/alsa_output.h b/media/audio/alsa/alsa_output.h
 | 
| index 7b2337a3378230fda9ac169bc119ed458aa5a1ff..ec4ca80208e0a5d9fbb026c4b0477ab1576aba2b 100644
 | 
| --- a/media/audio/alsa/alsa_output.h
 | 
| +++ b/media/audio/alsa/alsa_output.h
 | 
| @@ -34,6 +34,7 @@
 | 
|  #include "base/memory/weak_ptr.h"
 | 
|  #include "base/single_thread_task_runner.h"
 | 
|  #include "base/threading/non_thread_safe.h"
 | 
| +#include "base/time/tick_clock.h"
 | 
|  #include "base/time/time.h"
 | 
|  #include "media/audio/audio_io.h"
 | 
|  #include "media/base/audio_parameters.h"
 | 
| @@ -84,6 +85,8 @@ class MEDIA_EXPORT AlsaPcmOutputStream : public AudioOutputStream,
 | 
|    void SetVolume(double volume) override;
 | 
|    void GetVolume(double* volume) override;
 | 
|  
 | 
| +  void SetTickClockForTesting(std::unique_ptr<base::TickClock> tick_clock);
 | 
| +
 | 
|   private:
 | 
|    friend class AlsaPcmOutputStreamTest;
 | 
|    FRIEND_TEST_ALL_PREFIXES(AlsaPcmOutputStreamTest,
 | 
| @@ -129,7 +132,6 @@ class MEDIA_EXPORT AlsaPcmOutputStream : public AudioOutputStream,
 | 
|    void ScheduleNextWrite(bool source_exhausted);
 | 
|  
 | 
|    // Utility functions for talking with the ALSA API.
 | 
| -  static base::TimeDelta FramesToTimeDelta(int frames, double sample_rate);
 | 
|    std::string FindDeviceForChannels(uint32_t channels);
 | 
|    snd_pcm_sframes_t GetAvailableFrames();
 | 
|    snd_pcm_sframes_t GetCurrentDelay();
 | 
| @@ -152,7 +154,9 @@ class MEDIA_EXPORT AlsaPcmOutputStream : public AudioOutputStream,
 | 
|    // is passed into the output stream, but ownership is not transfered which
 | 
|    // requires a synchronization on access of the |source_callback_| to avoid
 | 
|    // using a deleted callback.
 | 
| -  int RunDataCallback(AudioBus* audio_bus, uint32_t total_bytes_delay);
 | 
| +  int RunDataCallback(base::TimeDelta delay,
 | 
| +                      base::TimeTicks delay_timestamp,
 | 
| +                      AudioBus* audio_bus);
 | 
|    void RunErrorCallback(int code);
 | 
|  
 | 
|    // Changes the AudioSourceCallback to proxy calls to.  Pass in NULL to
 | 
| @@ -208,6 +212,8 @@ class MEDIA_EXPORT AlsaPcmOutputStream : public AudioOutputStream,
 | 
|    std::unique_ptr<ChannelMixer> channel_mixer_;
 | 
|    std::unique_ptr<AudioBus> mixed_audio_bus_;
 | 
|  
 | 
| +  std::unique_ptr<base::TickClock> tick_clock_;
 | 
| +
 | 
|    // Allows us to run tasks on the AlsaPcmOutputStream instance which are
 | 
|    // bound by its lifetime.
 | 
|    // NOTE: Weak pointers must be invalidated before all other member variables.
 | 
| 
 |