#include "third_party/blink/renderer/modules/mediarecorder/audio_track_mojo_encoder.h"
#include <memory>
#include <string>
#include "base/containers/queue.h"
#include "base/logging.h"
#include "base/task/bind_post_task.h"
#include "base/time/time.h"
#include "media/base/audio_encoder.h"
#include "media/base/audio_parameters.h"
#include "media/base/encoder_status.h"
#include "media/mojo/clients/mojo_audio_encoder.h"
#include "media/mojo/mojom/audio_encoder.mojom-blink.h"
#include "media/mojo/mojom/interface_factory.mojom.h"
#include "third_party/blink/public/common/thread_safe_browser_interface_broker_proxy.h"
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/renderer/platform/wtf/functional.h"
namespace {
void LogError(const std::string& message, media::EncoderStatus error) { … }
}
namespace blink {
AudioTrackMojoEncoder::AudioTrackMojoEncoder(
scoped_refptr<base::SequencedTaskRunner> encoder_task_runner,
AudioTrackRecorder::CodecId codec,
OnEncodedAudioCB on_encoded_audio_cb,
OnEncodedAudioErrorCB on_encoded_audio_error_cb,
uint32_t bits_per_second)
: … { … }
void AudioTrackMojoEncoder::OnSetFormat(
const media::AudioParameters& input_params) { … }
void AudioTrackMojoEncoder::EncodeAudio(
std::unique_ptr<media::AudioBus> input_bus,
base::TimeTicks capture_time) { … }
void AudioTrackMojoEncoder::DoEncodeAudio(
std::unique_ptr<media::AudioBus> input_bus,
base::TimeTicks capture_time) { … }
void AudioTrackMojoEncoder::OnInitializeDone(media::EncoderStatus status) { … }
void AudioTrackMojoEncoder::OnEncodeDone(media::EncoderStatus status) { … }
void AudioTrackMojoEncoder::OnEncodeOutput(
media::EncodedAudioBuffer encoded_buffer,
std::optional<media::AudioEncoder::CodecDescription> codec_desc) { … }
void AudioTrackMojoEncoder::NotifyError(const media::EncoderStatus& error) { … }
}