diff options
Diffstat (limited to 'chromium/media/filters/mac/audio_toolbox_audio_encoder.h')
-rw-r--r-- | chromium/media/filters/mac/audio_toolbox_audio_encoder.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/chromium/media/filters/mac/audio_toolbox_audio_encoder.h b/chromium/media/filters/mac/audio_toolbox_audio_encoder.h index 02f7ddfcb0e..8acc616ee5e 100644 --- a/chromium/media/filters/mac/audio_toolbox_audio_encoder.h +++ b/chromium/media/filters/mac/audio_toolbox_audio_encoder.h @@ -1,4 +1,4 @@ -// Copyright 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -15,6 +15,7 @@ namespace media { class AudioTimestampHelper; +class ConvertingAudioFifo; // Audio encoder based on macOS's AudioToolbox API. The AudioToolbox // API is required to encode codecs that aren't supported by Chromium. @@ -40,6 +41,8 @@ class MEDIA_EXPORT AudioToolboxAudioEncoder : public AudioEncoder { bool CreateEncoder(const AudioEncoderConfig& config, const AudioStreamBasicDescription& output_format); + void DoEncode(AudioBus* data); + // "Converter" for turning raw audio into encoded samples. AudioConverterRef encoder_ = nullptr; @@ -49,6 +52,8 @@ class MEDIA_EXPORT AudioToolboxAudioEncoder : public AudioEncoder { // Actual sample rate from the encoder, may be different than config. uint32_t sample_rate_ = 0u; + EncoderStatusCB current_done_cb_; + // Callback that delivers encoded frames. OutputCB output_cb_; @@ -58,6 +63,9 @@ class MEDIA_EXPORT AudioToolboxAudioEncoder : public AudioEncoder { std::unique_ptr<AudioTimestampHelper> timestamp_helper_; std::vector<uint8_t> codec_desc_; + + // Ensures the data sent to Encode() matches the encoder's input format. + std::unique_ptr<ConvertingAudioFifo> fifo_; }; } // namespace media |