Move rtp-specific config out of EncoderSettings.
In VideoSendStream::Config, move payload_name and payload_type from EncoderSettings to Rtp. EncoderSettings now contains configuration for VideoStreamEncoder only, and should perhaps be renamed in a follow up cl. It's no longer passed as an argument to VideoCodecInitializer::SetupCodec. The latter then needs a different way to know the codec type, which is provided by a new codec_type member in VideoEncoderConfig. Bug: webrtc:8830 Change-Id: Ifcc691aef1ee6a95e43c0452c5e630d92a511cd6 Reviewed-on: https://webrtc-review.googlesource.com/62062 Commit-Queue: Niels Moller <nisse@webrtc.org> Reviewed-by: Magnus Jedvert <magjed@webrtc.org> Reviewed-by: Stefan Holmer <stefan@webrtc.org> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org> Cr-Commit-Position: refs/heads/master@{#22532}
This commit is contained in:
@ -194,14 +194,15 @@ void CallTest::CreateVideoSendConfig(VideoSendStream::Config* video_config,
|
||||
RTC_DCHECK_LE(num_video_streams + num_used_ssrcs, kNumSsrcs);
|
||||
*video_config = VideoSendStream::Config(send_transport);
|
||||
video_config->encoder_settings.encoder = &fake_encoder_;
|
||||
video_config->encoder_settings.payload_name = "FAKE";
|
||||
video_config->encoder_settings.payload_type = kFakeVideoSendPayloadType;
|
||||
video_config->rtp.payload_name = "FAKE";
|
||||
video_config->rtp.payload_type = kFakeVideoSendPayloadType;
|
||||
video_config->rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kTransportSequenceNumberUri,
|
||||
kTransportSequenceNumberExtensionId));
|
||||
video_config->rtp.extensions.push_back(RtpExtension(
|
||||
RtpExtension::kVideoContentTypeUri, kVideoContentTypeExtensionId));
|
||||
FillEncoderConfiguration(num_video_streams, &video_encoder_config_);
|
||||
FillEncoderConfiguration(kVideoCodecVP8, num_video_streams,
|
||||
&video_encoder_config_);
|
||||
|
||||
for (size_t i = 0; i < num_video_streams; ++i)
|
||||
video_config->rtp.ssrcs.push_back(kVideoSendSsrcs[num_used_ssrcs + i]);
|
||||
@ -257,7 +258,7 @@ CallTest::CreateMatchingVideoReceiveConfigs(
|
||||
video_config.renderer = &fake_renderer_;
|
||||
for (size_t i = 0; i < video_send_config.rtp.ssrcs.size(); ++i) {
|
||||
VideoReceiveStream::Decoder decoder =
|
||||
test::CreateMatchingDecoder(video_send_config.encoder_settings);
|
||||
test::CreateMatchingDecoder(video_send_config);
|
||||
allocated_decoders_.push_back(
|
||||
std::unique_ptr<VideoDecoder>(decoder.decoder));
|
||||
video_config.decoders.clear();
|
||||
|
@ -78,10 +78,12 @@ std::vector<VideoStream> DefaultVideoStreamFactory::CreateEncoderStreams(
|
||||
return CreateVideoStreams(width, height, encoder_config);
|
||||
}
|
||||
|
||||
void FillEncoderConfiguration(size_t num_streams,
|
||||
void FillEncoderConfiguration(VideoCodecType codec_type,
|
||||
size_t num_streams,
|
||||
VideoEncoderConfig* configuration) {
|
||||
RTC_DCHECK_LE(num_streams, DefaultVideoStreamFactory::kMaxNumberOfStreams);
|
||||
|
||||
configuration->codec_type = codec_type;
|
||||
configuration->number_of_streams = num_streams;
|
||||
configuration->video_stream_factory =
|
||||
new rtc::RefCountedObject<DefaultVideoStreamFactory>();
|
||||
@ -94,17 +96,17 @@ void FillEncoderConfiguration(size_t num_streams,
|
||||
}
|
||||
|
||||
VideoReceiveStream::Decoder CreateMatchingDecoder(
|
||||
const VideoSendStream::Config::EncoderSettings& encoder_settings) {
|
||||
int payload_type, const std::string& payload_name) {
|
||||
VideoReceiveStream::Decoder decoder;
|
||||
decoder.payload_type = encoder_settings.payload_type;
|
||||
decoder.payload_name = encoder_settings.payload_name;
|
||||
if (encoder_settings.payload_name == "H264") {
|
||||
decoder.payload_type = payload_type;
|
||||
decoder.payload_name = payload_name;
|
||||
if (payload_name == "H264") {
|
||||
decoder.decoder = H264Decoder::Create().release();
|
||||
} else if (encoder_settings.payload_name == "VP8") {
|
||||
} else if (payload_name == "VP8") {
|
||||
decoder.decoder = VP8Decoder::Create().release();
|
||||
} else if (encoder_settings.payload_name == "VP9") {
|
||||
} else if (payload_name == "VP9") {
|
||||
decoder.decoder = VP9Decoder::Create().release();
|
||||
} else if (encoder_settings.payload_name == "multiplex") {
|
||||
} else if (payload_name == "multiplex") {
|
||||
decoder.decoder = new MultiplexDecoderAdapter(
|
||||
new InternalDecoderFactory(), SdpVideoFormat(cricket::kVp9CodecName));
|
||||
} else {
|
||||
@ -112,5 +114,12 @@ VideoReceiveStream::Decoder CreateMatchingDecoder(
|
||||
}
|
||||
return decoder;
|
||||
}
|
||||
|
||||
VideoReceiveStream::Decoder CreateMatchingDecoder(
|
||||
const VideoSendStream::Config& config) {
|
||||
return CreateMatchingDecoder(config.rtp.payload_type,
|
||||
config.rtp.payload_name);
|
||||
}
|
||||
|
||||
} // namespace test
|
||||
} // namespace webrtc
|
||||
|
@ -45,11 +45,14 @@ std::vector<VideoStream> CreateVideoStreams(
|
||||
int height,
|
||||
const webrtc::VideoEncoderConfig& encoder_config);
|
||||
|
||||
void FillEncoderConfiguration(size_t num_streams,
|
||||
void FillEncoderConfiguration(VideoCodecType codec_type, size_t num_streams,
|
||||
VideoEncoderConfig* configuration);
|
||||
|
||||
VideoReceiveStream::Decoder CreateMatchingDecoder(
|
||||
const VideoSendStream::Config::EncoderSettings& encoder_settings);
|
||||
int payload_type, const std::string& payload_name);
|
||||
|
||||
VideoReceiveStream::Decoder CreateMatchingDecoder(
|
||||
const VideoSendStream::Config& config);
|
||||
} // namespace test
|
||||
} // namespace webrtc
|
||||
|
||||
|
Reference in New Issue
Block a user