// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef MEDIA_AUDIO_AUDIO_OUTPUT_RESAMPLER_H_ #define MEDIA_AUDIO_AUDIO_OUTPUT_RESAMPLER_H_ #include "base/containers/flat_map.h" #include "base/time/time.h" #include "base/timer/timer.h" #include "media/audio/audio_debug_recording_helper.h" #include "media/audio/audio_io.h" #include "media/audio/audio_output_dispatcher.h" #include "media/base/audio_parameters.h" namespace media { class AudioManager; class AudioOutputDispatcherImpl; class OnMoreDataConverter; // AudioOutputResampler is a browser-side resampling and buffering solution // which ensures audio data is always output at given parameters. See the // AudioConverter class for details on the conversion process. // // AOR works by intercepting the AudioSourceCallback provided to StartStream() // and redirecting it through an AudioConverter instance. // // AOR will automatically fall back from AUDIO_PCM_LOW_LATENCY to // AUDIO_PCM_LINEAR if the output device fails to open at the requested output // parameters. If opening still fails, it will fallback to AUDIO_FAKE. class MEDIA_EXPORT AudioOutputResampler : public AudioOutputDispatcher { … }; } // namespace media #endif // MEDIA_AUDIO_AUDIO_OUTPUT_RESAMPLER_H_