#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#ifndef MEDIA_BASE_AUDIO_BUS_H_
#define MEDIA_BASE_AUDIO_BUS_H_
#include <stdint.h>
#include <memory>
#include <vector>
#include "base/functional/callback.h"
#include "base/memory/aligned_memory.h"
#include "base/memory/raw_ptr.h"
#include "media/base/audio_sample_types.h"
#include "media/base/media_shmem_export.h"
namespace media {
class AudioParameters;
class MEDIA_SHMEM_EXPORT AudioBus { … };
template <class SourceSampleTypeTraits>
void AudioBus::FromInterleaved(
const typename SourceSampleTypeTraits::ValueType* source_buffer,
int num_frames_to_write) { … }
template <class SourceSampleTypeTraits>
void AudioBus::FromInterleavedPartial(
const typename SourceSampleTypeTraits::ValueType* source_buffer,
int write_offset_in_frames,
int num_frames_to_write) { … }
template <class TargetSampleTypeTraits>
void AudioBus::ToInterleaved(
int num_frames_to_read,
typename TargetSampleTypeTraits::ValueType* dest_buffer) const { … }
template <class TargetSampleTypeTraits>
void AudioBus::ToInterleavedPartial(
int read_offset_in_frames,
int num_frames_to_read,
typename TargetSampleTypeTraits::ValueType* dest) const { … }
template <class SourceSampleTypeTraits>
void AudioBus::CopyConvertFromInterleavedSourceToAudioBus(
const typename SourceSampleTypeTraits::ValueType* source_buffer,
int write_offset_in_frames,
int num_frames_to_write,
AudioBus* dest) { … }
template <class TargetSampleTypeTraits>
void AudioBus::CopyConvertFromAudioBusToInterleavedTarget(
const AudioBus* source,
int read_offset_in_frames,
int num_frames_to_read,
typename TargetSampleTypeTraits::ValueType* dest_buffer) { … }
}
#endif