From d53c3895503d626aacdfbfd8c39f48d3a3c331e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20Bostr=C3=B6m?= Date: Wed, 30 Mar 2016 17:03:52 +0200 Subject: [PATCH] Shorten single-stream VP8 HW implementation names. Removes "SimulcastEncoderAdapter" from single-stream HW VP8 even though they are wrapped in a SimulcastEncoderAdapter. BUG= R=stefan@webrtc.org Review URL: https://codereview.webrtc.org/1827553002 . Cr-Commit-Position: refs/heads/master@{#12161} --- .../codecs/vp8/simulcast_encoder_adapter.cc | 10 +++++++--- .../vp8/simulcast_encoder_adapter_unittest.cc | 18 +++++++++++++++++- 2 files changed, 24 insertions(+), 4 deletions(-) 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,