Pass a real audio codec pair ID to encoders that we create
Bug: webrtc:8941
Change-Id: I0c0cb547e8424dd80b93e240bd0d40a9269bd1fc
Reviewed-on: https://webrtc-review.googlesource.com/63263
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22546}diff --git a/audio/audio_send_stream.cc b/audio/audio_send_stream.cc
index 8ff34ed..71a4319 100644
--- a/audio/audio_send_stream.cc
+++ b/audio/audio_send_stream.cc
@@ -497,8 +497,8 @@
RTC_DCHECK(new_config.encoder_factory);
std::unique_ptr<AudioEncoder> encoder =
- new_config.encoder_factory->MakeAudioEncoder(spec.payload_type,
- spec.format, rtc::nullopt);
+ new_config.encoder_factory->MakeAudioEncoder(
+ spec.payload_type, spec.format, new_config.codec_pair_id);
if (!encoder) {
RTC_DLOG(LS_ERROR) << "Unable to create encoder for " << spec.format;
diff --git a/call/audio_send_stream.h b/call/audio_send_stream.h
index 908da11..f84c6cb 100644
--- a/call/audio_send_stream.h
+++ b/call/audio_send_stream.h
@@ -15,6 +15,7 @@
#include <string>
#include <vector>
+#include "api/audio_codecs/audio_codec_pair_id.h"
#include "api/audio_codecs/audio_encoder.h"
#include "api/audio_codecs/audio_encoder_factory.h"
#include "api/audio_codecs/audio_format.h"
@@ -120,6 +121,7 @@
rtc::Optional<SendCodecSpec> send_codec_spec;
rtc::scoped_refptr<AudioEncoderFactory> encoder_factory;
+ rtc::Optional<AudioCodecPairId> codec_pair_id;
// Track ID as specified during track creation.
std::string track_id;
diff --git a/media/engine/webrtcvoiceengine.cc b/media/engine/webrtcvoiceengine.cc
index 809ea54..04f2997 100644
--- a/media/engine/webrtcvoiceengine.cc
+++ b/media/engine/webrtcvoiceengine.cc
@@ -751,7 +751,8 @@
const rtc::Optional<std::string>& audio_network_adaptor_config,
webrtc::Call* call,
webrtc::Transport* send_transport,
- const rtc::scoped_refptr<webrtc::AudioEncoderFactory>& encoder_factory)
+ const rtc::scoped_refptr<webrtc::AudioEncoderFactory>& encoder_factory,
+ const rtc::Optional<webrtc::AudioCodecPairId> codec_pair_id)
: call_(call),
config_(send_transport),
send_side_bwe_with_overhead_(
@@ -765,6 +766,7 @@
config_.rtp.extensions = extensions;
config_.audio_network_adaptor_config = audio_network_adaptor_config;
config_.encoder_factory = encoder_factory;
+ config_.codec_pair_id = codec_pair_id;
config_.track_id = track_id;
rtp_parameters_.encodings[0].ssrc = ssrc;
@@ -1766,16 +1768,9 @@
rtc::Optional<std::string> audio_network_adaptor_config =
GetAudioNetworkAdaptorConfig(options_);
WebRtcAudioSendStream* stream = new WebRtcAudioSendStream(
- ssrc,
- sp.cname,
- sp.id,
- send_codec_spec_,
- send_rtp_extensions_,
- max_send_bitrate_bps_,
- audio_network_adaptor_config,
- call_,
- this,
- engine()->encoder_factory_);
+ ssrc, sp.cname, sp.id, send_codec_spec_, send_rtp_extensions_,
+ max_send_bitrate_bps_, audio_network_adaptor_config, call_, this,
+ engine()->encoder_factory_, codec_pair_id_);
send_streams_.insert(std::make_pair(ssrc, stream));
// At this point the stream's local SSRC has been updated. If it is the first