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 <kwiberg@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25970}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index 5f13009..eb41260 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -62,6 +62,7 @@
"../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 29c213b..e4bb408 100644
--- a/api/DEPS
+++ b/api/DEPS
@@ -67,6 +67,7 @@
],
"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 baa50c7..063de18 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 @@
// rtc::Thread::Current()->Run(), or call
// rtc::Thread::Current()->ProcessMessages() within the application's own
// message loop.
-RTC_EXPORT rtc::scoped_refptr<PeerConnectionFactoryInterface>
+RTC_DEPRECATED RTC_EXPORT rtc::scoped_refptr<PeerConnectionFactoryInterface>
CreatePeerConnectionFactory(
rtc::scoped_refptr<AudioEncoderFactory> audio_encoder_factory,
rtc::scoped_refptr<AudioDecoderFactory> audio_decoder_factory);
@@ -64,7 +65,7 @@
// 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<PeerConnectionFactoryInterface>
+RTC_DEPRECATED RTC_EXPORT rtc::scoped_refptr<PeerConnectionFactoryInterface>
CreatePeerConnectionFactory(
rtc::Thread* network_thread,
rtc::Thread* worker_thread,
@@ -81,7 +82,7 @@
// 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<PeerConnectionFactoryInterface>
+RTC_DEPRECATED RTC_EXPORT rtc::scoped_refptr<PeerConnectionFactoryInterface>
CreatePeerConnectionFactory(
rtc::Thread* network_thread,
rtc::Thread* worker_thread,
@@ -104,7 +105,7 @@
// be created and used.
// If |network_controller_factory| is provided, it will be used if enabled via
// field trial.
-RTC_EXPORT rtc::scoped_refptr<PeerConnectionFactoryInterface>
+RTC_DEPRECATED RTC_EXPORT rtc::scoped_refptr<PeerConnectionFactoryInterface>
CreatePeerConnectionFactory(
rtc::Thread* network_thread,
rtc::Thread* worker_thread,
@@ -144,7 +145,7 @@
// mixer.
//
// If |audio_mixer| is null, an internal audio mixer will be created and used.
-RTC_EXPORT rtc::scoped_refptr<PeerConnectionFactoryInterface>
+RTC_DEPRECATED RTC_EXPORT rtc::scoped_refptr<PeerConnectionFactoryInterface>
CreatePeerConnectionFactoryWithAudioMixer(
rtc::Thread* network_thread,
rtc::Thread* worker_thread,
@@ -158,6 +159,7 @@
// Create a new instance of PeerConnectionFactoryInterface.
// Same thread is used as worker and network thread.
+RTC_DEPRECATED
RTC_EXPORT inline rtc::scoped_refptr<PeerConnectionFactoryInterface>
CreatePeerConnectionFactory(
rtc::Thread* worker_and_network_thread,
diff --git a/media/BUILD.gn b/media/BUILD.gn
index 84fd610..b00615e 100644
--- a/media/BUILD.gn
+++ b/media/BUILD.gn
@@ -297,6 +297,7 @@
"../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 4c30dc2..45fd420 100644
--- a/media/engine/convert_legacy_video_factory.cc
+++ b/media/engine/convert_legacy_video_factory.cc
@@ -89,8 +89,8 @@
std::unique_ptr<webrtc::VideoEncoder> 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 @@
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 @@
} // namespace
-std::unique_ptr<webrtc::VideoEncoderFactory> ConvertVideoEncoderFactory(
+std::unique_ptr<webrtc::VideoEncoderFactory>
+DEPRECATED_ConvertVideoEncoderFactory(
std::unique_ptr<WebRtcVideoEncoderFactory> external_encoder_factory) {
return std::unique_ptr<webrtc::VideoEncoderFactory>(
new EncoderAdapter(std::move(external_encoder_factory)));
}
-std::unique_ptr<webrtc::VideoDecoderFactory> ConvertVideoDecoderFactory(
+std::unique_ptr<webrtc::VideoDecoderFactory>
+DEPRECATED_ConvertVideoDecoderFactory(
std::unique_ptr<WebRtcVideoDecoderFactory> external_decoder_factory) {
return std::unique_ptr<webrtc::VideoDecoderFactory>(
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 27383ab..f83415a 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 <memory>
+#include <utility>
+#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 @@
namespace cricket {
-class WebRtcVideoEncoderFactory;
-class WebRtcVideoDecoderFactory;
+RTC_EXPORT std::unique_ptr<webrtc::VideoEncoderFactory>
+DEPRECATED_ConvertVideoEncoderFactory(
+ std::unique_ptr<WebRtcVideoEncoderFactory> external_encoder_factory);
+
+RTC_EXPORT std::unique_ptr<webrtc::VideoDecoderFactory>
+DEPRECATED_ConvertVideoDecoderFactory(
+ std::unique_ptr<WebRtcVideoDecoderFactory> 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<webrtc::VideoEncoderFactory>
+RTC_DEPRECATED RTC_EXPORT inline std::unique_ptr<webrtc::VideoEncoderFactory>
ConvertVideoEncoderFactory(
- std::unique_ptr<WebRtcVideoEncoderFactory> external_encoder_factory);
+ std::unique_ptr<WebRtcVideoEncoderFactory> external_encoder_factory) {
+ return DEPRECATED_ConvertVideoEncoderFactory(
+ std::move(external_encoder_factory));
+}
-RTC_EXPORT std::unique_ptr<webrtc::VideoDecoderFactory>
+RTC_DEPRECATED RTC_EXPORT inline std::unique_ptr<webrtc::VideoDecoderFactory>
ConvertVideoDecoderFactory(
- std::unique_ptr<WebRtcVideoDecoderFactory> external_decoder_factory);
+ std::unique_ptr<WebRtcVideoDecoderFactory> 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 a473aa2..118ab41 100644
--- a/media/engine/scopedvideodecoder.cc
+++ b/media/engine/scopedvideodecoder.cc
@@ -85,7 +85,7 @@
} // namespace
-std::unique_ptr<webrtc::VideoDecoder> CreateScopedVideoDecoder(
+std::unique_ptr<webrtc::VideoDecoder> DEPRECATED_CreateScopedVideoDecoder(
WebRtcVideoDecoderFactory* factory,
const VideoCodec& codec,
VideoDecoderParams params) {
diff --git a/media/engine/scopedvideodecoder.h b/media/engine/scopedvideodecoder.h
index 2857847..fcb3145 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<webrtc::VideoDecoder> 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 @@
// 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<webrtc::VideoDecoder> CreateScopedVideoDecoder(
- cricket::WebRtcVideoDecoderFactory* factory,
- const VideoCodec& codec,
- VideoDecoderParams params);
+RTC_DEPRECATED inline std::unique_ptr<webrtc::VideoDecoder>
+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 b1df115..4ff2c72 100644
--- a/media/engine/scopedvideoencoder.cc
+++ b/media/engine/scopedvideoencoder.cc
@@ -96,7 +96,7 @@
} // namespace
-std::unique_ptr<webrtc::VideoEncoder> CreateScopedVideoEncoder(
+std::unique_ptr<webrtc::VideoEncoder> 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 0d67873..46ad8b0 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<webrtc::VideoEncoder> 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 @@
// 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<webrtc::VideoEncoder> CreateScopedVideoEncoder(
- cricket::WebRtcVideoEncoderFactory* factory,
- const VideoCodec& codec);
+RTC_DEPRECATED inline std::unique_ptr<webrtc::VideoEncoder>
+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 bc7d3c3..844f463 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 @@
std::unique_ptr<VideoEngineInterface> video_engine;
#ifdef HAVE_WEBRTC_VIDEO
video_engine = absl::make_unique<WebRtcVideoEngine>(
- std::unique_ptr<WebRtcVideoEncoderFactory>(video_encoder_factory),
- std::unique_ptr<WebRtcVideoDecoderFactory>(video_decoder_factory),
+ DEPRECATED_ConvertVideoEncoderFactory(
+ std::unique_ptr<WebRtcVideoEncoderFactory>(video_encoder_factory)),
+ DEPRECATED_ConvertVideoDecoderFactory(
+ std::unique_ptr<WebRtcVideoDecoderFactory>(video_decoder_factory)),
std::move(video_bitrate_allocator_factory));
#else
video_engine = absl::make_unique<NullWebRtcVideoEngine>();
diff --git a/media/engine/webrtcmediaengine.h b/media/engine/webrtcmediaengine.h
index fbf4466..9256c0c 100644
--- a/media/engine/webrtcmediaengine.h
+++ b/media/engine/webrtcmediaengine.h
@@ -43,7 +43,7 @@
// 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<webrtc::AudioEncoderFactory>&
audio_encoder_factory,
@@ -52,7 +52,7 @@
WebRtcVideoEncoderFactory* video_encoder_factory,
WebRtcVideoDecoderFactory* video_decoder_factory);
- static MediaEngineInterface* Create(
+ RTC_DEPRECATED static MediaEngineInterface* Create(
webrtc::AudioDeviceModule* adm,
const rtc::scoped_refptr<webrtc::AudioEncoderFactory>&
audio_encoder_factory,
@@ -63,7 +63,7 @@
rtc::scoped_refptr<webrtc::AudioMixer> audio_mixer,
rtc::scoped_refptr<webrtc::AudioProcessing> apm);
- static MediaEngineInterface* Create(
+ RTC_DEPRECATED static MediaEngineInterface* Create(
webrtc::AudioDeviceModule* adm,
const rtc::scoped_refptr<webrtc::AudioEncoderFactory>&
audio_encoder_factory,
@@ -74,7 +74,7 @@
std::unique_ptr<webrtc::VideoBitrateAllocatorFactory>
video_bitrate_allocator_factory);
- static MediaEngineInterface* Create(
+ RTC_DEPRECATED static MediaEngineInterface* Create(
webrtc::AudioDeviceModule* adm,
const rtc::scoped_refptr<webrtc::AudioEncoderFactory>&
audio_encoder_factory,
diff --git a/media/engine/webrtcvideoengine.h b/media/engine/webrtcvideoengine.h
index 3b79ad4..a93453d 100644
--- a/media/engine/webrtcvideoengine.h
+++ b/media/engine/webrtcvideoengine.h
@@ -83,7 +83,7 @@
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<WebRtcVideoEncoderFactory> external_video_encoder_factory,
std::unique_ptr<WebRtcVideoDecoderFactory> external_video_decoder_factory,
std::unique_ptr<webrtc::VideoBitrateAllocatorFactory>