mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-12 21:30:45 +01:00
Rename AudioReceiveStream to AudioReceiveStreamInterface
Bug: webrtc:7484 Change-Id: I22eaa7a9e082fc575cf7471d7a2f4f706564d54f Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262805 Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org> Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org> Cr-Commit-Position: refs/heads/main@{#36965}
This commit is contained in:
parent
4d6dd17153
commit
3176ef79e9
43 changed files with 223 additions and 203 deletions
|
@ -33,7 +33,7 @@
|
|||
|
||||
namespace webrtc {
|
||||
|
||||
std::string AudioReceiveStream::Config::Rtp::ToString() const {
|
||||
std::string AudioReceiveStreamInterface::Config::Rtp::ToString() const {
|
||||
char ss_buf[1024];
|
||||
rtc::SimpleStringBuilder ss(ss_buf);
|
||||
ss << "{remote_ssrc: " << remote_ssrc;
|
||||
|
@ -52,7 +52,7 @@ std::string AudioReceiveStream::Config::Rtp::ToString() const {
|
|||
return ss.str();
|
||||
}
|
||||
|
||||
std::string AudioReceiveStream::Config::ToString() const {
|
||||
std::string AudioReceiveStreamInterface::Config::ToString() const {
|
||||
char ss_buf[1024];
|
||||
rtc::SimpleStringBuilder ss(ss_buf);
|
||||
ss << "{rtp: " << rtp.ToString();
|
||||
|
@ -70,7 +70,7 @@ std::unique_ptr<voe::ChannelReceiveInterface> CreateChannelReceive(
|
|||
Clock* clock,
|
||||
webrtc::AudioState* audio_state,
|
||||
NetEqFactory* neteq_factory,
|
||||
const webrtc::AudioReceiveStream::Config& config,
|
||||
const webrtc::AudioReceiveStreamInterface::Config& config,
|
||||
RtcEventLog* event_log) {
|
||||
RTC_DCHECK(audio_state);
|
||||
internal::AudioState* internal_audio_state =
|
||||
|
@ -90,7 +90,7 @@ AudioReceiveStreamImpl::AudioReceiveStreamImpl(
|
|||
Clock* clock,
|
||||
PacketRouter* packet_router,
|
||||
NetEqFactory* neteq_factory,
|
||||
const webrtc::AudioReceiveStream::Config& config,
|
||||
const webrtc::AudioReceiveStreamInterface::Config& config,
|
||||
const rtc::scoped_refptr<webrtc::AudioState>& audio_state,
|
||||
webrtc::RtcEventLog* event_log)
|
||||
: AudioReceiveStreamImpl(clock,
|
||||
|
@ -107,7 +107,7 @@ AudioReceiveStreamImpl::AudioReceiveStreamImpl(
|
|||
AudioReceiveStreamImpl::AudioReceiveStreamImpl(
|
||||
Clock* clock,
|
||||
PacketRouter* packet_router,
|
||||
const webrtc::AudioReceiveStream::Config& config,
|
||||
const webrtc::AudioReceiveStreamInterface::Config& config,
|
||||
const rtc::scoped_refptr<webrtc::AudioState>& audio_state,
|
||||
webrtc::RtcEventLog* event_log,
|
||||
std::unique_ptr<voe::ChannelReceiveInterface> channel_receive)
|
||||
|
@ -164,7 +164,7 @@ void AudioReceiveStreamImpl::UnregisterFromTransport() {
|
|||
}
|
||||
|
||||
void AudioReceiveStreamImpl::ReconfigureForTesting(
|
||||
const webrtc::AudioReceiveStream::Config& config) {
|
||||
const webrtc::AudioReceiveStreamInterface::Config& config) {
|
||||
RTC_DCHECK_RUN_ON(&worker_thread_checker_);
|
||||
|
||||
// SSRC can't be changed mid-stream.
|
||||
|
@ -279,10 +279,10 @@ RtpHeaderExtensionMap AudioReceiveStreamImpl::GetRtpExtensionMap() const {
|
|||
return RtpHeaderExtensionMap(config_.rtp.extensions);
|
||||
}
|
||||
|
||||
webrtc::AudioReceiveStream::Stats AudioReceiveStreamImpl::GetStats(
|
||||
webrtc::AudioReceiveStreamInterface::Stats AudioReceiveStreamImpl::GetStats(
|
||||
bool get_and_clear_legacy_stats) const {
|
||||
RTC_DCHECK_RUN_ON(&worker_thread_checker_);
|
||||
webrtc::AudioReceiveStream::Stats stats;
|
||||
webrtc::AudioReceiveStreamInterface::Stats stats;
|
||||
stats.remote_ssrc = remote_ssrc();
|
||||
|
||||
webrtc::CallReceiveStatistics call_stats =
|
||||
|
|
|
@ -42,7 +42,7 @@ namespace internal {
|
|||
class AudioSendStream;
|
||||
} // namespace internal
|
||||
|
||||
class AudioReceiveStreamImpl final : public webrtc::AudioReceiveStream,
|
||||
class AudioReceiveStreamImpl final : public webrtc::AudioReceiveStreamInterface,
|
||||
public AudioMixer::Source,
|
||||
public Syncable {
|
||||
public:
|
||||
|
@ -50,14 +50,14 @@ class AudioReceiveStreamImpl final : public webrtc::AudioReceiveStream,
|
|||
Clock* clock,
|
||||
PacketRouter* packet_router,
|
||||
NetEqFactory* neteq_factory,
|
||||
const webrtc::AudioReceiveStream::Config& config,
|
||||
const webrtc::AudioReceiveStreamInterface::Config& config,
|
||||
const rtc::scoped_refptr<webrtc::AudioState>& audio_state,
|
||||
webrtc::RtcEventLog* event_log);
|
||||
// For unit tests, which need to supply a mock channel receive.
|
||||
AudioReceiveStreamImpl(
|
||||
Clock* clock,
|
||||
PacketRouter* packet_router,
|
||||
const webrtc::AudioReceiveStream::Config& config,
|
||||
const webrtc::AudioReceiveStreamInterface::Config& config,
|
||||
const rtc::scoped_refptr<webrtc::AudioState>& audio_state,
|
||||
webrtc::RtcEventLog* event_log,
|
||||
std::unique_ptr<voe::ChannelReceiveInterface> channel_receive);
|
||||
|
@ -82,7 +82,7 @@ class AudioReceiveStreamImpl final : public webrtc::AudioReceiveStream,
|
|||
// network thread.
|
||||
void UnregisterFromTransport();
|
||||
|
||||
// webrtc::AudioReceiveStream implementation.
|
||||
// webrtc::AudioReceiveStreamInterface implementation.
|
||||
void Start() override;
|
||||
void Stop() override;
|
||||
bool transport_cc() const override;
|
||||
|
@ -100,7 +100,7 @@ class AudioReceiveStreamImpl final : public webrtc::AudioReceiveStream,
|
|||
const std::vector<RtpExtension>& GetRtpExtensions() const override;
|
||||
RtpHeaderExtensionMap GetRtpExtensionMap() const override;
|
||||
|
||||
webrtc::AudioReceiveStream::Stats GetStats(
|
||||
webrtc::AudioReceiveStreamInterface::Stats GetStats(
|
||||
bool get_and_clear_legacy_stats) const override;
|
||||
void SetSink(AudioSinkInterface* sink) override;
|
||||
void SetGain(float gain) override;
|
||||
|
@ -145,7 +145,8 @@ class AudioReceiveStreamImpl final : public webrtc::AudioReceiveStream,
|
|||
const AudioSendStream* GetAssociatedSendStreamForTesting() const;
|
||||
|
||||
// TODO(tommi): Remove this method.
|
||||
void ReconfigureForTesting(const webrtc::AudioReceiveStream::Config& config);
|
||||
void ReconfigureForTesting(
|
||||
const webrtc::AudioReceiveStreamInterface::Config& config);
|
||||
|
||||
private:
|
||||
internal::AudioState* audio_state() const;
|
||||
|
@ -159,7 +160,7 @@ class AudioReceiveStreamImpl final : public webrtc::AudioReceiveStream,
|
|||
// that belong to the network thread. Once the packets are fully delivered
|
||||
// on the network thread, this comment will be deleted.
|
||||
RTC_NO_UNIQUE_ADDRESS SequenceChecker packet_sequence_checker_;
|
||||
webrtc::AudioReceiveStream::Config config_;
|
||||
webrtc::AudioReceiveStreamInterface::Config config_;
|
||||
rtc::scoped_refptr<webrtc::AudioState> audio_state_;
|
||||
SourceTracker source_tracker_;
|
||||
const std::unique_ptr<voe::ChannelReceiveInterface> channel_receive_;
|
||||
|
|
|
@ -155,7 +155,7 @@ struct ConfigHelper {
|
|||
return ret;
|
||||
}
|
||||
|
||||
AudioReceiveStream::Config& config() { return stream_config_; }
|
||||
AudioReceiveStreamInterface::Config& config() { return stream_config_; }
|
||||
rtc::scoped_refptr<MockAudioMixer> audio_mixer() { return audio_mixer_; }
|
||||
MockChannelReceive* channel_receive() { return channel_receive_; }
|
||||
|
||||
|
@ -189,7 +189,7 @@ struct ConfigHelper {
|
|||
MockRtcEventLog event_log_;
|
||||
rtc::scoped_refptr<AudioState> audio_state_;
|
||||
rtc::scoped_refptr<MockAudioMixer> audio_mixer_;
|
||||
AudioReceiveStream::Config stream_config_;
|
||||
AudioReceiveStreamInterface::Config stream_config_;
|
||||
::testing::StrictMock<MockChannelReceive>* channel_receive_ = nullptr;
|
||||
RtpStreamReceiverController rtp_stream_receiver_controller_;
|
||||
MockTransport rtcp_send_transport_;
|
||||
|
@ -209,7 +209,7 @@ const std::vector<uint8_t> CreateRtcpSenderReport() {
|
|||
} // namespace
|
||||
|
||||
TEST(AudioReceiveStreamTest, ConfigToString) {
|
||||
AudioReceiveStream::Config config;
|
||||
AudioReceiveStreamInterface::Config config;
|
||||
config.rtp.remote_ssrc = kRemoteSsrc;
|
||||
config.rtp.local_ssrc = kLocalSsrc;
|
||||
config.rtp.extensions.push_back(
|
||||
|
@ -249,7 +249,7 @@ TEST(AudioReceiveStreamTest, GetStats) {
|
|||
ConfigHelper helper(use_null_audio_processing);
|
||||
auto recv_stream = helper.CreateAudioReceiveStream();
|
||||
helper.SetupMockForGetStats();
|
||||
AudioReceiveStream::Stats stats =
|
||||
AudioReceiveStreamInterface::Stats stats =
|
||||
recv_stream->GetStats(/*get_and_clear_legacy_stats=*/true);
|
||||
EXPECT_EQ(kRemoteSsrc, stats.remote_ssrc);
|
||||
EXPECT_EQ(kCallStats.payload_bytes_rcvd, stats.payload_bytes_rcvd);
|
||||
|
|
|
@ -61,9 +61,9 @@ TEST_F(AudioSendStreamCallTest, SupportsCName) {
|
|||
return SEND_PACKET;
|
||||
}
|
||||
|
||||
void ModifyAudioConfigs(
|
||||
AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStream::Config>* receive_configs) override {
|
||||
void ModifyAudioConfigs(AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStreamInterface::Config>*
|
||||
receive_configs) override {
|
||||
send_config->rtp.c_name = kCName;
|
||||
}
|
||||
|
||||
|
@ -90,9 +90,9 @@ TEST_F(AudioSendStreamCallTest, NoExtensionsByDefault) {
|
|||
return SEND_PACKET;
|
||||
}
|
||||
|
||||
void ModifyAudioConfigs(
|
||||
AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStream::Config>* receive_configs) override {
|
||||
void ModifyAudioConfigs(AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStreamInterface::Config>*
|
||||
receive_configs) override {
|
||||
send_config->rtp.extensions.clear();
|
||||
}
|
||||
|
||||
|
@ -129,9 +129,9 @@ TEST_F(AudioSendStreamCallTest, SupportsAudioLevel) {
|
|||
return SEND_PACKET;
|
||||
}
|
||||
|
||||
void ModifyAudioConfigs(
|
||||
AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStream::Config>* receive_configs) override {
|
||||
void ModifyAudioConfigs(AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStreamInterface::Config>*
|
||||
receive_configs) override {
|
||||
send_config->rtp.extensions.clear();
|
||||
send_config->rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kAudioLevelUri, kAudioLevelExtensionId));
|
||||
|
@ -171,9 +171,9 @@ class TransportWideSequenceNumberObserver : public AudioSendTest {
|
|||
return SEND_PACKET;
|
||||
}
|
||||
|
||||
void ModifyAudioConfigs(
|
||||
AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStream::Config>* receive_configs) override {
|
||||
void ModifyAudioConfigs(AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStreamInterface::Config>*
|
||||
receive_configs) override {
|
||||
send_config->rtp.extensions.clear();
|
||||
send_config->rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kTransportSequenceNumberUri,
|
||||
|
@ -223,9 +223,9 @@ TEST_F(AudioSendStreamCallTest, SendDtmf) {
|
|||
return SEND_PACKET;
|
||||
}
|
||||
|
||||
void OnAudioStreamsCreated(
|
||||
AudioSendStream* send_stream,
|
||||
const std::vector<AudioReceiveStream*>& receive_streams) override {
|
||||
void OnAudioStreamsCreated(AudioSendStream* send_stream,
|
||||
const std::vector<AudioReceiveStreamInterface*>&
|
||||
receive_streams) override {
|
||||
// Need to start stream here, else DTMF events are dropped.
|
||||
send_stream->Start();
|
||||
for (int event = kDtmfEventFirst; event <= kDtmfEventLast; ++event) {
|
||||
|
|
|
@ -50,7 +50,8 @@ AudioTransport* AudioState::audio_transport() {
|
|||
return &audio_transport_;
|
||||
}
|
||||
|
||||
void AudioState::AddReceivingStream(webrtc::AudioReceiveStream* stream) {
|
||||
void AudioState::AddReceivingStream(
|
||||
webrtc::AudioReceiveStreamInterface* stream) {
|
||||
RTC_DCHECK(thread_checker_.IsCurrent());
|
||||
RTC_DCHECK_EQ(0, receiving_streams_.count(stream));
|
||||
receiving_streams_.insert(stream);
|
||||
|
@ -73,7 +74,8 @@ void AudioState::AddReceivingStream(webrtc::AudioReceiveStream* stream) {
|
|||
}
|
||||
}
|
||||
|
||||
void AudioState::RemoveReceivingStream(webrtc::AudioReceiveStream* stream) {
|
||||
void AudioState::RemoveReceivingStream(
|
||||
webrtc::AudioReceiveStreamInterface* stream) {
|
||||
RTC_DCHECK(thread_checker_.IsCurrent());
|
||||
auto count = receiving_streams_.erase(stream);
|
||||
RTC_DCHECK_EQ(1, count);
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
namespace webrtc {
|
||||
|
||||
class AudioSendStream;
|
||||
class AudioReceiveStream;
|
||||
class AudioReceiveStreamInterface;
|
||||
|
||||
namespace internal {
|
||||
|
||||
|
@ -51,8 +51,8 @@ class AudioState : public webrtc::AudioState {
|
|||
return config_.audio_device_module.get();
|
||||
}
|
||||
|
||||
void AddReceivingStream(webrtc::AudioReceiveStream* stream);
|
||||
void RemoveReceivingStream(webrtc::AudioReceiveStream* stream);
|
||||
void AddReceivingStream(webrtc::AudioReceiveStreamInterface* stream);
|
||||
void RemoveReceivingStream(webrtc::AudioReceiveStreamInterface* stream);
|
||||
|
||||
void AddSendingStream(webrtc::AudioSendStream* stream,
|
||||
int sample_rate_hz,
|
||||
|
@ -78,7 +78,7 @@ class AudioState : public webrtc::AudioState {
|
|||
// stats are still updated.
|
||||
std::unique_ptr<NullAudioPoller> null_audio_poller_;
|
||||
|
||||
webrtc::flat_set<webrtc::AudioReceiveStream*> receiving_streams_;
|
||||
webrtc::flat_set<webrtc::AudioReceiveStreamInterface*> receiving_streams_;
|
||||
struct StreamProperties {
|
||||
int sample_rate_hz = 0;
|
||||
size_t num_channels = 0;
|
||||
|
|
|
@ -317,13 +317,13 @@ void ChannelReceive::OnReceivedPayloadData(
|
|||
// packet as discarded.
|
||||
|
||||
// If we have a source_tracker_, tell it that the frame has been
|
||||
// "delivered". Normally, this happens in AudioReceiveStream when audio
|
||||
// frames are pulled out, but when playout is muted, nothing is pulling
|
||||
// frames. The downside of this approach is that frames delivered this way
|
||||
// won't be delayed for playout, and therefore will be unsynchronized with
|
||||
// (a) audio delay when playing and (b) any audio/video synchronization. But
|
||||
// the alternative is that muting playout also stops the SourceTracker from
|
||||
// updating RtpSource information.
|
||||
// "delivered". Normally, this happens in AudioReceiveStreamInterface when
|
||||
// audio frames are pulled out, but when playout is muted, nothing is
|
||||
// pulling frames. The downside of this approach is that frames delivered
|
||||
// this way won't be delayed for playout, and therefore will be
|
||||
// unsynchronized with (a) audio delay when playing and (b) any audio/video
|
||||
// synchronization. But the alternative is that muting playout also stops
|
||||
// the SourceTracker from updating RtpSource information.
|
||||
if (source_tracker_) {
|
||||
RtpPacketInfos::vector_type packet_vector = {
|
||||
RtpPacketInfo(rtpHeader, clock_->CurrentTime())};
|
||||
|
|
|
@ -83,7 +83,7 @@ namespace voe {
|
|||
|
||||
class ChannelSendInterface;
|
||||
|
||||
// Interface class needed for AudioReceiveStream tests that use a
|
||||
// Interface class needed for AudioReceiveStreamInterface tests that use a
|
||||
// MockChannelReceive.
|
||||
|
||||
class ChannelReceiveInterface : public RtpPacketSinkInterface {
|
||||
|
|
|
@ -105,9 +105,9 @@ class NoBandwidthDropAfterDtx : public AudioBweTest {
|
|||
NoBandwidthDropAfterDtx()
|
||||
: sender_call_(nullptr), stats_poller_("stats poller task queue") {}
|
||||
|
||||
void ModifyAudioConfigs(
|
||||
AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStream::Config>* receive_configs) override {
|
||||
void ModifyAudioConfigs(AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStreamInterface::Config>*
|
||||
receive_configs) override {
|
||||
send_config->send_codec_spec = AudioSendStream::Config::SendCodecSpec(
|
||||
test::CallTest::kAudioSendPayloadType,
|
||||
{"OPUS",
|
||||
|
@ -120,7 +120,7 @@ class NoBandwidthDropAfterDtx : public AudioBweTest {
|
|||
send_config->rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kTransportSequenceNumberUri,
|
||||
kTransportSequenceNumberExtensionId));
|
||||
for (AudioReceiveStream::Config& recv_config : *receive_configs) {
|
||||
for (AudioReceiveStreamInterface::Config& recv_config : *receive_configs) {
|
||||
recv_config.rtp.transport_cc = true;
|
||||
recv_config.rtp.extensions = send_config->rtp.extensions;
|
||||
recv_config.rtp.remote_ssrc = send_config->rtp.ssrc;
|
||||
|
|
|
@ -86,7 +86,7 @@ AudioEndToEndTest::CreateReceiveTransport(TaskQueueBase* task_queue) {
|
|||
|
||||
void AudioEndToEndTest::ModifyAudioConfigs(
|
||||
AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStream::Config>* receive_configs) {
|
||||
std::vector<AudioReceiveStreamInterface::Config>* receive_configs) {
|
||||
// Large bitrate by default.
|
||||
const webrtc::SdpAudioFormat kDefaultFormat("opus", 48000, 2,
|
||||
{{"stereo", "1"}});
|
||||
|
@ -98,7 +98,7 @@ void AudioEndToEndTest::ModifyAudioConfigs(
|
|||
|
||||
void AudioEndToEndTest::OnAudioStreamsCreated(
|
||||
AudioSendStream* send_stream,
|
||||
const std::vector<AudioReceiveStream*>& receive_streams) {
|
||||
const std::vector<AudioReceiveStreamInterface*>& receive_streams) {
|
||||
ASSERT_NE(nullptr, send_stream);
|
||||
ASSERT_EQ(1u, receive_streams.size());
|
||||
ASSERT_NE(nullptr, receive_streams[0]);
|
||||
|
|
|
@ -28,7 +28,9 @@ class AudioEndToEndTest : public test::EndToEndTest {
|
|||
protected:
|
||||
TestAudioDeviceModule* send_audio_device() { return send_audio_device_; }
|
||||
const AudioSendStream* send_stream() const { return send_stream_; }
|
||||
const AudioReceiveStream* receive_stream() const { return receive_stream_; }
|
||||
const AudioReceiveStreamInterface* receive_stream() const {
|
||||
return receive_stream_;
|
||||
}
|
||||
|
||||
virtual BuiltInNetworkBehaviorConfig GetNetworkPipeConfig() const;
|
||||
|
||||
|
@ -49,19 +51,19 @@ class AudioEndToEndTest : public test::EndToEndTest {
|
|||
std::unique_ptr<test::PacketTransport> CreateReceiveTransport(
|
||||
TaskQueueBase* task_queue) override;
|
||||
|
||||
void ModifyAudioConfigs(
|
||||
AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStream::Config>* receive_configs) override;
|
||||
void OnAudioStreamsCreated(
|
||||
AudioSendStream* send_stream,
|
||||
const std::vector<AudioReceiveStream*>& receive_streams) override;
|
||||
void ModifyAudioConfigs(AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStreamInterface::Config>*
|
||||
receive_configs) override;
|
||||
void OnAudioStreamsCreated(AudioSendStream* send_stream,
|
||||
const std::vector<AudioReceiveStreamInterface*>&
|
||||
receive_streams) override;
|
||||
|
||||
void PerformTest() override;
|
||||
|
||||
private:
|
||||
TestAudioDeviceModule* send_audio_device_ = nullptr;
|
||||
AudioSendStream* send_stream_ = nullptr;
|
||||
AudioReceiveStream* receive_stream_ = nullptr;
|
||||
AudioReceiveStreamInterface* receive_stream_ = nullptr;
|
||||
};
|
||||
|
||||
} // namespace test
|
||||
|
|
|
@ -64,7 +64,7 @@ class NoLossTest : public AudioEndToEndTest {
|
|||
EXPECT_FALSE(send_stats.apm_statistics.residual_echo_likelihood);
|
||||
EXPECT_FALSE(send_stats.apm_statistics.residual_echo_likelihood_recent_max);
|
||||
|
||||
AudioReceiveStream::Stats recv_stats =
|
||||
AudioReceiveStreamInterface::Stats recv_stats =
|
||||
receive_stream()->GetStats(/*get_and_clear_legacy_stats=*/true);
|
||||
EXPECT_PRED2(IsNear, kBytesSent, recv_stats.payload_bytes_rcvd);
|
||||
EXPECT_PRED2(IsNear, kPacketsSent, recv_stats.packets_rcvd);
|
||||
|
|
|
@ -73,9 +73,9 @@ class AudioQualityTest : public AudioEndToEndTest {
|
|||
};
|
||||
|
||||
class Mobile2GNetworkTest : public AudioQualityTest {
|
||||
void ModifyAudioConfigs(
|
||||
AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStream::Config>* receive_configs) override {
|
||||
void ModifyAudioConfigs(AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStreamInterface::Config>*
|
||||
receive_configs) override {
|
||||
send_config->send_codec_spec = AudioSendStream::Config::SendCodecSpec(
|
||||
test::CallTest::kAudioSendPayloadType,
|
||||
{"OPUS",
|
||||
|
|
|
@ -32,9 +32,9 @@ TEST_F(NackTest, ShouldNackInLossyNetwork) {
|
|||
return pipe_config;
|
||||
}
|
||||
|
||||
void ModifyAudioConfigs(
|
||||
AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStream::Config>* receive_configs) override {
|
||||
void ModifyAudioConfigs(AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStreamInterface::Config>*
|
||||
receive_configs) override {
|
||||
ASSERT_EQ(receive_configs->size(), 1U);
|
||||
(*receive_configs)[0].rtp.nack.rtp_history_ms = kNackHistoryMs;
|
||||
AudioEndToEndTest::ModifyAudioConfigs(send_config, receive_configs);
|
||||
|
@ -43,7 +43,7 @@ TEST_F(NackTest, ShouldNackInLossyNetwork) {
|
|||
void PerformTest() override { SleepMs(kTestDurationMs); }
|
||||
|
||||
void OnStreamsStopped() override {
|
||||
AudioReceiveStream::Stats recv_stats =
|
||||
AudioReceiveStreamInterface::Stats recv_stats =
|
||||
receive_stream()->GetStats(/*get_and_clear_legacy_stats=*/true);
|
||||
EXPECT_GT(recv_stats.nacks_sent, 0U);
|
||||
AudioSendStream::Stats send_stats = send_stream()->GetStats();
|
||||
|
|
|
@ -29,9 +29,9 @@ TEST_F(NonSenderRttTest, NonSenderRttStats) {
|
|||
return pipe_config;
|
||||
}
|
||||
|
||||
void ModifyAudioConfigs(
|
||||
AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStream::Config>* receive_configs) override {
|
||||
void ModifyAudioConfigs(AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStreamInterface::Config>*
|
||||
receive_configs) override {
|
||||
ASSERT_EQ(receive_configs->size(), 1U);
|
||||
(*receive_configs)[0].enable_non_sender_rtt = true;
|
||||
AudioEndToEndTest::ModifyAudioConfigs(send_config, receive_configs);
|
||||
|
@ -41,7 +41,7 @@ TEST_F(NonSenderRttTest, NonSenderRttStats) {
|
|||
void PerformTest() override { SleepMs(kTestDurationMs); }
|
||||
|
||||
void OnStreamsStopped() override {
|
||||
AudioReceiveStream::Stats recv_stats =
|
||||
AudioReceiveStreamInterface::Stats recv_stats =
|
||||
receive_stream()->GetStats(/*get_and_clear_legacy_stats=*/true);
|
||||
EXPECT_GT(recv_stats.round_trip_time_measurements, 0);
|
||||
ASSERT_TRUE(recv_stats.round_trip_time.has_value());
|
||||
|
|
|
@ -12,13 +12,13 @@
|
|||
|
||||
namespace webrtc {
|
||||
|
||||
AudioReceiveStream::Stats::Stats() = default;
|
||||
AudioReceiveStream::Stats::~Stats() = default;
|
||||
AudioReceiveStreamInterface::Stats::Stats() = default;
|
||||
AudioReceiveStreamInterface::Stats::~Stats() = default;
|
||||
|
||||
AudioReceiveStream::Config::Config() = default;
|
||||
AudioReceiveStream::Config::~Config() = default;
|
||||
AudioReceiveStreamInterface::Config::Config() = default;
|
||||
AudioReceiveStreamInterface::Config::~Config() = default;
|
||||
|
||||
AudioReceiveStream::Config::Rtp::Rtp() = default;
|
||||
AudioReceiveStream::Config::Rtp::~Rtp() = default;
|
||||
AudioReceiveStreamInterface::Config::Rtp::Rtp() = default;
|
||||
AudioReceiveStreamInterface::Config::Rtp::~Rtp() = default;
|
||||
|
||||
} // namespace webrtc
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
namespace webrtc {
|
||||
class AudioSinkInterface;
|
||||
|
||||
class AudioReceiveStream : public MediaReceiveStreamInterface {
|
||||
class AudioReceiveStreamInterface : public MediaReceiveStreamInterface {
|
||||
public:
|
||||
struct Stats {
|
||||
Stats();
|
||||
|
@ -147,14 +147,14 @@ class AudioReceiveStream : public MediaReceiveStreamInterface {
|
|||
// decrypted in whatever way the caller choses. This is not required by
|
||||
// default.
|
||||
// TODO(tommi): Remove this member variable from the struct. It's not
|
||||
// a part of the AudioReceiveStream state but rather a pass through
|
||||
// a part of the AudioReceiveStreamInterface state but rather a pass through
|
||||
// variable.
|
||||
rtc::scoped_refptr<webrtc::FrameDecryptorInterface> frame_decryptor;
|
||||
|
||||
// An optional frame transformer used by insertable streams to transform
|
||||
// encoded frames.
|
||||
// TODO(tommi): Remove this member variable from the struct. It's not
|
||||
// a part of the AudioReceiveStream state but rather a pass through
|
||||
// a part of the AudioReceiveStreamInterface state but rather a pass through
|
||||
// variable.
|
||||
rtc::scoped_refptr<webrtc::FrameTransformerInterface> frame_transformer;
|
||||
};
|
||||
|
@ -205,8 +205,14 @@ class AudioReceiveStream : public MediaReceiveStreamInterface {
|
|||
virtual const std::vector<RtpExtension>& GetRtpExtensions() const = 0;
|
||||
|
||||
protected:
|
||||
virtual ~AudioReceiveStream() {}
|
||||
virtual ~AudioReceiveStreamInterface() {}
|
||||
};
|
||||
|
||||
// TODO(bugs.webrtc.org/7484): Remove this once downstream usage of the
|
||||
// deprecated name is gone.
|
||||
using AudioReceiveStream [[deprecated("Use AudioReceiveStreamInterface")]] =
|
||||
AudioReceiveStreamInterface;
|
||||
|
||||
} // namespace webrtc
|
||||
|
||||
#endif // CALL_AUDIO_RECEIVE_STREAM_H_
|
||||
|
|
22
call/call.cc
22
call/call.cc
|
@ -134,7 +134,7 @@ std::unique_ptr<rtclog::StreamConfig> CreateRtcLogStreamConfig(
|
|||
}
|
||||
|
||||
std::unique_ptr<rtclog::StreamConfig> CreateRtcLogStreamConfig(
|
||||
const AudioReceiveStream::Config& config) {
|
||||
const AudioReceiveStreamInterface::Config& config) {
|
||||
auto rtclog_config = std::make_unique<rtclog::StreamConfig>();
|
||||
rtclog_config->remote_ssrc = config.rtp.remote_ssrc;
|
||||
rtclog_config->local_ssrc = config.rtp.local_ssrc;
|
||||
|
@ -217,10 +217,10 @@ class Call final : public webrtc::Call,
|
|||
const webrtc::AudioSendStream::Config& config) override;
|
||||
void DestroyAudioSendStream(webrtc::AudioSendStream* send_stream) override;
|
||||
|
||||
webrtc::AudioReceiveStream* CreateAudioReceiveStream(
|
||||
const webrtc::AudioReceiveStream::Config& config) override;
|
||||
webrtc::AudioReceiveStreamInterface* CreateAudioReceiveStream(
|
||||
const webrtc::AudioReceiveStreamInterface::Config& config) override;
|
||||
void DestroyAudioReceiveStream(
|
||||
webrtc::AudioReceiveStream* receive_stream) override;
|
||||
webrtc::AudioReceiveStreamInterface* receive_stream) override;
|
||||
|
||||
webrtc::VideoSendStream* CreateVideoSendStream(
|
||||
webrtc::VideoSendStream::Config config,
|
||||
|
@ -265,14 +265,14 @@ class Call final : public webrtc::Call,
|
|||
void OnAudioTransportOverheadChanged(
|
||||
int transport_overhead_per_packet) override;
|
||||
|
||||
void OnLocalSsrcUpdated(webrtc::AudioReceiveStream& stream,
|
||||
void OnLocalSsrcUpdated(webrtc::AudioReceiveStreamInterface& stream,
|
||||
uint32_t local_ssrc) override;
|
||||
void OnLocalSsrcUpdated(VideoReceiveStreamInterface& stream,
|
||||
uint32_t local_ssrc) override;
|
||||
void OnLocalSsrcUpdated(FlexfecReceiveStream& stream,
|
||||
uint32_t local_ssrc) override;
|
||||
|
||||
void OnUpdateSyncGroup(webrtc::AudioReceiveStream& stream,
|
||||
void OnUpdateSyncGroup(webrtc::AudioReceiveStreamInterface& stream,
|
||||
absl::string_view sync_group) override;
|
||||
|
||||
void OnSentPacket(const rtc::SentPacket& sent_packet) override;
|
||||
|
@ -966,8 +966,8 @@ void Call::DestroyAudioSendStream(webrtc::AudioSendStream* send_stream) {
|
|||
delete send_stream;
|
||||
}
|
||||
|
||||
webrtc::AudioReceiveStream* Call::CreateAudioReceiveStream(
|
||||
const webrtc::AudioReceiveStream::Config& config) {
|
||||
webrtc::AudioReceiveStreamInterface* Call::CreateAudioReceiveStream(
|
||||
const webrtc::AudioReceiveStreamInterface::Config& config) {
|
||||
TRACE_EVENT0("webrtc", "Call::CreateAudioReceiveStream");
|
||||
RTC_DCHECK_RUN_ON(worker_thread_);
|
||||
EnsureStarted();
|
||||
|
@ -1001,7 +1001,7 @@ webrtc::AudioReceiveStream* Call::CreateAudioReceiveStream(
|
|||
}
|
||||
|
||||
void Call::DestroyAudioReceiveStream(
|
||||
webrtc::AudioReceiveStream* receive_stream) {
|
||||
webrtc::AudioReceiveStreamInterface* receive_stream) {
|
||||
TRACE_EVENT0("webrtc", "Call::DestroyAudioReceiveStream");
|
||||
RTC_DCHECK_RUN_ON(worker_thread_);
|
||||
RTC_DCHECK(receive_stream != nullptr);
|
||||
|
@ -1380,7 +1380,7 @@ void Call::UpdateAggregateNetworkState() {
|
|||
transport_send_->OnNetworkAvailability(aggregate_network_up);
|
||||
}
|
||||
|
||||
void Call::OnLocalSsrcUpdated(webrtc::AudioReceiveStream& stream,
|
||||
void Call::OnLocalSsrcUpdated(webrtc::AudioReceiveStreamInterface& stream,
|
||||
uint32_t local_ssrc) {
|
||||
RTC_DCHECK_RUN_ON(worker_thread_);
|
||||
webrtc::AudioReceiveStreamImpl& receive_stream =
|
||||
|
@ -1404,7 +1404,7 @@ void Call::OnLocalSsrcUpdated(FlexfecReceiveStream& stream,
|
|||
static_cast<FlexfecReceiveStreamImpl&>(stream).SetLocalSsrc(local_ssrc);
|
||||
}
|
||||
|
||||
void Call::OnUpdateSyncGroup(webrtc::AudioReceiveStream& stream,
|
||||
void Call::OnUpdateSyncGroup(webrtc::AudioReceiveStreamInterface& stream,
|
||||
absl::string_view sync_group) {
|
||||
RTC_DCHECK_RUN_ON(worker_thread_);
|
||||
webrtc::AudioReceiveStreamImpl& receive_stream =
|
||||
|
|
10
call/call.h
10
call/call.h
|
@ -105,10 +105,10 @@ class Call {
|
|||
|
||||
virtual void DestroyAudioSendStream(AudioSendStream* send_stream) = 0;
|
||||
|
||||
virtual AudioReceiveStream* CreateAudioReceiveStream(
|
||||
const AudioReceiveStream::Config& config) = 0;
|
||||
virtual AudioReceiveStreamInterface* CreateAudioReceiveStream(
|
||||
const AudioReceiveStreamInterface::Config& config) = 0;
|
||||
virtual void DestroyAudioReceiveStream(
|
||||
AudioReceiveStream* receive_stream) = 0;
|
||||
AudioReceiveStreamInterface* receive_stream) = 0;
|
||||
|
||||
virtual VideoSendStream* CreateVideoSendStream(
|
||||
VideoSendStream::Config config,
|
||||
|
@ -164,14 +164,14 @@ class Call {
|
|||
|
||||
// Called when a receive stream's local ssrc has changed and association with
|
||||
// send streams needs to be updated.
|
||||
virtual void OnLocalSsrcUpdated(AudioReceiveStream& stream,
|
||||
virtual void OnLocalSsrcUpdated(AudioReceiveStreamInterface& stream,
|
||||
uint32_t local_ssrc) = 0;
|
||||
virtual void OnLocalSsrcUpdated(VideoReceiveStreamInterface& stream,
|
||||
uint32_t local_ssrc) = 0;
|
||||
virtual void OnLocalSsrcUpdated(FlexfecReceiveStream& stream,
|
||||
uint32_t local_ssrc) = 0;
|
||||
|
||||
virtual void OnUpdateSyncGroup(AudioReceiveStream& stream,
|
||||
virtual void OnUpdateSyncGroup(AudioReceiveStreamInterface& stream,
|
||||
absl::string_view sync_group) = 0;
|
||||
|
||||
virtual void OnSentPacket(const rtc::SentPacket& sent_packet) = 0;
|
||||
|
|
|
@ -190,7 +190,7 @@ void CallPerfTest::TestAudioVideoSync(FecMode fec,
|
|||
std::unique_ptr<test::PacketTransport> receive_transport;
|
||||
|
||||
AudioSendStream* audio_send_stream;
|
||||
AudioReceiveStream* audio_receive_stream;
|
||||
AudioReceiveStreamInterface* audio_receive_stream;
|
||||
std::unique_ptr<DriftingClock> drifting_clock;
|
||||
|
||||
SendTask(RTC_FROM_HERE, task_queue(), [&]() {
|
||||
|
@ -273,7 +273,7 @@ void CallPerfTest::TestAudioVideoSync(FecMode fec,
|
|||
video_receive_configs_[0].renderer = observer.get();
|
||||
video_receive_configs_[0].sync_group = kSyncGroup;
|
||||
|
||||
AudioReceiveStream::Config audio_recv_config;
|
||||
AudioReceiveStreamInterface::Config audio_recv_config;
|
||||
audio_recv_config.rtp.remote_ssrc = kAudioSendSsrc;
|
||||
audio_recv_config.rtp.local_ssrc = kAudioRecvSsrc;
|
||||
audio_recv_config.rtcp_send_transport = receive_transport.get();
|
||||
|
@ -1021,9 +1021,9 @@ void CallPerfTest::TestMinAudioVideoBitrate(int test_bitrate_from,
|
|||
|
||||
size_t GetNumAudioStreams() const override { return 1; }
|
||||
|
||||
void ModifyAudioConfigs(
|
||||
AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStream::Config>* receive_configs) override {
|
||||
void ModifyAudioConfigs(AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStreamInterface::Config>*
|
||||
receive_configs) override {
|
||||
send_config->send_codec_spec->target_bitrate_bps =
|
||||
absl::optional<int>(kOpusBitrateFbBps);
|
||||
}
|
||||
|
|
|
@ -114,13 +114,14 @@ TEST(CallTest, CreateDestroy_AudioSendStream) {
|
|||
TEST(CallTest, CreateDestroy_AudioReceiveStream) {
|
||||
for (bool use_null_audio_processing : {false, true}) {
|
||||
CallHelper call(use_null_audio_processing);
|
||||
AudioReceiveStream::Config config;
|
||||
AudioReceiveStreamInterface::Config config;
|
||||
MockTransport rtcp_send_transport;
|
||||
config.rtp.remote_ssrc = 42;
|
||||
config.rtcp_send_transport = &rtcp_send_transport;
|
||||
config.decoder_factory =
|
||||
rtc::make_ref_counted<webrtc::MockAudioDecoderFactory>();
|
||||
AudioReceiveStream* stream = call->CreateAudioReceiveStream(config);
|
||||
AudioReceiveStreamInterface* stream =
|
||||
call->CreateAudioReceiveStream(config);
|
||||
EXPECT_NE(stream, nullptr);
|
||||
call->DestroyAudioReceiveStream(stream);
|
||||
}
|
||||
|
@ -154,16 +155,17 @@ TEST(CallTest, CreateDestroy_AudioSendStreams) {
|
|||
TEST(CallTest, CreateDestroy_AudioReceiveStreams) {
|
||||
for (bool use_null_audio_processing : {false, true}) {
|
||||
CallHelper call(use_null_audio_processing);
|
||||
AudioReceiveStream::Config config;
|
||||
AudioReceiveStreamInterface::Config config;
|
||||
MockTransport rtcp_send_transport;
|
||||
config.rtcp_send_transport = &rtcp_send_transport;
|
||||
config.decoder_factory =
|
||||
rtc::make_ref_counted<webrtc::MockAudioDecoderFactory>();
|
||||
std::list<AudioReceiveStream*> streams;
|
||||
std::list<AudioReceiveStreamInterface*> streams;
|
||||
for (int i = 0; i < 2; ++i) {
|
||||
for (uint32_t ssrc = 0; ssrc < 1234567; ssrc += 34567) {
|
||||
config.rtp.remote_ssrc = ssrc;
|
||||
AudioReceiveStream* stream = call->CreateAudioReceiveStream(config);
|
||||
AudioReceiveStreamInterface* stream =
|
||||
call->CreateAudioReceiveStream(config);
|
||||
EXPECT_NE(stream, nullptr);
|
||||
if (ssrc & 1) {
|
||||
streams.push_back(stream);
|
||||
|
@ -182,14 +184,14 @@ TEST(CallTest, CreateDestroy_AudioReceiveStreams) {
|
|||
TEST(CallTest, CreateDestroy_AssociateAudioSendReceiveStreams_RecvFirst) {
|
||||
for (bool use_null_audio_processing : {false, true}) {
|
||||
CallHelper call(use_null_audio_processing);
|
||||
AudioReceiveStream::Config recv_config;
|
||||
AudioReceiveStreamInterface::Config recv_config;
|
||||
MockTransport rtcp_send_transport;
|
||||
recv_config.rtp.remote_ssrc = 42;
|
||||
recv_config.rtp.local_ssrc = 777;
|
||||
recv_config.rtcp_send_transport = &rtcp_send_transport;
|
||||
recv_config.decoder_factory =
|
||||
rtc::make_ref_counted<webrtc::MockAudioDecoderFactory>();
|
||||
AudioReceiveStream* recv_stream =
|
||||
AudioReceiveStreamInterface* recv_stream =
|
||||
call->CreateAudioReceiveStream(recv_config);
|
||||
EXPECT_NE(recv_stream, nullptr);
|
||||
|
||||
|
@ -221,14 +223,14 @@ TEST(CallTest, CreateDestroy_AssociateAudioSendReceiveStreams_SendFirst) {
|
|||
AudioSendStream* send_stream = call->CreateAudioSendStream(send_config);
|
||||
EXPECT_NE(send_stream, nullptr);
|
||||
|
||||
AudioReceiveStream::Config recv_config;
|
||||
AudioReceiveStreamInterface::Config recv_config;
|
||||
MockTransport rtcp_send_transport;
|
||||
recv_config.rtp.remote_ssrc = 42;
|
||||
recv_config.rtp.local_ssrc = 777;
|
||||
recv_config.rtcp_send_transport = &rtcp_send_transport;
|
||||
recv_config.decoder_factory =
|
||||
rtc::make_ref_counted<webrtc::MockAudioDecoderFactory>();
|
||||
AudioReceiveStream* recv_stream =
|
||||
AudioReceiveStreamInterface* recv_stream =
|
||||
call->CreateAudioReceiveStream(recv_config);
|
||||
EXPECT_NE(recv_stream, nullptr);
|
||||
|
||||
|
|
|
@ -187,13 +187,13 @@ void DegradedCall::DestroyAudioSendStream(AudioSendStream* send_stream) {
|
|||
audio_send_transport_adapters_.erase(send_stream);
|
||||
}
|
||||
|
||||
AudioReceiveStream* DegradedCall::CreateAudioReceiveStream(
|
||||
const AudioReceiveStream::Config& config) {
|
||||
AudioReceiveStreamInterface* DegradedCall::CreateAudioReceiveStream(
|
||||
const AudioReceiveStreamInterface::Config& config) {
|
||||
return call_->CreateAudioReceiveStream(config);
|
||||
}
|
||||
|
||||
void DegradedCall::DestroyAudioReceiveStream(
|
||||
AudioReceiveStream* receive_stream) {
|
||||
AudioReceiveStreamInterface* receive_stream) {
|
||||
call_->DestroyAudioReceiveStream(receive_stream);
|
||||
}
|
||||
|
||||
|
@ -300,7 +300,7 @@ void DegradedCall::OnAudioTransportOverheadChanged(
|
|||
call_->OnAudioTransportOverheadChanged(transport_overhead_per_packet);
|
||||
}
|
||||
|
||||
void DegradedCall::OnLocalSsrcUpdated(AudioReceiveStream& stream,
|
||||
void DegradedCall::OnLocalSsrcUpdated(AudioReceiveStreamInterface& stream,
|
||||
uint32_t local_ssrc) {
|
||||
call_->OnLocalSsrcUpdated(stream, local_ssrc);
|
||||
}
|
||||
|
@ -315,7 +315,7 @@ void DegradedCall::OnLocalSsrcUpdated(FlexfecReceiveStream& stream,
|
|||
call_->OnLocalSsrcUpdated(stream, local_ssrc);
|
||||
}
|
||||
|
||||
void DegradedCall::OnUpdateSyncGroup(AudioReceiveStream& stream,
|
||||
void DegradedCall::OnUpdateSyncGroup(AudioReceiveStreamInterface& stream,
|
||||
absl::string_view sync_group) {
|
||||
call_->OnUpdateSyncGroup(stream, sync_group);
|
||||
}
|
||||
|
|
|
@ -61,9 +61,10 @@ class DegradedCall : public Call, private PacketReceiver {
|
|||
const AudioSendStream::Config& config) override;
|
||||
void DestroyAudioSendStream(AudioSendStream* send_stream) override;
|
||||
|
||||
AudioReceiveStream* CreateAudioReceiveStream(
|
||||
const AudioReceiveStream::Config& config) override;
|
||||
void DestroyAudioReceiveStream(AudioReceiveStream* receive_stream) override;
|
||||
AudioReceiveStreamInterface* CreateAudioReceiveStream(
|
||||
const AudioReceiveStreamInterface::Config& config) override;
|
||||
void DestroyAudioReceiveStream(
|
||||
AudioReceiveStreamInterface* receive_stream) override;
|
||||
|
||||
VideoSendStream* CreateVideoSendStream(
|
||||
VideoSendStream::Config config,
|
||||
|
@ -100,13 +101,13 @@ class DegradedCall : public Call, private PacketReceiver {
|
|||
void SignalChannelNetworkState(MediaType media, NetworkState state) override;
|
||||
void OnAudioTransportOverheadChanged(
|
||||
int transport_overhead_per_packet) override;
|
||||
void OnLocalSsrcUpdated(AudioReceiveStream& stream,
|
||||
void OnLocalSsrcUpdated(AudioReceiveStreamInterface& stream,
|
||||
uint32_t local_ssrc) override;
|
||||
void OnLocalSsrcUpdated(VideoReceiveStreamInterface& stream,
|
||||
uint32_t local_ssrc) override;
|
||||
void OnLocalSsrcUpdated(FlexfecReceiveStream& stream,
|
||||
uint32_t local_ssrc) override;
|
||||
void OnUpdateSyncGroup(AudioReceiveStream& stream,
|
||||
void OnUpdateSyncGroup(AudioReceiveStreamInterface& stream,
|
||||
absl::string_view sync_group) override;
|
||||
void OnSentPacket(const rtc::SentPacket& sent_packet) override;
|
||||
|
||||
|
|
|
@ -256,7 +256,7 @@ void RampUpTester::ModifyVideoConfigs(
|
|||
|
||||
void RampUpTester::ModifyAudioConfigs(
|
||||
AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStream::Config>* receive_configs) {
|
||||
std::vector<AudioReceiveStreamInterface::Config>* receive_configs) {
|
||||
if (num_audio_streams_ == 0)
|
||||
return;
|
||||
|
||||
|
@ -278,7 +278,7 @@ void RampUpTester::ModifyAudioConfigs(
|
|||
extension_type_.c_str(), kTransportSequenceNumberExtensionId));
|
||||
}
|
||||
|
||||
for (AudioReceiveStream::Config& recv_config : *receive_configs) {
|
||||
for (AudioReceiveStreamInterface::Config& recv_config : *receive_configs) {
|
||||
recv_config.rtp.transport_cc = transport_cc;
|
||||
recv_config.rtp.extensions = send_config->rtp.extensions;
|
||||
recv_config.rtp.remote_ssrc = send_config->rtp.ssrc;
|
||||
|
|
|
@ -100,9 +100,9 @@ class RampUpTester : public test::EndToEndTest {
|
|||
VideoSendStream::Config* send_config,
|
||||
std::vector<VideoReceiveStreamInterface::Config>* receive_configs,
|
||||
VideoEncoderConfig* encoder_config) override;
|
||||
void ModifyAudioConfigs(
|
||||
AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStream::Config>* receive_configs) override;
|
||||
void ModifyAudioConfigs(AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStreamInterface::Config>*
|
||||
receive_configs) override;
|
||||
void ModifyFlexfecConfigs(
|
||||
std::vector<FlexfecReceiveStream::Config>* receive_configs) override;
|
||||
void OnCallsCreated(Call* sender_call, Call* receiver_call) override;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
*/
|
||||
|
||||
// Syncable is used by RtpStreamsSynchronizer in VideoReceiveStreamInterface,
|
||||
// and implemented by AudioReceiveStream.
|
||||
// and implemented by AudioReceiveStreamInterface.
|
||||
|
||||
#ifndef CALL_SYNCABLE_H_
|
||||
#define CALL_SYNCABLE_H_
|
||||
|
|
|
@ -74,16 +74,16 @@ webrtc::AudioSendStream::Stats FakeAudioSendStream::GetStats(
|
|||
|
||||
FakeAudioReceiveStream::FakeAudioReceiveStream(
|
||||
int id,
|
||||
const webrtc::AudioReceiveStream::Config& config)
|
||||
const webrtc::AudioReceiveStreamInterface::Config& config)
|
||||
: id_(id), config_(config) {}
|
||||
|
||||
const webrtc::AudioReceiveStream::Config& FakeAudioReceiveStream::GetConfig()
|
||||
const {
|
||||
const webrtc::AudioReceiveStreamInterface::Config&
|
||||
FakeAudioReceiveStream::GetConfig() const {
|
||||
return config_;
|
||||
}
|
||||
|
||||
void FakeAudioReceiveStream::SetStats(
|
||||
const webrtc::AudioReceiveStream::Stats& stats) {
|
||||
const webrtc::AudioReceiveStreamInterface::Stats& stats) {
|
||||
stats_ = stats;
|
||||
}
|
||||
|
||||
|
@ -141,7 +141,7 @@ webrtc::RtpHeaderExtensionMap FakeAudioReceiveStream::GetRtpExtensionMap()
|
|||
return webrtc::RtpHeaderExtensionMap(config_.rtp.extensions);
|
||||
}
|
||||
|
||||
webrtc::AudioReceiveStream::Stats FakeAudioReceiveStream::GetStats(
|
||||
webrtc::AudioReceiveStreamInterface::Stats FakeAudioReceiveStream::GetStats(
|
||||
bool get_and_clear_legacy_stats) const {
|
||||
return stats_;
|
||||
}
|
||||
|
@ -543,8 +543,8 @@ void FakeCall::DestroyAudioSendStream(webrtc::AudioSendStream* send_stream) {
|
|||
}
|
||||
}
|
||||
|
||||
webrtc::AudioReceiveStream* FakeCall::CreateAudioReceiveStream(
|
||||
const webrtc::AudioReceiveStream::Config& config) {
|
||||
webrtc::AudioReceiveStreamInterface* FakeCall::CreateAudioReceiveStream(
|
||||
const webrtc::AudioReceiveStreamInterface::Config& config) {
|
||||
audio_receive_streams_.push_back(
|
||||
new FakeAudioReceiveStream(next_stream_id_++, config));
|
||||
++num_created_receive_streams_;
|
||||
|
@ -552,7 +552,7 @@ webrtc::AudioReceiveStream* FakeCall::CreateAudioReceiveStream(
|
|||
}
|
||||
|
||||
void FakeCall::DestroyAudioReceiveStream(
|
||||
webrtc::AudioReceiveStream* receive_stream) {
|
||||
webrtc::AudioReceiveStreamInterface* receive_stream) {
|
||||
auto it = absl::c_find(audio_receive_streams_,
|
||||
static_cast<FakeAudioReceiveStream*>(receive_stream));
|
||||
if (it == audio_receive_streams_.end()) {
|
||||
|
@ -709,7 +709,7 @@ void FakeCall::SignalChannelNetworkState(webrtc::MediaType media,
|
|||
void FakeCall::OnAudioTransportOverheadChanged(
|
||||
int transport_overhead_per_packet) {}
|
||||
|
||||
void FakeCall::OnLocalSsrcUpdated(webrtc::AudioReceiveStream& stream,
|
||||
void FakeCall::OnLocalSsrcUpdated(webrtc::AudioReceiveStreamInterface& stream,
|
||||
uint32_t local_ssrc) {
|
||||
auto& fake_stream = static_cast<FakeAudioReceiveStream&>(stream);
|
||||
fake_stream.SetLocalSsrc(local_ssrc);
|
||||
|
@ -727,7 +727,7 @@ void FakeCall::OnLocalSsrcUpdated(webrtc::FlexfecReceiveStream& stream,
|
|||
fake_stream.SetLocalSsrc(local_ssrc);
|
||||
}
|
||||
|
||||
void FakeCall::OnUpdateSyncGroup(webrtc::AudioReceiveStream& stream,
|
||||
void FakeCall::OnUpdateSyncGroup(webrtc::AudioReceiveStreamInterface& stream,
|
||||
absl::string_view sync_group) {
|
||||
auto& fake_stream = static_cast<FakeAudioReceiveStream&>(stream);
|
||||
fake_stream.SetSyncGroup(sync_group);
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
//
|
||||
// webrtc::Call
|
||||
// webrtc::AudioSendStream
|
||||
// webrtc::AudioReceiveStream
|
||||
// webrtc::AudioReceiveStreamInterface
|
||||
// webrtc::VideoSendStream
|
||||
// webrtc::VideoReceiveStreamInterface
|
||||
|
||||
|
@ -83,15 +83,16 @@ class FakeAudioSendStream final : public webrtc::AudioSendStream {
|
|||
bool muted_ = false;
|
||||
};
|
||||
|
||||
class FakeAudioReceiveStream final : public webrtc::AudioReceiveStream {
|
||||
class FakeAudioReceiveStream final
|
||||
: public webrtc::AudioReceiveStreamInterface {
|
||||
public:
|
||||
explicit FakeAudioReceiveStream(
|
||||
int id,
|
||||
const webrtc::AudioReceiveStream::Config& config);
|
||||
const webrtc::AudioReceiveStreamInterface::Config& config);
|
||||
|
||||
int id() const { return id_; }
|
||||
const webrtc::AudioReceiveStream::Config& GetConfig() const;
|
||||
void SetStats(const webrtc::AudioReceiveStream::Stats& stats);
|
||||
const webrtc::AudioReceiveStreamInterface::Config& GetConfig() const;
|
||||
void SetStats(const webrtc::AudioReceiveStreamInterface::Stats& stats);
|
||||
int received_packets() const { return received_packets_; }
|
||||
bool VerifyLastPacket(const uint8_t* data, size_t length) const;
|
||||
const webrtc::AudioSinkInterface* sink() const { return sink_; }
|
||||
|
@ -130,7 +131,7 @@ class FakeAudioReceiveStream final : public webrtc::AudioReceiveStream {
|
|||
const std::vector<webrtc::RtpExtension>& GetRtpExtensions() const override;
|
||||
webrtc::RtpHeaderExtensionMap GetRtpExtensionMap() const override;
|
||||
|
||||
webrtc::AudioReceiveStream::Stats GetStats(
|
||||
webrtc::AudioReceiveStreamInterface::Stats GetStats(
|
||||
bool get_and_clear_legacy_stats) const override;
|
||||
void SetSink(webrtc::AudioSinkInterface* sink) override;
|
||||
void SetGain(float gain) override;
|
||||
|
@ -146,8 +147,8 @@ class FakeAudioReceiveStream final : public webrtc::AudioReceiveStream {
|
|||
}
|
||||
|
||||
int id_ = -1;
|
||||
webrtc::AudioReceiveStream::Config config_;
|
||||
webrtc::AudioReceiveStream::Stats stats_;
|
||||
webrtc::AudioReceiveStreamInterface::Config config_;
|
||||
webrtc::AudioReceiveStreamInterface::Stats stats_;
|
||||
int received_packets_ = 0;
|
||||
webrtc::AudioSinkInterface* sink_ = nullptr;
|
||||
float gain_ = 1.0f;
|
||||
|
@ -377,10 +378,10 @@ class FakeCall final : public webrtc::Call, public webrtc::PacketReceiver {
|
|||
const webrtc::AudioSendStream::Config& config) override;
|
||||
void DestroyAudioSendStream(webrtc::AudioSendStream* send_stream) override;
|
||||
|
||||
webrtc::AudioReceiveStream* CreateAudioReceiveStream(
|
||||
const webrtc::AudioReceiveStream::Config& config) override;
|
||||
webrtc::AudioReceiveStreamInterface* CreateAudioReceiveStream(
|
||||
const webrtc::AudioReceiveStreamInterface::Config& config) override;
|
||||
void DestroyAudioReceiveStream(
|
||||
webrtc::AudioReceiveStream* receive_stream) override;
|
||||
webrtc::AudioReceiveStreamInterface* receive_stream) override;
|
||||
|
||||
webrtc::VideoSendStream* CreateVideoSendStream(
|
||||
webrtc::VideoSendStream::Config config,
|
||||
|
@ -420,13 +421,13 @@ class FakeCall final : public webrtc::Call, public webrtc::PacketReceiver {
|
|||
webrtc::NetworkState state) override;
|
||||
void OnAudioTransportOverheadChanged(
|
||||
int transport_overhead_per_packet) override;
|
||||
void OnLocalSsrcUpdated(webrtc::AudioReceiveStream& stream,
|
||||
void OnLocalSsrcUpdated(webrtc::AudioReceiveStreamInterface& stream,
|
||||
uint32_t local_ssrc) override;
|
||||
void OnLocalSsrcUpdated(webrtc::VideoReceiveStreamInterface& stream,
|
||||
uint32_t local_ssrc) override;
|
||||
void OnLocalSsrcUpdated(webrtc::FlexfecReceiveStream& stream,
|
||||
uint32_t local_ssrc) override;
|
||||
void OnUpdateSyncGroup(webrtc::AudioReceiveStream& stream,
|
||||
void OnUpdateSyncGroup(webrtc::AudioReceiveStreamInterface& stream,
|
||||
absl::string_view sync_group) override;
|
||||
void OnSentPacket(const rtc::SentPacket& sent_packet) override;
|
||||
|
||||
|
|
|
@ -245,7 +245,7 @@ struct AdaptivePtimeConfig {
|
|||
|
||||
// TODO(tommi): Constructing a receive stream could be made simpler.
|
||||
// Move some of this boiler plate code into the config structs themselves.
|
||||
webrtc::AudioReceiveStream::Config BuildReceiveStreamConfig(
|
||||
webrtc::AudioReceiveStreamInterface::Config BuildReceiveStreamConfig(
|
||||
uint32_t remote_ssrc,
|
||||
uint32_t local_ssrc,
|
||||
bool use_transport_cc,
|
||||
|
@ -263,7 +263,7 @@ webrtc::AudioReceiveStream::Config BuildReceiveStreamConfig(
|
|||
rtc::scoped_refptr<webrtc::FrameDecryptorInterface> frame_decryptor,
|
||||
const webrtc::CryptoOptions& crypto_options,
|
||||
rtc::scoped_refptr<webrtc::FrameTransformerInterface> frame_transformer) {
|
||||
webrtc::AudioReceiveStream::Config config;
|
||||
webrtc::AudioReceiveStreamInterface::Config config;
|
||||
config.rtp.remote_ssrc = remote_ssrc;
|
||||
config.rtp.local_ssrc = local_ssrc;
|
||||
config.rtp.transport_cc = use_transport_cc;
|
||||
|
@ -1151,7 +1151,7 @@ class WebRtcVoiceMediaChannel::WebRtcAudioSendStream
|
|||
|
||||
class WebRtcVoiceMediaChannel::WebRtcAudioReceiveStream {
|
||||
public:
|
||||
WebRtcAudioReceiveStream(webrtc::AudioReceiveStream::Config config,
|
||||
WebRtcAudioReceiveStream(webrtc::AudioReceiveStreamInterface::Config config,
|
||||
webrtc::Call* call)
|
||||
: call_(call), stream_(call_->CreateAudioReceiveStream(config)) {
|
||||
RTC_DCHECK(call);
|
||||
|
@ -1167,7 +1167,7 @@ class WebRtcVoiceMediaChannel::WebRtcAudioReceiveStream {
|
|||
call_->DestroyAudioReceiveStream(stream_);
|
||||
}
|
||||
|
||||
webrtc::AudioReceiveStream& stream() {
|
||||
webrtc::AudioReceiveStreamInterface& stream() {
|
||||
RTC_DCHECK(stream_);
|
||||
return *stream_;
|
||||
}
|
||||
|
@ -1200,7 +1200,7 @@ class WebRtcVoiceMediaChannel::WebRtcAudioReceiveStream {
|
|||
stream_->SetDecoderMap(decoder_map);
|
||||
}
|
||||
|
||||
webrtc::AudioReceiveStream::Stats GetStats(
|
||||
webrtc::AudioReceiveStreamInterface::Stats GetStats(
|
||||
bool get_and_clear_legacy_stats) const {
|
||||
RTC_DCHECK_RUN_ON(&worker_thread_checker_);
|
||||
return stream_->GetStats(get_and_clear_legacy_stats);
|
||||
|
@ -1234,7 +1234,7 @@ class WebRtcVoiceMediaChannel::WebRtcAudioReceiveStream {
|
|||
return true;
|
||||
|
||||
RTC_LOG(LS_ERROR) << "Failed to SetBaseMinimumPlayoutDelayMs"
|
||||
" on AudioReceiveStream on SSRC="
|
||||
" on AudioReceiveStreamInterface on SSRC="
|
||||
<< stream_->remote_ssrc()
|
||||
<< " with delay_ms=" << delay_ms;
|
||||
return false;
|
||||
|
@ -1267,7 +1267,7 @@ class WebRtcVoiceMediaChannel::WebRtcAudioReceiveStream {
|
|||
private:
|
||||
webrtc::SequenceChecker worker_thread_checker_;
|
||||
webrtc::Call* call_ = nullptr;
|
||||
webrtc::AudioReceiveStream* const stream_ = nullptr;
|
||||
webrtc::AudioReceiveStreamInterface* const stream_ = nullptr;
|
||||
std::unique_ptr<webrtc::AudioSinkInterface> raw_audio_sink_
|
||||
RTC_GUARDED_BY(worker_thread_checker_);
|
||||
};
|
||||
|
@ -2341,7 +2341,7 @@ bool WebRtcVoiceMediaChannel::GetStats(VoiceMediaInfo* info,
|
|||
continue;
|
||||
}
|
||||
}
|
||||
webrtc::AudioReceiveStream::Stats stats =
|
||||
webrtc::AudioReceiveStreamInterface::Stats stats =
|
||||
stream.second->GetStats(get_and_clear_legacy_stats);
|
||||
VoiceReceiverInfo rinfo;
|
||||
rinfo.add_ssrc(stats.remote_ssrc);
|
||||
|
|
|
@ -294,7 +294,8 @@ class WebRtcVoiceEngineTestFake : public ::testing::TestWithParam<bool> {
|
|||
return GetSendStream(ssrc).GetConfig();
|
||||
}
|
||||
|
||||
const webrtc::AudioReceiveStream::Config& GetRecvStreamConfig(uint32_t ssrc) {
|
||||
const webrtc::AudioReceiveStreamInterface::Config& GetRecvStreamConfig(
|
||||
uint32_t ssrc) {
|
||||
return GetRecvStream(ssrc).GetConfig();
|
||||
}
|
||||
|
||||
|
@ -656,8 +657,9 @@ class WebRtcVoiceEngineTestFake : public ::testing::TestWithParam<bool> {
|
|||
stats.ana_statistics.uplink_packet_loss_fraction);
|
||||
}
|
||||
|
||||
webrtc::AudioReceiveStream::Stats GetAudioReceiveStreamStats() const {
|
||||
webrtc::AudioReceiveStream::Stats stats;
|
||||
webrtc::AudioReceiveStreamInterface::Stats GetAudioReceiveStreamStats()
|
||||
const {
|
||||
webrtc::AudioReceiveStreamInterface::Stats stats;
|
||||
stats.remote_ssrc = 123;
|
||||
stats.payload_bytes_rcvd = 456;
|
||||
stats.header_and_padding_bytes_rcvd = 67;
|
||||
|
@ -824,7 +826,7 @@ TEST_P(WebRtcVoiceEngineTestFake, CreateSendStream) {
|
|||
TEST_P(WebRtcVoiceEngineTestFake, CreateRecvStream) {
|
||||
EXPECT_TRUE(SetupChannel());
|
||||
EXPECT_TRUE(AddRecvStream(kSsrcX));
|
||||
const webrtc::AudioReceiveStream::Config& config =
|
||||
const webrtc::AudioReceiveStreamInterface::Config& config =
|
||||
GetRecvStreamConfig(kSsrcX);
|
||||
EXPECT_EQ(kSsrcX, config.rtp.remote_ssrc);
|
||||
EXPECT_EQ(0xFA17FA17, config.rtp.local_ssrc);
|
||||
|
@ -3578,7 +3580,8 @@ TEST_P(WebRtcVoiceEngineTestFake, PreservePlayoutWhenRecreateRecvStream) {
|
|||
channel_->SetPlayout(true);
|
||||
EXPECT_TRUE(GetRecvStream(kSsrcX).started());
|
||||
|
||||
// Changing RTP header extensions will recreate the AudioReceiveStream.
|
||||
// Changing RTP header extensions will recreate the
|
||||
// AudioReceiveStreamInterface.
|
||||
cricket::AudioRecvParameters parameters;
|
||||
parameters.extensions.push_back(
|
||||
webrtc::RtpExtension(webrtc::RtpExtension::kAudioLevelUri, 12));
|
||||
|
|
|
@ -420,12 +420,12 @@ void CallTest::CreateMatchingAudioConfigs(Transport* transport,
|
|||
audio_send_config_, audio_decoder_factory_, transport, sync_group));
|
||||
}
|
||||
|
||||
AudioReceiveStream::Config CallTest::CreateMatchingAudioConfig(
|
||||
AudioReceiveStreamInterface::Config CallTest::CreateMatchingAudioConfig(
|
||||
const AudioSendStream::Config& send_config,
|
||||
rtc::scoped_refptr<AudioDecoderFactory> audio_decoder_factory,
|
||||
Transport* transport,
|
||||
std::string sync_group) {
|
||||
AudioReceiveStream::Config audio_config;
|
||||
AudioReceiveStreamInterface::Config audio_config;
|
||||
audio_config.rtp.local_ssrc = kReceiverLocalAudioSsrc;
|
||||
audio_config.rtcp_send_transport = transport;
|
||||
audio_config.rtp.remote_ssrc = send_config.rtp.ssrc;
|
||||
|
@ -586,7 +586,7 @@ void CallTest::Start() {
|
|||
if (audio_send_stream_) {
|
||||
audio_send_stream_->Start();
|
||||
}
|
||||
for (AudioReceiveStream* audio_recv_stream : audio_receive_streams_)
|
||||
for (AudioReceiveStreamInterface* audio_recv_stream : audio_receive_streams_)
|
||||
audio_recv_stream->Start();
|
||||
}
|
||||
|
||||
|
@ -598,7 +598,7 @@ void CallTest::StartVideoStreams() {
|
|||
}
|
||||
|
||||
void CallTest::Stop() {
|
||||
for (AudioReceiveStream* audio_recv_stream : audio_receive_streams_)
|
||||
for (AudioReceiveStreamInterface* audio_recv_stream : audio_receive_streams_)
|
||||
audio_recv_stream->Stop();
|
||||
if (audio_send_stream_) {
|
||||
audio_send_stream_->Stop();
|
||||
|
@ -617,7 +617,7 @@ void CallTest::DestroyStreams() {
|
|||
if (audio_send_stream_)
|
||||
sender_call_->DestroyAudioSendStream(audio_send_stream_);
|
||||
audio_send_stream_ = nullptr;
|
||||
for (AudioReceiveStream* audio_recv_stream : audio_receive_streams_)
|
||||
for (AudioReceiveStreamInterface* audio_recv_stream : audio_receive_streams_)
|
||||
receiver_call_->DestroyAudioReceiveStream(audio_recv_stream);
|
||||
|
||||
DestroyVideoSendStreams();
|
||||
|
@ -798,11 +798,11 @@ void BaseTest::OnVideoStreamsCreated(
|
|||
|
||||
void BaseTest::ModifyAudioConfigs(
|
||||
AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStream::Config>* receive_configs) {}
|
||||
std::vector<AudioReceiveStreamInterface::Config>* receive_configs) {}
|
||||
|
||||
void BaseTest::OnAudioStreamsCreated(
|
||||
AudioSendStream* send_stream,
|
||||
const std::vector<AudioReceiveStream*>& receive_streams) {}
|
||||
const std::vector<AudioReceiveStreamInterface*>& receive_streams) {}
|
||||
|
||||
void BaseTest::ModifyFlexfecConfigs(
|
||||
std::vector<FlexfecReceiveStream::Config>* receive_configs) {}
|
||||
|
|
|
@ -129,7 +129,7 @@ class CallTest : public ::testing::Test, public RtpPacketSinkInterface {
|
|||
|
||||
void CreateMatchingAudioAndFecConfigs(Transport* rtcp_send_transport);
|
||||
void CreateMatchingAudioConfigs(Transport* transport, std::string sync_group);
|
||||
static AudioReceiveStream::Config CreateMatchingAudioConfig(
|
||||
static AudioReceiveStreamInterface::Config CreateMatchingAudioConfig(
|
||||
const AudioSendStream::Config& send_config,
|
||||
rtc::scoped_refptr<AudioDecoderFactory> audio_decoder_factory,
|
||||
Transport* transport,
|
||||
|
@ -198,8 +198,8 @@ class CallTest : public ::testing::Test, public RtpPacketSinkInterface {
|
|||
std::unique_ptr<PacketTransport> receive_transport_;
|
||||
std::vector<VideoReceiveStreamInterface::Config> video_receive_configs_;
|
||||
std::vector<VideoReceiveStreamInterface*> video_receive_streams_;
|
||||
std::vector<AudioReceiveStream::Config> audio_receive_configs_;
|
||||
std::vector<AudioReceiveStream*> audio_receive_streams_;
|
||||
std::vector<AudioReceiveStreamInterface::Config> audio_receive_configs_;
|
||||
std::vector<AudioReceiveStreamInterface*> audio_receive_streams_;
|
||||
std::vector<FlexfecReceiveStream::Config> flexfec_receive_configs_;
|
||||
std::vector<FlexfecReceiveStream*> flexfec_receive_streams_;
|
||||
|
||||
|
@ -289,10 +289,10 @@ class BaseTest : public RtpRtcpObserver {
|
|||
|
||||
virtual void ModifyAudioConfigs(
|
||||
AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStream::Config>* receive_configs);
|
||||
std::vector<AudioReceiveStreamInterface::Config>* receive_configs);
|
||||
virtual void OnAudioStreamsCreated(
|
||||
AudioSendStream* send_stream,
|
||||
const std::vector<AudioReceiveStream*>& receive_streams);
|
||||
const std::vector<AudioReceiveStreamInterface*>& receive_streams);
|
||||
|
||||
virtual void ModifyFlexfecConfigs(
|
||||
std::vector<FlexfecReceiveStream::Config>* receive_configs);
|
||||
|
|
|
@ -175,7 +175,7 @@ ReceiveAudioStream::ReceiveAudioStream(
|
|||
rtc::scoped_refptr<AudioDecoderFactory> decoder_factory,
|
||||
Transport* feedback_transport)
|
||||
: receiver_(receiver), config_(config) {
|
||||
AudioReceiveStream::Config recv_config;
|
||||
AudioReceiveStreamInterface::Config recv_config;
|
||||
recv_config.rtp.local_ssrc = receiver_->GetNextAudioLocalSsrc();
|
||||
recv_config.rtcp_send_transport = feedback_transport;
|
||||
recv_config.rtp.remote_ssrc = send_stream->ssrc_;
|
||||
|
@ -209,8 +209,8 @@ void ReceiveAudioStream::Stop() {
|
|||
receiver_->SendTask([&] { receive_stream_->Stop(); });
|
||||
}
|
||||
|
||||
AudioReceiveStream::Stats ReceiveAudioStream::GetStats() const {
|
||||
AudioReceiveStream::Stats result;
|
||||
AudioReceiveStreamInterface::Stats ReceiveAudioStream::GetStats() const {
|
||||
AudioReceiveStreamInterface::Stats result;
|
||||
receiver_->SendTask([&] {
|
||||
result = receive_stream_->GetStats(/*get_and_clear_legacy_stats=*/true);
|
||||
});
|
||||
|
|
|
@ -59,7 +59,7 @@ class ReceiveAudioStream {
|
|||
|
||||
void Start();
|
||||
void Stop();
|
||||
AudioReceiveStream::Stats GetStats() const;
|
||||
AudioReceiveStreamInterface::Stats GetStats() const;
|
||||
|
||||
private:
|
||||
friend class Scenario;
|
||||
|
@ -69,7 +69,7 @@ class ReceiveAudioStream {
|
|||
SendAudioStream* send_stream,
|
||||
rtc::scoped_refptr<AudioDecoderFactory> decoder_factory,
|
||||
Transport* feedback_transport);
|
||||
AudioReceiveStream* receive_stream_ = nullptr;
|
||||
AudioReceiveStreamInterface* receive_stream_ = nullptr;
|
||||
CallClient* const receiver_;
|
||||
const AudioStreamConfig config_;
|
||||
};
|
||||
|
|
|
@ -142,7 +142,8 @@ void CallStatsCollector::AddStats(Call::Stats sample) {
|
|||
stats_.memory_usage.AddSample(rtc::GetProcessResidentSizeBytes());
|
||||
}
|
||||
|
||||
void AudioReceiveStatsCollector::AddStats(AudioReceiveStream::Stats sample) {
|
||||
void AudioReceiveStatsCollector::AddStats(
|
||||
AudioReceiveStreamInterface::Stats sample) {
|
||||
stats_.expand_rate.AddSample(sample.expand_rate);
|
||||
stats_.accelerate_rate.AddSample(sample.accelerate_rate);
|
||||
stats_.jitter_buffer.AddSampleMs(sample.jitter_buffer_ms);
|
||||
|
|
|
@ -72,7 +72,7 @@ class CallStatsCollector {
|
|||
};
|
||||
class AudioReceiveStatsCollector {
|
||||
public:
|
||||
void AddStats(AudioReceiveStream::Stats sample);
|
||||
void AddStats(AudioReceiveStreamInterface::Stats sample);
|
||||
CollectedAudioReceiveStats& stats() { return stats_; }
|
||||
|
||||
private:
|
||||
|
|
|
@ -38,7 +38,7 @@ void CreateAnalyzedStream(Scenario* s,
|
|||
caller->SendTask([&]() { send_stats = video->send()->GetStats(); });
|
||||
collectors->video_send.AddStats(send_stats, s->Now());
|
||||
|
||||
AudioReceiveStream::Stats receive_stats;
|
||||
AudioReceiveStreamInterface::Stats receive_stats;
|
||||
caller->SendTask([&]() { receive_stats = audio->receive()->GetStats(); });
|
||||
collectors->audio_receive.AddStats(receive_stats);
|
||||
|
||||
|
|
|
@ -179,9 +179,9 @@ TEST_F(RetransmissionEndToEndTest, ReceivesNackAndRetransmitsAudio) {
|
|||
return SEND_PACKET;
|
||||
}
|
||||
|
||||
void ModifyAudioConfigs(
|
||||
AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStream::Config>* receive_configs) override {
|
||||
void ModifyAudioConfigs(AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStreamInterface::Config>*
|
||||
receive_configs) override {
|
||||
(*receive_configs)[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
|
||||
local_ssrc_ = (*receive_configs)[0].rtp.local_ssrc;
|
||||
remote_ssrc_ = (*receive_configs)[0].rtp.remote_ssrc;
|
||||
|
|
|
@ -297,9 +297,9 @@ class TransportFeedbackTester : public test::EndToEndTest {
|
|||
(*receive_configs)[0].rtp.transport_cc = feedback_enabled_;
|
||||
}
|
||||
|
||||
void ModifyAudioConfigs(
|
||||
AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStream::Config>* receive_configs) override {
|
||||
void ModifyAudioConfigs(AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStreamInterface::Config>*
|
||||
receive_configs) override {
|
||||
send_config->rtp.extensions.clear();
|
||||
send_config->rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kTransportSequenceNumberUri,
|
||||
|
@ -448,9 +448,9 @@ TEST_F(TransportFeedbackEndToEndTest, TransportSeqNumOnAudioAndVideo) {
|
|||
size_t GetNumVideoStreams() const override { return 1; }
|
||||
size_t GetNumAudioStreams() const override { return 1; }
|
||||
|
||||
void ModifyAudioConfigs(
|
||||
AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStream::Config>* receive_configs) override {
|
||||
void ModifyAudioConfigs(AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStreamInterface::Config>*
|
||||
receive_configs) override {
|
||||
send_config->rtp.extensions.clear();
|
||||
send_config->rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kTransportSequenceNumberUri,
|
||||
|
|
|
@ -194,7 +194,8 @@ void VideoAnalyzer::SetReceiveStream(VideoReceiveStreamInterface* stream) {
|
|||
receive_stream_ = stream;
|
||||
}
|
||||
|
||||
void VideoAnalyzer::SetAudioReceiveStream(AudioReceiveStream* recv_stream) {
|
||||
void VideoAnalyzer::SetAudioReceiveStream(
|
||||
AudioReceiveStreamInterface* recv_stream) {
|
||||
MutexLock lock(&lock_);
|
||||
RTC_CHECK(!audio_receive_stream_);
|
||||
audio_receive_stream_ = recv_stream;
|
||||
|
@ -526,7 +527,7 @@ void VideoAnalyzer::PollStats() {
|
|||
}
|
||||
|
||||
if (audio_receive_stream_ != nullptr) {
|
||||
AudioReceiveStream::Stats receive_stats =
|
||||
AudioReceiveStreamInterface::Stats receive_stats =
|
||||
audio_receive_stream_->GetStats(/*get_and_clear_legacy_stats=*/true);
|
||||
audio_expand_rate_.AddSample(receive_stats.expand_rate);
|
||||
audio_accelerate_rate_.AddSample(receive_stats.accelerate_rate);
|
||||
|
|
|
@ -62,7 +62,7 @@ class VideoAnalyzer : public PacketReceiver,
|
|||
void SetCall(Call* call);
|
||||
void SetSendStream(VideoSendStream* stream);
|
||||
void SetReceiveStream(VideoReceiveStreamInterface* stream);
|
||||
void SetAudioReceiveStream(AudioReceiveStream* recv_stream);
|
||||
void SetAudioReceiveStream(AudioReceiveStreamInterface* recv_stream);
|
||||
|
||||
rtc::VideoSinkInterface<VideoFrame>* InputInterface();
|
||||
rtc::VideoSourceInterface<VideoFrame>* OutputInterface();
|
||||
|
@ -222,7 +222,7 @@ class VideoAnalyzer : public PacketReceiver,
|
|||
Call* call_;
|
||||
VideoSendStream* send_stream_;
|
||||
VideoReceiveStreamInterface* receive_stream_;
|
||||
AudioReceiveStream* audio_receive_stream_;
|
||||
AudioReceiveStreamInterface* audio_receive_stream_;
|
||||
CapturedFrameForwarder captured_frame_forwarder_;
|
||||
const std::string test_label_;
|
||||
FILE* const graph_data_output_file_;
|
||||
|
|
|
@ -1145,7 +1145,7 @@ void VideoQualityTest::CreateCapturers() {
|
|||
|
||||
void VideoQualityTest::StartAudioStreams() {
|
||||
audio_send_stream_->Start();
|
||||
for (AudioReceiveStream* audio_recv_stream : audio_receive_streams_)
|
||||
for (AudioReceiveStreamInterface* audio_recv_stream : audio_receive_streams_)
|
||||
audio_recv_stream->Start();
|
||||
}
|
||||
|
||||
|
|
|
@ -1605,9 +1605,9 @@ TEST_F(VideoSendStreamTest, ChangingNetworkRoute) {
|
|||
(*receive_configs)[0].rtp.transport_cc = true;
|
||||
}
|
||||
|
||||
void ModifyAudioConfigs(
|
||||
AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStream::Config>* receive_configs) override {
|
||||
void ModifyAudioConfigs(AudioSendStream::Config* send_config,
|
||||
std::vector<AudioReceiveStreamInterface::Config>*
|
||||
receive_configs) override {
|
||||
RTC_DCHECK_RUN_ON(&task_queue_thread_);
|
||||
send_config->rtp.extensions.clear();
|
||||
send_config->rtp.extensions.push_back(RtpExtension(
|
||||
|
|
Loading…
Reference in a new issue