#include "services/audio/sync_reader.h"
#include <algorithm>
#include <limits>
#include <string>
#include <utility>
#include "base/command_line.h"
#include "base/containers/span.h"
#include "base/format_macros.h"
#include "base/logging.h"
#include "base/metrics/histogram_functions.h"
#include "base/numerics/safe_conversions.h"
#include "base/strings/strcat.h"
#include "base/strings/stringprintf.h"
#include "base/trace_event/trace_event.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "media/audio/audio_device_thread.h"
#include "media/base/audio_parameters.h"
#include "media/base/media_switches.h"
#include "services/audio/output_glitch_counter.h"
AudioLatency;
namespace audio {
#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_CHROMEOS_ASH) && \
!BUILDFLAG(IS_CHROMEOS_LACROS)
BASE_FEATURE(…);
const base::FeatureParam<double> kBufferDurationPercent{ … };
#endif
SyncReader::SyncReader(
base::RepeatingCallback<void(const std::string&)> log_callback,
const media::AudioParameters& params,
base::CancelableSyncSocket* foreign_socket)
: … { … }
SyncReader::SyncReader(
base::RepeatingCallback<void(const std::string&)> log_callback,
const media::AudioParameters& params,
base::CancelableSyncSocket* foreign_socket,
std::unique_ptr<OutputGlitchCounter> glitch_counter)
: … { … }
SyncReader::~SyncReader() { … }
bool SyncReader::IsValid() const { … }
base::UnsafeSharedMemoryRegion SyncReader::TakeSharedMemoryRegion() { … }
void SyncReader::RequestMoreData(base::TimeDelta delay,
base::TimeTicks delay_timestamp,
const media::AudioGlitchInfo& glitch_info) { … }
bool SyncReader::Read(media::AudioBus* dest, bool is_mixing) { … }
void SyncReader::Close() { … }
bool SyncReader::WaitUntilDataIsReady(bool is_mixing) { … }
}