From 01092957f5fd3fe5bf3e58aa7078a0dd288e74cf Mon Sep 17 00:00:00 2001 From: Anders Carlsson Date: Tue, 11 Dec 2018 15:44:54 +0100 Subject: [PATCH] Mark functions using old factory classes as deprecated. The flag rtc_use_builtin_sw_codecs will be removed in a later CL and this marks usage of the various entry points using the old video factory API as deprecated. Bug: webrtc:7925, webrtc:10044 Change-Id: I5c75516a41b0666e77539c028808cc2b173ed4bd Reviewed-on: https://webrtc-review.googlesource.com/c/113061 Reviewed-by: Karl Wiberg Reviewed-by: Magnus Jedvert Commit-Queue: Anders Carlsson Cr-Commit-Position: refs/heads/master@{#25970} --- api/BUILD.gn | 1 + api/DEPS | 1 + api/create_peerconnection_factory.h | 12 +++++---- media/BUILD.gn | 1 + media/engine/convert_legacy_video_factory.cc | 15 ++++++----- media/engine/convert_legacy_video_factory.h | 27 +++++++++++++++----- media/engine/scopedvideodecoder.cc | 2 +- media/engine/scopedvideodecoder.h | 16 +++++++++--- media/engine/scopedvideoencoder.cc | 2 +- media/engine/scopedvideoencoder.h | 13 +++++++--- media/engine/webrtcmediaengine.cc | 10 ++++++-- media/engine/webrtcmediaengine.h | 8 +++--- media/engine/webrtcvideoengine.h | 2 +- 13 files changed, 77 insertions(+), 33 deletions(-) diff --git a/api/BUILD.gn b/api/BUILD.gn index 5f13009de9..eb41260878 100644 --- a/api/BUILD.gn +++ b/api/BUILD.gn @@ -62,6 +62,7 @@ rtc_static_library("create_peerconnection_factory") { "../modules/audio_device:audio_device_api", "../modules/audio_processing:api", "../pc:peerconnection", + "../rtc_base:deprecation", "../rtc_base:ptr_util", "../rtc_base:rtc_base", "../rtc_base:rtc_base_approved", diff --git a/api/DEPS b/api/DEPS index 29c213bfbc..e4bb408cc1 100644 --- a/api/DEPS +++ b/api/DEPS @@ -67,6 +67,7 @@ specific_include_rules = { ], "create_peerconnection_factory\.h": [ + "+rtc_base/deprecation.h", "+rtc_base/scoped_ref_ptr.h", ], diff --git a/api/create_peerconnection_factory.h b/api/create_peerconnection_factory.h index baa50c7bd8..063de1831f 100644 --- a/api/create_peerconnection_factory.h +++ b/api/create_peerconnection_factory.h @@ -19,6 +19,7 @@ #include "api/fec_controller.h" #include "api/peerconnectioninterface.h" #include "api/transport/network_control.h" +#include "rtc_base/deprecation.h" #include "rtc_base/scoped_ref_ptr.h" namespace rtc { @@ -49,7 +50,7 @@ class AudioProcessing; // rtc::Thread::Current()->Run(), or call // rtc::Thread::Current()->ProcessMessages() within the application's own // message loop. -RTC_EXPORT rtc::scoped_refptr +RTC_DEPRECATED RTC_EXPORT rtc::scoped_refptr CreatePeerConnectionFactory( rtc::scoped_refptr audio_encoder_factory, rtc::scoped_refptr audio_decoder_factory); @@ -64,7 +65,7 @@ CreatePeerConnectionFactory( // returned factory. // TODO(deadbeef): Use rtc::scoped_refptr<> and std::unique_ptr<> to make this // ownership transfer and ref counting more obvious. -RTC_EXPORT rtc::scoped_refptr +RTC_DEPRECATED RTC_EXPORT rtc::scoped_refptr CreatePeerConnectionFactory( rtc::Thread* network_thread, rtc::Thread* worker_thread, @@ -81,7 +82,7 @@ CreatePeerConnectionFactory( // If |audio_mixer| is null, an internal audio mixer will be created and used. // If |audio_processing| is null, an internal audio processing module will be // created and used. -RTC_EXPORT rtc::scoped_refptr +RTC_DEPRECATED RTC_EXPORT rtc::scoped_refptr CreatePeerConnectionFactory( rtc::Thread* network_thread, rtc::Thread* worker_thread, @@ -104,7 +105,7 @@ CreatePeerConnectionFactory( // be created and used. // If |network_controller_factory| is provided, it will be used if enabled via // field trial. -RTC_EXPORT rtc::scoped_refptr +RTC_DEPRECATED RTC_EXPORT rtc::scoped_refptr CreatePeerConnectionFactory( rtc::Thread* network_thread, rtc::Thread* worker_thread, @@ -144,7 +145,7 @@ CreatePeerConnectionFactory( // mixer. // // If |audio_mixer| is null, an internal audio mixer will be created and used. -RTC_EXPORT rtc::scoped_refptr +RTC_DEPRECATED RTC_EXPORT rtc::scoped_refptr CreatePeerConnectionFactoryWithAudioMixer( rtc::Thread* network_thread, rtc::Thread* worker_thread, @@ -158,6 +159,7 @@ CreatePeerConnectionFactoryWithAudioMixer( // Create a new instance of PeerConnectionFactoryInterface. // Same thread is used as worker and network thread. +RTC_DEPRECATED RTC_EXPORT inline rtc::scoped_refptr CreatePeerConnectionFactory( rtc::Thread* worker_and_network_thread, diff --git a/media/BUILD.gn b/media/BUILD.gn index 84fd61086d..b00615e614 100644 --- a/media/BUILD.gn +++ b/media/BUILD.gn @@ -297,6 +297,7 @@ rtc_static_library("rtc_internal_video_codecs") { "../modules/video_coding:webrtc_vp8", "../modules/video_coding:webrtc_vp9", "../rtc_base:checks", + "../rtc_base:deprecation", "../rtc_base:rtc_base_approved", "../rtc_base/system:rtc_export", "//third_party/abseil-cpp/absl/strings", diff --git a/media/engine/convert_legacy_video_factory.cc b/media/engine/convert_legacy_video_factory.cc index 4c30dc24a5..45fd4201e1 100644 --- a/media/engine/convert_legacy_video_factory.cc +++ b/media/engine/convert_legacy_video_factory.cc @@ -89,8 +89,8 @@ class CricketToWebRtcEncoderFactory : public webrtc::VideoEncoderFactory { std::unique_ptr CreateVideoEncoder( const webrtc::SdpVideoFormat& format) override { - return CreateScopedVideoEncoder(external_encoder_factory_.get(), - VideoCodec(format)); + return DEPRECATED_CreateScopedVideoEncoder(external_encoder_factory_.get(), + VideoCodec(format)); } private: @@ -200,8 +200,9 @@ class CricketToWebRtcDecoderFactory : public webrtc::VideoDecoderFactory { const webrtc::SdpVideoFormat& format, const std::string& receive_stream_id) override { if (external_decoder_factory_ != nullptr) { - return CreateScopedVideoDecoder(external_decoder_factory_.get(), - VideoCodec(format), {receive_stream_id}); + return DEPRECATED_CreateScopedVideoDecoder( + external_decoder_factory_.get(), VideoCodec(format), + {receive_stream_id}); } return nullptr; } @@ -279,13 +280,15 @@ class DecoderAdapter : public webrtc::VideoDecoderFactory { } // namespace -std::unique_ptr ConvertVideoEncoderFactory( +std::unique_ptr +DEPRECATED_ConvertVideoEncoderFactory( std::unique_ptr external_encoder_factory) { return std::unique_ptr( new EncoderAdapter(std::move(external_encoder_factory))); } -std::unique_ptr ConvertVideoDecoderFactory( +std::unique_ptr +DEPRECATED_ConvertVideoDecoderFactory( std::unique_ptr external_decoder_factory) { return std::unique_ptr( new DecoderAdapter(std::move(external_decoder_factory))); diff --git a/media/engine/convert_legacy_video_factory.h b/media/engine/convert_legacy_video_factory.h index 27383ab386..f83415aeff 100644 --- a/media/engine/convert_legacy_video_factory.h +++ b/media/engine/convert_legacy_video_factory.h @@ -12,7 +12,11 @@ #define MEDIA_ENGINE_CONVERT_LEGACY_VIDEO_FACTORY_H_ #include +#include +#include "media/engine/webrtcvideodecoderfactory.h" +#include "media/engine/webrtcvideoencoderfactory.h" +#include "rtc_base/deprecation.h" #include "rtc_base/system/rtc_export.h" namespace webrtc { @@ -22,20 +26,31 @@ class VideoDecoderFactory; namespace cricket { -class WebRtcVideoEncoderFactory; -class WebRtcVideoDecoderFactory; +RTC_EXPORT std::unique_ptr +DEPRECATED_ConvertVideoEncoderFactory( + std::unique_ptr external_encoder_factory); + +RTC_EXPORT std::unique_ptr +DEPRECATED_ConvertVideoDecoderFactory( + std::unique_ptr external_decoder_factory); // Adds internal SW codecs, simulcast, SW fallback wrappers, and converts to the // new type of codec factories. The purpose of these functions is to provide an // easy way for clients to migrate to the API with new factory types. // TODO(magjed): Remove once old factories are gone, webrtc:7925. -RTC_EXPORT std::unique_ptr +RTC_DEPRECATED RTC_EXPORT inline std::unique_ptr ConvertVideoEncoderFactory( - std::unique_ptr external_encoder_factory); + std::unique_ptr external_encoder_factory) { + return DEPRECATED_ConvertVideoEncoderFactory( + std::move(external_encoder_factory)); +} -RTC_EXPORT std::unique_ptr +RTC_DEPRECATED RTC_EXPORT inline std::unique_ptr ConvertVideoDecoderFactory( - std::unique_ptr external_decoder_factory); + std::unique_ptr external_decoder_factory) { + return DEPRECATED_ConvertVideoDecoderFactory( + std::move(external_decoder_factory)); +} } // namespace cricket diff --git a/media/engine/scopedvideodecoder.cc b/media/engine/scopedvideodecoder.cc index a473aa2b10..118ab419f2 100644 --- a/media/engine/scopedvideodecoder.cc +++ b/media/engine/scopedvideodecoder.cc @@ -85,7 +85,7 @@ ScopedVideoDecoder::~ScopedVideoDecoder() { } // namespace -std::unique_ptr CreateScopedVideoDecoder( +std::unique_ptr DEPRECATED_CreateScopedVideoDecoder( WebRtcVideoDecoderFactory* factory, const VideoCodec& codec, VideoDecoderParams params) { diff --git a/media/engine/scopedvideodecoder.h b/media/engine/scopedvideodecoder.h index 2857847fb7..fcb31453be 100644 --- a/media/engine/scopedvideodecoder.h +++ b/media/engine/scopedvideodecoder.h @@ -16,9 +16,15 @@ #include "api/video_codecs/video_decoder.h" #include "media/base/codec.h" #include "media/engine/webrtcvideodecoderfactory.h" +#include "rtc_base/deprecation.h" namespace cricket { +std::unique_ptr DEPRECATED_CreateScopedVideoDecoder( + cricket::WebRtcVideoDecoderFactory* factory, + const VideoCodec& codec, + VideoDecoderParams params); + // Helper function that creates a webrtc::VideoDecoder held by an // std::unique_ptr instead of having to be deleted through // WebRtcVideoDecoderFactory::DestroyVideoDecoder. The factory passed in must @@ -26,10 +32,12 @@ namespace cricket { // TODO(andersc): This helper function will be deleted once // cricket::WebRtcVideoDecoderFactory is deprecated, see // https://bugs.chromium.org/p/webrtc/issues/detail?id=7925 for more info. -std::unique_ptr CreateScopedVideoDecoder( - cricket::WebRtcVideoDecoderFactory* factory, - const VideoCodec& codec, - VideoDecoderParams params); +RTC_DEPRECATED inline std::unique_ptr +CreateScopedVideoDecoder(cricket::WebRtcVideoDecoderFactory* factory, + const VideoCodec& codec, + VideoDecoderParams params) { + return DEPRECATED_CreateScopedVideoDecoder(factory, codec, params); +} } // namespace cricket diff --git a/media/engine/scopedvideoencoder.cc b/media/engine/scopedvideoencoder.cc index b1df115cbf..4ff2c72d92 100644 --- a/media/engine/scopedvideoencoder.cc +++ b/media/engine/scopedvideoencoder.cc @@ -96,7 +96,7 @@ ScopedVideoEncoder::~ScopedVideoEncoder() { } // namespace -std::unique_ptr CreateScopedVideoEncoder( +std::unique_ptr DEPRECATED_CreateScopedVideoEncoder( WebRtcVideoEncoderFactory* factory, const VideoCodec& codec) { webrtc::VideoEncoder* encoder = factory->CreateVideoEncoder(codec); diff --git a/media/engine/scopedvideoencoder.h b/media/engine/scopedvideoencoder.h index 0d67873817..46ad8b0404 100644 --- a/media/engine/scopedvideoencoder.h +++ b/media/engine/scopedvideoencoder.h @@ -16,9 +16,14 @@ #include "api/video_codecs/video_encoder.h" #include "media/base/codec.h" #include "media/engine/webrtcvideoencoderfactory.h" +#include "rtc_base/deprecation.h" namespace cricket { +std::unique_ptr DEPRECATED_CreateScopedVideoEncoder( + cricket::WebRtcVideoEncoderFactory* factory, + const VideoCodec& codec); + // Helper function that creates a webrtc::VideoEncoder held by an // std::unique_ptr instead of having to be deleted through // WebRtcVideoEncoderFactory::DestroyVideoEncoder. The factory passed in must @@ -26,9 +31,11 @@ namespace cricket { // TODO(magjed): This helper function will be deleted once // cricket::WebRtcVideoEncoderFactory is deprecated, see // https://bugs.chromium.org/p/webrtc/issues/detail?id=7925 for more info. -std::unique_ptr CreateScopedVideoEncoder( - cricket::WebRtcVideoEncoderFactory* factory, - const VideoCodec& codec); +RTC_DEPRECATED inline std::unique_ptr +CreateScopedVideoEncoder(cricket::WebRtcVideoEncoderFactory* factory, + const VideoCodec& codec) { + return DEPRECATED_CreateScopedVideoEncoder(factory, codec); +} } // namespace cricket diff --git a/media/engine/webrtcmediaengine.cc b/media/engine/webrtcmediaengine.cc index bc7d3c3e12..844f463dcf 100644 --- a/media/engine/webrtcmediaengine.cc +++ b/media/engine/webrtcmediaengine.cc @@ -19,6 +19,10 @@ #include "api/video_codecs/video_encoder_factory.h" #include "media/engine/webrtcvoiceengine.h" +#if defined(USE_BUILTIN_SW_CODECS) +#include "media/engine/convert_legacy_video_factory.h" +#endif + #ifdef HAVE_WEBRTC_VIDEO #include "media/engine/webrtcvideoengine.h" #else @@ -45,8 +49,10 @@ MediaEngineInterface* CreateWebRtcMediaEngine( std::unique_ptr video_engine; #ifdef HAVE_WEBRTC_VIDEO video_engine = absl::make_unique( - std::unique_ptr(video_encoder_factory), - std::unique_ptr(video_decoder_factory), + DEPRECATED_ConvertVideoEncoderFactory( + std::unique_ptr(video_encoder_factory)), + DEPRECATED_ConvertVideoDecoderFactory( + std::unique_ptr(video_decoder_factory)), std::move(video_bitrate_allocator_factory)); #else video_engine = absl::make_unique(); diff --git a/media/engine/webrtcmediaengine.h b/media/engine/webrtcmediaengine.h index fbf4466732..9256c0c732 100644 --- a/media/engine/webrtcmediaengine.h +++ b/media/engine/webrtcmediaengine.h @@ -43,7 +43,7 @@ class WebRtcMediaEngineFactory { // TODO(deadbeef): Change these to return an std::unique_ptr<>, to indicate // that the caller owns the returned object. #if defined(USE_BUILTIN_SW_CODECS) - static MediaEngineInterface* Create( + RTC_DEPRECATED static MediaEngineInterface* Create( webrtc::AudioDeviceModule* adm, const rtc::scoped_refptr& audio_encoder_factory, @@ -52,7 +52,7 @@ class WebRtcMediaEngineFactory { WebRtcVideoEncoderFactory* video_encoder_factory, WebRtcVideoDecoderFactory* video_decoder_factory); - static MediaEngineInterface* Create( + RTC_DEPRECATED static MediaEngineInterface* Create( webrtc::AudioDeviceModule* adm, const rtc::scoped_refptr& audio_encoder_factory, @@ -63,7 +63,7 @@ class WebRtcMediaEngineFactory { rtc::scoped_refptr audio_mixer, rtc::scoped_refptr apm); - static MediaEngineInterface* Create( + RTC_DEPRECATED static MediaEngineInterface* Create( webrtc::AudioDeviceModule* adm, const rtc::scoped_refptr& audio_encoder_factory, @@ -74,7 +74,7 @@ class WebRtcMediaEngineFactory { std::unique_ptr video_bitrate_allocator_factory); - static MediaEngineInterface* Create( + RTC_DEPRECATED static MediaEngineInterface* Create( webrtc::AudioDeviceModule* adm, const rtc::scoped_refptr& audio_encoder_factory, diff --git a/media/engine/webrtcvideoengine.h b/media/engine/webrtcvideoengine.h index 3b79ad40b8..a93453d97b 100644 --- a/media/engine/webrtcvideoengine.h +++ b/media/engine/webrtcvideoengine.h @@ -83,7 +83,7 @@ class WebRtcVideoEngine : public VideoEngineInterface { public: #if defined(USE_BUILTIN_SW_CODECS) // Internal SW video codecs will be added on top of the external codecs. - WebRtcVideoEngine( + RTC_DEPRECATED WebRtcVideoEngine( std::unique_ptr external_video_encoder_factory, std::unique_ptr external_video_decoder_factory, std::unique_ptr