diff --git a/webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter.cc b/webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter.cc index d4f4b80a10..55a4402cbe 100644 --- a/webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter.cc +++ b/webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter.cc @@ -182,7 +182,7 @@ int SimulcastEncoderAdapter::InitEncode(const VideoCodec* inst, } int number_of_streams = NumberOfStreams(*inst); - bool doing_simulcast = (number_of_streams > 1); + const bool doing_simulcast = (number_of_streams > 1); if (doing_simulcast && !ValidSimulcastResolutions(*inst, number_of_streams)) { return WEBRTC_VIDEO_CODEC_ERR_PARAMETER; @@ -230,8 +230,12 @@ int SimulcastEncoderAdapter::InitEncode(const VideoCodec* inst, implementation_name += ", "; implementation_name += streaminfos_[i].encoder->ImplementationName(); } - implementation_name_ = - "SimulcastEncoderAdapter (" + implementation_name + ")"; + if (doing_simulcast) { + implementation_name_ = + "SimulcastEncoderAdapter (" + implementation_name + ")"; + } else { + implementation_name_ = implementation_name; + } return WEBRTC_VIDEO_CODEC_OK; } diff --git a/webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter_unittest.cc b/webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter_unittest.cc index 589edb6d3e..9a7e1b2e7c 100644 --- a/webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter_unittest.cc +++ b/webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter_unittest.cc @@ -174,7 +174,15 @@ class MockVideoEncoderFactory : public VideoEncoderFactory { return encoder; } - void Destroy(VideoEncoder* encoder) override { delete encoder; } + void Destroy(VideoEncoder* encoder) override { + for (size_t i = 0; i < encoders_.size(); ++i) { + if (encoders_[i] == encoder) { + encoders_.erase(encoders_.begin() + i); + break; + } + } + delete encoder; + } virtual ~MockVideoEncoderFactory() {} @@ -421,6 +429,14 @@ TEST_F(TestSimulcastEncoderAdapterFake, SupportsImplementationName) { EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200)); EXPECT_STREQ("SimulcastEncoderAdapter (codec1, codec2, codec3)", adapter_->ImplementationName()); + + // Single streams should not expose "SimulcastEncoderAdapter" in name. + adapter_->Release(); + codec_.numberOfSimulcastStreams = 1; + EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200)); + adapter_->RegisterEncodeCompleteCallback(this); + ASSERT_EQ(1u, helper_->factory()->encoders().size()); + EXPECT_STREQ("codec1", adapter_->ImplementationName()); } TEST_F(TestSimulcastEncoderAdapterFake,