chromium/third_party/webrtc/audio/audio_send_stream.cc

/*
 *  Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
 *
 *  Use of this source code is governed by a BSD-style license
 *  that can be found in the LICENSE file in the root of the source
 *  tree. An additional intellectual property rights grant can be found
 *  in the file PATENTS.  All contributing project authors may
 *  be found in the AUTHORS file in the root of the source tree.
 */

#include "audio/audio_send_stream.h"

#include <memory>
#include <string>
#include <utility>
#include <vector>

#include "api/audio/audio_processing.h"
#include "api/audio_codecs/audio_encoder.h"
#include "api/audio_codecs/audio_encoder_factory.h"
#include "api/audio_codecs/audio_format.h"
#include "api/call/transport.h"
#include "api/crypto/frame_encryptor_interface.h"
#include "api/function_view.h"
#include "api/rtc_event_log/rtc_event_log.h"
#include "api/task_queue/task_queue_base.h"
#include "audio/audio_state.h"
#include "audio/channel_send.h"
#include "audio/conversion.h"
#include "call/rtp_config.h"
#include "call/rtp_transport_controller_send_interface.h"
#include "common_audio/vad/include/vad.h"
#include "logging/rtc_event_log/events/rtc_event_audio_send_stream_config.h"
#include "logging/rtc_event_log/rtc_stream_config.h"
#include "media/base/media_channel.h"
#include "modules/audio_coding/codecs/cng/audio_encoder_cng.h"
#include "modules/audio_coding/codecs/red/audio_encoder_copy_red.h"
#include "modules/rtp_rtcp/source/rtp_header_extensions.h"
#include "rtc_base/checks.h"
#include "rtc_base/logging.h"
#include "rtc_base/strings/audio_format_to_string.h"
#include "rtc_base/trace_event.h"

namespace webrtc {
namespace {

void UpdateEventLogStreamConfig(RtcEventLog& event_log,
                                const AudioSendStream::Config& config,
                                const AudioSendStream::Config* old_config) {}

}  // namespace

constexpr char AudioAllocationConfig::kKey[];

std::unique_ptr<StructParametersParser> AudioAllocationConfig::Parser() {}

AudioAllocationConfig::AudioAllocationConfig(
    const FieldTrialsView& field_trials) {}

namespace internal {
AudioSendStream::AudioSendStream(
    const Environment& env,
    const webrtc::AudioSendStream::Config& config,
    const rtc::scoped_refptr<webrtc::AudioState>& audio_state,
    RtpTransportControllerSendInterface* rtp_transport,
    BitrateAllocatorInterface* bitrate_allocator,
    RtcpRttStats* rtcp_rtt_stats,
    const absl::optional<RtpState>& suspended_rtp_state)
    :{}

AudioSendStream::AudioSendStream(
    const Environment& env,
    const webrtc::AudioSendStream::Config& config,
    const rtc::scoped_refptr<webrtc::AudioState>& audio_state,
    RtpTransportControllerSendInterface* rtp_transport,
    BitrateAllocatorInterface* bitrate_allocator,
    const absl::optional<RtpState>& suspended_rtp_state,
    std::unique_ptr<voe::ChannelSendInterface> channel_send)
    :{}

AudioSendStream::~AudioSendStream() {}

const webrtc::AudioSendStream::Config& AudioSendStream::GetConfig() const {}

void AudioSendStream::Reconfigure(
    const webrtc::AudioSendStream::Config& new_config,
    SetParametersCallback callback) {}

AudioSendStream::ExtensionIds AudioSendStream::FindExtensionIds(
    const std::vector<RtpExtension>& extensions) {}

int AudioSendStream::TransportSeqNumId(const AudioSendStream::Config& config) {}

void AudioSendStream::ConfigureStream(
    const webrtc::AudioSendStream::Config& new_config,
    bool first_time,
    SetParametersCallback callback) {}

void AudioSendStream::Start() {}

void AudioSendStream::Stop() {}

void AudioSendStream::SendAudioData(std::unique_ptr<AudioFrame> audio_frame) {}

bool AudioSendStream::SendTelephoneEvent(int payload_type,
                                         int payload_frequency,
                                         int event,
                                         int duration_ms) {}

void AudioSendStream::SetMuted(bool muted) {}

webrtc::AudioSendStream::Stats AudioSendStream::GetStats() const {}

webrtc::AudioSendStream::Stats AudioSendStream::GetStats(
    bool has_remote_tracks) const {}

void AudioSendStream::DeliverRtcp(const uint8_t* packet, size_t length) {}

uint32_t AudioSendStream::OnBitrateUpdated(BitrateAllocationUpdate update) {}

absl::optional<DataRate> AudioSendStream::GetUsedRate() const {}

void AudioSendStream::SetTransportOverhead(
    int transport_overhead_per_packet_bytes) {}

void AudioSendStream::UpdateOverheadPerPacket() {}

size_t AudioSendStream::TestOnlyGetPerPacketOverheadBytes() const {}

RtpState AudioSendStream::GetRtpState() const {}

const voe::ChannelSendInterface* AudioSendStream::GetChannel() const {}

internal::AudioState* AudioSendStream::audio_state() {}

const internal::AudioState* AudioSendStream::audio_state() const {}

void AudioSendStream::StoreEncoderProperties(int sample_rate_hz,
                                             size_t num_channels) {}

// Apply current codec settings to a single voe::Channel used for sending.
bool AudioSendStream::SetupSendCodec(const Config& new_config) {}

bool AudioSendStream::ReconfigureSendCodec(const Config& new_config) {}

void AudioSendStream::ReconfigureANA(const Config& new_config) {}

void AudioSendStream::ReconfigureCNG(const Config& new_config) {}

void AudioSendStream::ReconfigureBitrateObserver(
    const webrtc::AudioSendStream::Config& new_config) {}

void AudioSendStream::ConfigureBitrateObserver() {}

void AudioSendStream::RemoveBitrateObserver() {}

absl::optional<AudioSendStream::TargetAudioBitrateConstraints>
AudioSendStream::GetMinMaxBitrateConstraints() const {}

void AudioSendStream::RegisterCngPayloadType(int payload_type,
                                             int clockrate_hz) {}

}  // namespace internal
}  // namespace webrtc