From c1a8974ebd89295f9ba6deb6200cad74d6181e30 Mon Sep 17 00:00:00 2001 From: magjed Date: Fri, 12 May 2017 00:24:40 -0700 Subject: [PATCH] WebRtcVideoEncoderFactory cleanup Remove some deprecated functions. BUG=webrtc:6402 Review-Url: https://codereview.webrtc.org/2859223003 Cr-Commit-Position: refs/heads/master@{#18116} --- webrtc/media/BUILD.gn | 1 - webrtc/media/engine/fakewebrtcvideoengine.h | 4 -- webrtc/media/engine/internalencoderfactory.h | 4 -- .../media/engine/webrtcvideoencoderfactory.cc | 53 ------------------- .../media/engine/webrtcvideoencoderfactory.h | 42 +-------------- .../webrtcvideoencoderfactory_unittest.cc | 15 ++++-- webrtc/media/engine/webrtcvideoengine2.cc | 4 -- .../android/src/jni/androidmediaencoder_jni.h | 4 -- 8 files changed, 13 insertions(+), 114 deletions(-) delete mode 100644 webrtc/media/engine/webrtcvideoencoderfactory.cc diff --git a/webrtc/media/BUILD.gn b/webrtc/media/BUILD.gn index 4e4d67a937..cc77598439 100644 --- a/webrtc/media/BUILD.gn +++ b/webrtc/media/BUILD.gn @@ -150,7 +150,6 @@ rtc_static_library("rtc_media") { "engine/webrtcvideocapturerfactory.cc", "engine/webrtcvideocapturerfactory.h", "engine/webrtcvideodecoderfactory.h", - "engine/webrtcvideoencoderfactory.cc", "engine/webrtcvideoencoderfactory.h", "engine/webrtcvideoengine2.cc", "engine/webrtcvideoengine2.h", diff --git a/webrtc/media/engine/fakewebrtcvideoengine.h b/webrtc/media/engine/fakewebrtcvideoengine.h index f95fa7bdd8..081005d0f6 100644 --- a/webrtc/media/engine/fakewebrtcvideoengine.h +++ b/webrtc/media/engine/fakewebrtcvideoengine.h @@ -247,10 +247,6 @@ class FakeWebRtcVideoEncoderFactory : public WebRtcVideoEncoderFactory { } private: - // Disable overloaded virtual function warning. TODO(magjed): Remove once - // http://crbug/webrtc/6402 is fixed. - using cricket::WebRtcVideoEncoderFactory::CreateVideoEncoder; - rtc::CriticalSection crit_; rtc::Event created_video_encoder_event_; std::vector codecs_; diff --git a/webrtc/media/engine/internalencoderfactory.h b/webrtc/media/engine/internalencoderfactory.h index 909fa0ff2f..cfc61016c0 100644 --- a/webrtc/media/engine/internalencoderfactory.h +++ b/webrtc/media/engine/internalencoderfactory.h @@ -29,10 +29,6 @@ class InternalEncoderFactory : public WebRtcVideoEncoderFactory { void DestroyVideoEncoder(webrtc::VideoEncoder* encoder) override; private: - // Disable overloaded virtual function warning. TODO(magjed): Remove once - // http://crbug/webrtc/6402 is fixed. - using WebRtcVideoEncoderFactory::CreateVideoEncoder; - std::vector supported_codecs_; }; diff --git a/webrtc/media/engine/webrtcvideoencoderfactory.cc b/webrtc/media/engine/webrtcvideoencoderfactory.cc deleted file mode 100644 index a332d86b60..0000000000 --- a/webrtc/media/engine/webrtcvideoencoderfactory.cc +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#include "webrtc/media/engine/webrtcvideoencoderfactory.h" - -#include "webrtc/common_types.h" - -namespace cricket { - -webrtc::VideoEncoder* WebRtcVideoEncoderFactory::CreateVideoEncoder( - const cricket::VideoCodec& codec) { - return CreateVideoEncoder(webrtc::PayloadNameToCodecType(codec.name) - .value_or(webrtc::kVideoCodecUnknown)); -} - -const std::vector& -WebRtcVideoEncoderFactory::supported_codecs() const { - codecs_.clear(); - const std::vector& encoder_codecs = codecs(); - for (const VideoCodec& encoder_codec : encoder_codecs) { - codecs_.push_back(cricket::VideoCodec(encoder_codec.name)); - } - return codecs_; -} - -webrtc::VideoEncoder* WebRtcVideoEncoderFactory::CreateVideoEncoder( - webrtc::VideoCodecType type) { - const cricket::VideoCodec codec( - webrtc::CodecTypeToPayloadName(type).value_or("Unknown codec")); - return CreateVideoEncoder(codec); -} - -const std::vector& -WebRtcVideoEncoderFactory::codecs() const { - encoder_codecs_.clear(); - const std::vector& codecs = supported_codecs(); - for (const cricket::VideoCodec& codec : codecs) { - encoder_codecs_.push_back( - VideoCodec(webrtc::PayloadNameToCodecType(codec.name) - .value_or(webrtc::kVideoCodecUnknown), - codec.name)); - } - return encoder_codecs_; -} - -} // namespace cricket diff --git a/webrtc/media/engine/webrtcvideoencoderfactory.h b/webrtc/media/engine/webrtcvideoencoderfactory.h index 35e4092028..208ab8b16b 100644 --- a/webrtc/media/engine/webrtcvideoencoderfactory.h +++ b/webrtc/media/engine/webrtcvideoencoderfactory.h @@ -24,46 +24,15 @@ namespace cricket { class WebRtcVideoEncoderFactory { public: - // This VideoCodec class is deprecated. Use cricket::VideoCodec directly - // instead and the corresponding factory function. See - // http://crbug/webrtc/6402 for more info. - struct VideoCodec { - webrtc::VideoCodecType type; - std::string name; - - VideoCodec(webrtc::VideoCodecType t, const std::string& nm) - : type(t), name(nm) {} - - VideoCodec(webrtc::VideoCodecType t, - const std::string& nm, - int w, - int h, - int fr) - : type(t), name(nm) {} - }; - virtual ~WebRtcVideoEncoderFactory() {} - // TODO(magjed): Make these functions pure virtual when every external client - // implements it. See http://crbug/webrtc/6402 for more info. // Caller takes the ownership of the returned object and it should be released // by calling DestroyVideoEncoder(). virtual webrtc::VideoEncoder* CreateVideoEncoder( - const cricket::VideoCodec& codec); + const cricket::VideoCodec& codec) = 0; // Returns a list of supported codecs in order of preference. - virtual const std::vector& supported_codecs() const; - - // Caller takes the ownership of the returned object and it should be released - // by calling DestroyVideoEncoder(). - // Deprecated: Use cricket::VideoCodec as argument instead. See - // http://crbug/webrtc/6402 for more info. - virtual webrtc::VideoEncoder* CreateVideoEncoder(webrtc::VideoCodecType type); - - // Returns a list of supported codecs in order of preference. - // Deprecated: Return cricket::VideoCodecs instead. See - // http://crbug/webrtc/6402 for more info. - virtual const std::vector& codecs() const; + virtual const std::vector& supported_codecs() const = 0; // Returns true if encoders created by this factory of the given codec type // will use internal camera sources, meaning that they don't require/expect @@ -75,13 +44,6 @@ class WebRtcVideoEncoderFactory { } virtual void DestroyVideoEncoder(webrtc::VideoEncoder* encoder) = 0; - - private: - // TODO(magjed): Remove these. They are necessary in order to return a const - // reference to a std::vector in the default implementations of codecs() and - // supported_codecs(). See http://crbug/webrtc/6402 for more info. - mutable std::vector encoder_codecs_; - mutable std::vector codecs_; }; } // namespace cricket diff --git a/webrtc/media/engine/webrtcvideoencoderfactory_unittest.cc b/webrtc/media/engine/webrtcvideoencoderfactory_unittest.cc index 967c33b3d2..5d3c9abefe 100644 --- a/webrtc/media/engine/webrtcvideoencoderfactory_unittest.cc +++ b/webrtc/media/engine/webrtcvideoencoderfactory_unittest.cc @@ -16,15 +16,22 @@ class WebRtcVideoEncoderFactoryForTest : public cricket::WebRtcVideoEncoderFactory { public: WebRtcVideoEncoderFactoryForTest() { - codecs_.push_back(VideoCodec(webrtc::kVideoCodecH264, "H264")); - codecs_.push_back(VideoCodec(webrtc::kVideoCodecVP8, "VP8")); + codecs_.push_back(cricket::VideoCodec("H264")); + codecs_.push_back(cricket::VideoCodec("VP8")); } - const std::vector& codecs() const override { return codecs_; } + webrtc::VideoEncoder* CreateVideoEncoder( + const cricket::VideoCodec& codec) override { + return nullptr; + } + + const std::vector& supported_codecs() const override { + return codecs_; + } void DestroyVideoEncoder(webrtc::VideoEncoder* encoder) override {} - std::vector codecs_; + std::vector codecs_; }; TEST(WebRtcVideoEncoderFactoryTest, TestMultipleCallsToSupportedCodecs) { diff --git a/webrtc/media/engine/webrtcvideoengine2.cc b/webrtc/media/engine/webrtcvideoengine2.cc index 65833873f6..2465aab778 100644 --- a/webrtc/media/engine/webrtcvideoengine2.cc +++ b/webrtc/media/engine/webrtcvideoengine2.cc @@ -144,10 +144,6 @@ class WebRtcSimulcastEncoderFactory } private: - // Disable overloaded virtual function warning. TODO(magjed): Remove once - // http://crbug/webrtc/6402 is fixed. - using cricket::WebRtcVideoEncoderFactory::CreateVideoEncoder; - cricket::WebRtcVideoEncoderFactory* factory_; // A list of encoders that were created without being wrapped in a // SimulcastEncoderAdapter. diff --git a/webrtc/sdk/android/src/jni/androidmediaencoder_jni.h b/webrtc/sdk/android/src/jni/androidmediaencoder_jni.h index 3e6d88493b..08f5502c86 100644 --- a/webrtc/sdk/android/src/jni/androidmediaencoder_jni.h +++ b/webrtc/sdk/android/src/jni/androidmediaencoder_jni.h @@ -34,10 +34,6 @@ class MediaCodecVideoEncoderFactory void DestroyVideoEncoder(webrtc::VideoEncoder* encoder) override; private: - // Disable overloaded virtual function warning. TODO(magjed): Remove once - // http://crbug/webrtc/6402 is fixed. - using cricket::WebRtcVideoEncoderFactory::CreateVideoEncoder; - jobject egl_context_; // Empty if platform support is lacking, const after ctor returns.