ObjC SDK: Stop using built-in SW video codecs
This CL removes the use of default built-in SW in the ObjC layer. If a
client want to depend on the video SW codecs, they must inject them
explicitly.
Bug: webrtc:7925
Change-Id: If752e7f02109ff768dc5ec38d935203de85987c2
Reviewed-on: https://webrtc-review.googlesource.com/69800
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23073}diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn
index 8f8027e..bc7fa36 100644
--- a/sdk/BUILD.gn
+++ b/sdk/BUILD.gn
@@ -407,13 +407,9 @@
":common_objc",
":native_video",
":videocodec_objc",
+ ":vp8",
+ ":vp9",
]
- if (rtc_use_builtin_sw_codecs) {
- deps += [
- ":vp8",
- ":vp9",
- ]
- }
}
rtc_static_library("vp8") {
@@ -826,6 +822,7 @@
":videosource_objc",
":videotoolbox_objc",
"../../system_wrappers:system_wrappers_default",
+ "../api/video_codecs:video_codecs_api",
"../media:rtc_media_base",
"../modules:module_api",
"../modules/video_coding:video_codec_interface",
@@ -902,15 +899,12 @@
"objc/Framework/Headers/WebRTC/RTCVideoTrack.h",
"objc/Framework/Headers/WebRTC/RTCVideoViewShading.h",
"objc/Framework/Headers/WebRTC/UIDevice+RTCDevice.h",
+ "objc/Framework/Headers/WebRTC/RTCVideoDecoderVP8.h",
+ "objc/Framework/Headers/WebRTC/RTCVideoDecoderVP9.h",
+ "objc/Framework/Headers/WebRTC/RTCVideoEncoderVP8.h",
+ "objc/Framework/Headers/WebRTC/RTCVideoEncoderVP9.h",
]
- if (rtc_use_builtin_sw_codecs) {
- common_objc_headers += [
- "objc/Framework/Headers/WebRTC/RTCVideoDecoderVP8.h",
- "objc/Framework/Headers/WebRTC/RTCVideoDecoderVP9.h",
- "objc/Framework/Headers/WebRTC/RTCVideoEncoderVP8.h",
- "objc/Framework/Headers/WebRTC/RTCVideoEncoderVP9.h",
- ]
- }
+
if (!build_with_chromium) {
common_objc_headers += [
"objc/Framework/Headers/WebRTC/RTCCallbackLogger.h",
diff --git a/sdk/objc/Framework/Classes/PeerConnection/RTCDefaultVideoDecoderFactory.m b/sdk/objc/Framework/Classes/PeerConnection/RTCDefaultVideoDecoderFactory.m
index 405e8c8..5f292c9 100644
--- a/sdk/objc/Framework/Classes/PeerConnection/RTCDefaultVideoDecoderFactory.m
+++ b/sdk/objc/Framework/Classes/PeerConnection/RTCDefaultVideoDecoderFactory.m
@@ -11,11 +11,9 @@
#import "WebRTC/RTCVideoCodecFactory.h"
#import "WebRTC/RTCVideoCodecH264.h"
-#if defined(USE_BUILTIN_SW_CODECS)
-#import "WebRTC/RTCVideoDecoderVP8.h" // nogncheck
+#import "WebRTC/RTCVideoDecoderVP8.h"
#if !defined(RTC_DISABLE_VP9)
-#import "WebRTC/RTCVideoDecoderVP9.h" // nogncheck
-#endif
+#import "WebRTC/RTCVideoDecoderVP9.h"
#endif
@implementation RTCDefaultVideoDecoderFactory
@@ -23,14 +21,12 @@
- (id<RTCVideoDecoder>)createDecoder:(RTCVideoCodecInfo *)info {
if ([info.name isEqualToString:kRTCVideoCodecH264Name]) {
return [[RTCVideoDecoderH264 alloc] init];
-#if defined(USE_BUILTIN_SW_CODECS)
} else if ([info.name isEqualToString:kRTCVideoCodecVp8Name]) {
return [RTCVideoDecoderVP8 vp8Decoder];
#if !defined(RTC_DISABLE_VP9)
} else if ([info.name isEqualToString:kRTCVideoCodecVp9Name]) {
return [RTCVideoDecoderVP9 vp9Decoder];
#endif
-#endif
}
return nil;
@@ -39,12 +35,10 @@
- (NSArray<RTCVideoCodecInfo *> *)supportedCodecs {
return @[
[[RTCVideoCodecInfo alloc] initWithName:kRTCVideoCodecH264Name],
-#if defined(USE_BUILTIN_SW_CODECS)
[[RTCVideoCodecInfo alloc] initWithName:kRTCVideoCodecVp8Name],
#if !defined(RTC_DISABLE_VP9)
[[RTCVideoCodecInfo alloc] initWithName:kRTCVideoCodecVp9Name],
#endif
-#endif
];
}
diff --git a/sdk/objc/Framework/Classes/PeerConnection/RTCDefaultVideoEncoderFactory.m b/sdk/objc/Framework/Classes/PeerConnection/RTCDefaultVideoEncoderFactory.m
index 60a0b5f..a4b8d71 100644
--- a/sdk/objc/Framework/Classes/PeerConnection/RTCDefaultVideoEncoderFactory.m
+++ b/sdk/objc/Framework/Classes/PeerConnection/RTCDefaultVideoEncoderFactory.m
@@ -12,11 +12,9 @@
#import "WebRTC/RTCVideoCodec.h"
#import "WebRTC/RTCVideoCodecH264.h"
-#if defined(USE_BUILTIN_SW_CODECS)
-#import "WebRTC/RTCVideoEncoderVP8.h" // nogncheck
+#import "WebRTC/RTCVideoEncoderVP8.h"
#if !defined(RTC_DISABLE_VP9)
-#import "WebRTC/RTCVideoEncoderVP9.h" // nogncheck
-#endif
+#import "WebRTC/RTCVideoEncoderVP9.h"
#endif
@implementation RTCDefaultVideoEncoderFactory
@@ -42,37 +40,31 @@
[[RTCVideoCodecInfo alloc] initWithName:kRTCVideoCodecH264Name
parameters:constrainedBaselineParams];
-#if defined(USE_BUILTIN_SW_CODECS)
RTCVideoCodecInfo *vp8Info = [[RTCVideoCodecInfo alloc] initWithName:kRTCVideoCodecVp8Name];
#if !defined(RTC_DISABLE_VP9)
RTCVideoCodecInfo *vp9Info = [[RTCVideoCodecInfo alloc] initWithName:kRTCVideoCodecVp9Name];
#endif
-#endif
return @[
constrainedHighInfo,
constrainedBaselineInfo,
-#if defined(USE_BUILTIN_SW_CODECS)
vp8Info,
#if !defined(RTC_DISABLE_VP9)
vp9Info,
#endif
-#endif
];
}
- (id<RTCVideoEncoder>)createEncoder:(RTCVideoCodecInfo *)info {
if ([info.name isEqualToString:kRTCVideoCodecH264Name]) {
return [[RTCVideoEncoderH264 alloc] initWithCodecInfo:info];
-#if defined(USE_BUILTIN_SW_CODECS)
} else if ([info.name isEqualToString:kRTCVideoCodecVp8Name]) {
return [RTCVideoEncoderVP8 vp8Encoder];
#if !defined(RTC_DISABLE_VP9)
} else if ([info.name isEqualToString:kRTCVideoCodecVp9Name]) {
return [RTCVideoEncoderVP9 vp9Encoder];
#endif
-#endif
}
return nil;
diff --git a/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Native.h b/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Native.h
index 3b0e930..3d460fe 100644
--- a/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Native.h
+++ b/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Native.h
@@ -23,15 +23,6 @@
} // namespace webrtc
-#if defined(USE_BUILTIN_SW_CODECS)
-namespace cricket {
-
-class WebRtcVideoEncoderFactory;
-class WebRtcVideoDecoderFactory;
-
-} // namespace cricket
-#endif
-
NS_ASSUME_NONNULL_BEGIN
/**
@@ -58,20 +49,6 @@
audioProcessingModule:
(rtc::scoped_refptr<webrtc::AudioProcessing>)audioProcessingModule;
-#if defined(USE_BUILTIN_SW_CODECS)
-/* Initialize object with legacy injectable native audio/video encoder/decoder factories
- TODO(andersc): Remove this when backwards compatiblity is no longer needed.
- */
-- (instancetype)
- initWithNativeAudioEncoderFactory:
- (rtc::scoped_refptr<webrtc::AudioEncoderFactory>)audioEncoderFactory
- nativeAudioDecoderFactory:
- (rtc::scoped_refptr<webrtc::AudioDecoderFactory>)audioDecoderFactory
- legacyNativeVideoEncoderFactory:(cricket::WebRtcVideoEncoderFactory*)videoEncoderFactory
- legacyNativeVideoDecoderFactory:(cricket::WebRtcVideoDecoderFactory*)videoDecoderFactory
- audioDeviceModule:(nullable webrtc::AudioDeviceModule *)audioDeviceModule;
-#endif
-
@end
NS_ASSUME_NONNULL_END
diff --git a/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm b/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm
index 31ba49e..1ae458f 100644
--- a/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm
+++ b/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm
@@ -58,7 +58,7 @@
- (instancetype)init {
#ifdef HAVE_NO_MEDIA
return [self initWithNoMedia];
-#elif !defined(USE_BUILTIN_SW_CODECS)
+#else
return [self initWithNativeAudioEncoderFactory:webrtc::CreateBuiltinAudioEncoderFactory()
nativeAudioDecoderFactory:webrtc::CreateBuiltinAudioDecoderFactory()
nativeVideoEncoderFactory:webrtc::ObjCToNativeVideoEncoderFactory(
@@ -67,18 +67,6 @@
[[RTCVideoDecoderFactoryH264 alloc] init])
audioDeviceModule:nullptr
audioProcessingModule:nullptr];
-#else
- // Here we construct webrtc::ObjCVideoEncoderFactory directly because we rely
- // on the fact that they inherit from both webrtc::VideoEncoderFactory and
- // cricket::WebRtcVideoEncoderFactory.
- return [self initWithNativeAudioEncoderFactory:webrtc::CreateBuiltinAudioEncoderFactory()
- nativeAudioDecoderFactory:webrtc::CreateBuiltinAudioDecoderFactory()
- legacyNativeVideoEncoderFactory:new webrtc::ObjCVideoEncoderFactory(
- [[RTCVideoEncoderFactoryH264 alloc] init])
- legacyNativeVideoDecoderFactory:new webrtc::ObjCVideoDecoderFactory(
- [[RTCVideoDecoderFactoryH264 alloc] init])
- audioDeviceModule:nullptr];
-
#endif
}
@@ -151,18 +139,6 @@
return [self initWithNoMedia];
#else
if (self = [self initNative]) {
-#if defined(USE_BUILTIN_SW_CODECS)
- if (!videoEncoderFactory) {
- auto legacy_video_encoder_factory = rtc::MakeUnique<webrtc::ObjCVideoEncoderFactory>(
- [[RTCVideoEncoderFactoryH264 alloc] init]);
- videoEncoderFactory = ConvertVideoEncoderFactory(std::move(legacy_video_encoder_factory));
- }
- if (!videoDecoderFactory) {
- auto legacy_video_decoder_factory = rtc::MakeUnique<webrtc::ObjCVideoDecoderFactory>(
- [[RTCVideoDecoderFactoryH264 alloc] init]);
- videoDecoderFactory = ConvertVideoDecoderFactory(std::move(legacy_video_decoder_factory));
- }
-#endif
_nativeFactory = webrtc::CreatePeerConnectionFactory(_networkThread.get(),
_workerThread.get(),
_signalingThread.get(),
@@ -179,34 +155,6 @@
#endif
}
-#if defined(USE_BUILTIN_SW_CODECS)
-- (instancetype)
- initWithNativeAudioEncoderFactory:
- (rtc::scoped_refptr<webrtc::AudioEncoderFactory>)audioEncoderFactory
- nativeAudioDecoderFactory:
- (rtc::scoped_refptr<webrtc::AudioDecoderFactory>)audioDecoderFactory
- legacyNativeVideoEncoderFactory:(cricket::WebRtcVideoEncoderFactory *)videoEncoderFactory
- legacyNativeVideoDecoderFactory:(cricket::WebRtcVideoDecoderFactory *)videoDecoderFactory
- audioDeviceModule:(nullable webrtc::AudioDeviceModule *)audioDeviceModule {
-#ifdef HAVE_NO_MEDIA
- return [self initWithNoMedia];
-#else
- if (self = [self initNative]) {
- _nativeFactory = webrtc::CreatePeerConnectionFactory(_networkThread.get(),
- _workerThread.get(),
- _signalingThread.get(),
- audioDeviceModule,
- audioEncoderFactory,
- audioDecoderFactory,
- videoEncoderFactory,
- videoDecoderFactory);
- NSAssert(_nativeFactory, @"Failed to initialize PeerConnectionFactory!");
- }
- return self;
-#endif
-}
-#endif
-
- (RTCAudioSource *)audioSourceWithConstraints:(nullable RTCMediaConstraints *)constraints {
std::unique_ptr<webrtc::MediaConstraints> nativeConstraints;
if (constraints) {
diff --git a/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec+Private.h b/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec+Private.h
index 97ee513..4a2cf52 100644
--- a/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec+Private.h
+++ b/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec+Private.h
@@ -53,10 +53,6 @@
- (instancetype)initWithNativeSdpVideoFormat:(webrtc::SdpVideoFormat)format;
- (webrtc::SdpVideoFormat)nativeSdpVideoFormat;
-/* TODO(andersc): These are deprecated, remove when no longer in use. */
-- (instancetype)initWithNativeVideoCodec:(cricket::VideoCodec)videoCodec;
-- (cricket::VideoCodec)nativeVideoCodec;
-
@end
NS_ASSUME_NONNULL_END
diff --git a/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec.mm b/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec.mm
index fc2c1ce..63be2dc 100644
--- a/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec.mm
+++ b/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec.mm
@@ -105,11 +105,6 @@
return [self initWithName:[NSString stringForStdString:format.name] parameters:params];
}
-- (instancetype)initWithNativeVideoCodec:(cricket::VideoCodec)videoCodec {
- return [self
- initWithNativeSdpVideoFormat:webrtc::SdpVideoFormat(videoCodec.name, videoCodec.params)];
-}
-
- (BOOL)isEqualToCodecInfo:(RTCVideoCodecInfo *)info {
if (!info ||
![self.name isEqualToString:info.name] ||
@@ -142,16 +137,6 @@
return webrtc::SdpVideoFormat([NSString stdStringForString:_name], parameters);
}
-- (cricket::VideoCodec)nativeVideoCodec {
- cricket::VideoCodec codec([NSString stdStringForString:_name]);
- for (NSString *paramKey in _parameters.allKeys) {
- codec.SetParam([NSString stdStringForString:paramKey],
- [NSString stdStringForString:_parameters[paramKey]]);
- }
-
- return codec;
-}
-
#pragma mark - NSCoding
- (instancetype)initWithCoder:(NSCoder *)decoder {
diff --git a/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm b/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm
index 3289f01..ffdbd9d 100644
--- a/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm
+++ b/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm
@@ -167,8 +167,8 @@
rotation:encodeParams->rotation];
}
-// Extract VideoToolbox profile out of the cricket::VideoCodec. If there is no
-// specific VideoToolbox profile for the specified level, AutoLevel will be
+// Extract VideoToolbox profile out of the webrtc::SdpVideoFormat. If there is
+// no specific VideoToolbox profile for the specified level, AutoLevel will be
// returned. The user must initialize the encoder with a resolution and
// framerate conforming to the selected H264 level regardless.
CFStringRef ExtractProfile(webrtc::SdpVideoFormat videoFormat) {
diff --git a/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h b/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h
index c179b92..063963d 100644
--- a/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h
+++ b/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h
@@ -90,7 +90,7 @@
RTCVideoCodecModeScreensharing,
};
-/** Holds information to identify a codec. Corresponds to cricket::VideoCodec. */
+/** Holds information to identify a codec. Corresponds to webrtc::SdpVideoFormat. */
RTC_EXPORT
@interface RTCVideoCodecInfo : NSObject <NSCoding>
diff --git a/sdk/objc/Framework/Native/src/objc_video_decoder_factory.h b/sdk/objc/Framework/Native/src/objc_video_decoder_factory.h
index fdd6feb..2967b0a 100644
--- a/sdk/objc/Framework/Native/src/objc_video_decoder_factory.h
+++ b/sdk/objc/Framework/Native/src/objc_video_decoder_factory.h
@@ -13,16 +13,12 @@
#include "api/video_codecs/video_decoder_factory.h"
#include "media/base/codec.h"
-#include "media/engine/webrtcvideodecoderfactory.h"
@protocol RTCVideoDecoderFactory;
namespace webrtc {
-// TODO(andersc): Remove the inheritance from cricket::WebRtcVideoDecoderFactory
-// when the legacy path in [RTCPeerConnectionFactory init] is no longer needed.
-class ObjCVideoDecoderFactory : public VideoDecoderFactory,
- public cricket::WebRtcVideoDecoderFactory {
+class ObjCVideoDecoderFactory : public VideoDecoderFactory {
public:
explicit ObjCVideoDecoderFactory(id<RTCVideoDecoderFactory>);
~ObjCVideoDecoderFactory();
@@ -33,13 +29,6 @@
std::unique_ptr<VideoDecoder> CreateVideoDecoder(
const SdpVideoFormat& format) override;
- // Needed for WebRtcVideoDecoderFactory interface.
- VideoDecoder* CreateVideoDecoderWithParams(
- const cricket::VideoCodec& codec,
- cricket::VideoDecoderParams params) override;
- VideoDecoder* CreateVideoDecoder(VideoCodecType type) override;
- void DestroyVideoDecoder(VideoDecoder* decoder) override;
-
private:
id<RTCVideoDecoderFactory> decoder_factory_;
};
diff --git a/sdk/objc/Framework/Native/src/objc_video_decoder_factory.mm b/sdk/objc/Framework/Native/src/objc_video_decoder_factory.mm
index 051f19d..3d7869f 100644
--- a/sdk/objc/Framework/Native/src/objc_video_decoder_factory.mm
+++ b/sdk/objc/Framework/Native/src/objc_video_decoder_factory.mm
@@ -150,22 +150,4 @@
return supported_formats;
}
-// WebRtcVideoDecoderFactory
-
-VideoDecoder *ObjCVideoDecoderFactory::CreateVideoDecoderWithParams(
- const cricket::VideoCodec &codec, cricket::VideoDecoderParams params) {
- return CreateVideoDecoder(SdpVideoFormat(codec.name, codec.params)).release();
-}
-
-VideoDecoder *ObjCVideoDecoderFactory::CreateVideoDecoder(VideoCodecType type) {
- // This is implemented to avoid hiding an overloaded virtual function
- RTC_NOTREACHED();
- return nullptr;
-}
-
-void ObjCVideoDecoderFactory::DestroyVideoDecoder(VideoDecoder *decoder) {
- delete decoder;
- decoder = nullptr;
-}
-
} // namespace webrtc
diff --git a/sdk/objc/Framework/Native/src/objc_video_encoder_factory.h b/sdk/objc/Framework/Native/src/objc_video_encoder_factory.h
index 42ffd53..8c3a5a8 100644
--- a/sdk/objc/Framework/Native/src/objc_video_encoder_factory.h
+++ b/sdk/objc/Framework/Native/src/objc_video_encoder_factory.h
@@ -14,16 +14,12 @@
#import <Foundation/Foundation.h>
#include "api/video_codecs/video_encoder_factory.h"
-#include "media/engine/webrtcvideoencoderfactory.h"
@protocol RTCVideoEncoderFactory;
namespace webrtc {
-// TODO(andersc): Remove the inheritance from cricket::WebRtcVideoEncoderFactory
-// when the legacy path in [RTCPeerConnectionFactory init] is no longer needed.
-class ObjCVideoEncoderFactory : public VideoEncoderFactory,
- public cricket::WebRtcVideoEncoderFactory {
+class ObjCVideoEncoderFactory : public VideoEncoderFactory {
public:
explicit ObjCVideoEncoderFactory(id<RTCVideoEncoderFactory>);
~ObjCVideoEncoderFactory();
@@ -35,16 +31,8 @@
const SdpVideoFormat& format) override;
CodecInfo QueryVideoEncoder(const SdpVideoFormat& format) const override;
- // Needed for WebRtcVideoEncoderFactory interface.
- VideoEncoder* CreateVideoEncoder(const cricket::VideoCodec& codec) override;
- const std::vector<cricket::VideoCodec>& supported_codecs() const override;
- void DestroyVideoEncoder(VideoEncoder* encoder) override;
-
private:
id<RTCVideoEncoderFactory> encoder_factory_;
-
- // Needed for WebRtcVideoEncoderFactory interface.
- mutable std::vector<cricket::VideoCodec> supported_codecs_;
};
} // namespace webrtc
diff --git a/sdk/objc/Framework/Native/src/objc_video_encoder_factory.mm b/sdk/objc/Framework/Native/src/objc_video_encoder_factory.mm
index 59356f7..6de3d69 100644
--- a/sdk/objc/Framework/Native/src/objc_video_encoder_factory.mm
+++ b/sdk/objc/Framework/Native/src/objc_video_encoder_factory.mm
@@ -160,28 +160,4 @@
}
}
-// WebRtcVideoEncoderFactory
-
-VideoEncoder *ObjCVideoEncoderFactory::CreateVideoEncoder(const cricket::VideoCodec &codec) {
- RTCVideoCodecInfo *info = [[RTCVideoCodecInfo alloc]
- initWithNativeSdpVideoFormat:SdpVideoFormat(codec.name, codec.params)];
- id<RTCVideoEncoder> encoder = [encoder_factory_ createEncoder:info];
- return new ObjCVideoEncoder(encoder);
-}
-
-const std::vector<cricket::VideoCodec> &ObjCVideoEncoderFactory::supported_codecs() const {
- supported_codecs_.clear();
- for (RTCVideoCodecInfo *supportedCodec in encoder_factory_.supportedCodecs) {
- SdpVideoFormat format = [supportedCodec nativeSdpVideoFormat];
- supported_codecs_.push_back(cricket::VideoCodec(format));
- }
-
- return supported_codecs_;
-}
-
-void ObjCVideoEncoderFactory::DestroyVideoEncoder(VideoEncoder *encoder) {
- delete encoder;
- encoder = nullptr;
-}
-
} // namespace webrtc
diff --git a/sdk/objc/Framework/UnitTests/objc_video_decoder_factory_tests.mm b/sdk/objc/Framework/UnitTests/objc_video_decoder_factory_tests.mm
index d4e5ea9..b002ed2 100644
--- a/sdk/objc/Framework/UnitTests/objc_video_decoder_factory_tests.mm
+++ b/sdk/objc/Framework/UnitTests/objc_video_decoder_factory_tests.mm
@@ -55,30 +55,29 @@
return CreateDecoderFactoryReturning(WEBRTC_VIDEO_CODEC_ERROR);
}
-webrtc::VideoDecoder *GetObjCDecoder(id<RTCVideoDecoderFactory> factory) {
+std::unique_ptr<webrtc::VideoDecoder> GetObjCDecoder(id<RTCVideoDecoderFactory> factory) {
webrtc::ObjCVideoDecoderFactory decoder_factory(factory);
- return decoder_factory.CreateVideoDecoderWithParams(cricket::VideoCodec(cricket::kH264CodecName),
- {});
+ return decoder_factory.CreateVideoDecoder(webrtc::SdpVideoFormat(cricket::kH264CodecName));
}
#pragma mark -
TEST(ObjCVideoDecoderFactoryTest, InitDecodeReturnsOKOnSuccess) {
- webrtc::VideoDecoder *decoder = GetObjCDecoder(CreateOKDecoderFactory());
+ std::unique_ptr<webrtc::VideoDecoder> decoder = GetObjCDecoder(CreateOKDecoderFactory());
auto settings = new webrtc::VideoCodec();
EXPECT_EQ(decoder->InitDecode(settings, 1), WEBRTC_VIDEO_CODEC_OK);
}
TEST(ObjCVideoDecoderFactoryTest, InitDecodeReturnsErrorOnFail) {
- webrtc::VideoDecoder *decoder = GetObjCDecoder(CreateErrorDecoderFactory());
+ std::unique_ptr<webrtc::VideoDecoder> decoder = GetObjCDecoder(CreateErrorDecoderFactory());
auto settings = new webrtc::VideoCodec();
EXPECT_EQ(decoder->InitDecode(settings, 1), WEBRTC_VIDEO_CODEC_ERROR);
}
TEST(ObjCVideoDecoderFactoryTest, DecodeReturnsOKOnSuccess) {
- webrtc::VideoDecoder *decoder = GetObjCDecoder(CreateOKDecoderFactory());
+ std::unique_ptr<webrtc::VideoDecoder> decoder = GetObjCDecoder(CreateOKDecoderFactory());
webrtc::EncodedImage encoded_image;
webrtc::CodecSpecificInfo info;
@@ -88,7 +87,7 @@
}
TEST(ObjCVideoDecoderFactoryTest, DecodeReturnsErrorOnFail) {
- webrtc::VideoDecoder *decoder = GetObjCDecoder(CreateErrorDecoderFactory());
+ std::unique_ptr<webrtc::VideoDecoder> decoder = GetObjCDecoder(CreateErrorDecoderFactory());
webrtc::EncodedImage encoded_image;
webrtc::CodecSpecificInfo info;
@@ -98,13 +97,13 @@
}
TEST(ObjCVideoDecoderFactoryTest, ReleaseDecodeReturnsOKOnSuccess) {
- webrtc::VideoDecoder *decoder = GetObjCDecoder(CreateOKDecoderFactory());
+ std::unique_ptr<webrtc::VideoDecoder> decoder = GetObjCDecoder(CreateOKDecoderFactory());
EXPECT_EQ(decoder->Release(), WEBRTC_VIDEO_CODEC_OK);
}
TEST(ObjCVideoDecoderFactoryTest, ReleaseDecodeReturnsErrorOnFail) {
- webrtc::VideoDecoder *decoder = GetObjCDecoder(CreateErrorDecoderFactory());
+ std::unique_ptr<webrtc::VideoDecoder> decoder = GetObjCDecoder(CreateErrorDecoderFactory());
EXPECT_EQ(decoder->Release(), WEBRTC_VIDEO_CODEC_ERROR);
}
diff --git a/sdk/objc/Framework/UnitTests/objc_video_encoder_factory_tests.mm b/sdk/objc/Framework/UnitTests/objc_video_encoder_factory_tests.mm
index b3925be..2ae1ebb 100644
--- a/sdk/objc/Framework/UnitTests/objc_video_encoder_factory_tests.mm
+++ b/sdk/objc/Framework/UnitTests/objc_video_encoder_factory_tests.mm
@@ -16,6 +16,7 @@
#import "WebRTC/RTCVideoCodec.h"
#import "WebRTC/RTCVideoCodecFactory.h"
#import "WebRTC/RTCVideoFrameBuffer.h"
+#include "api/video_codecs/sdp_video_format.h"
#include "modules/include/module_common_types.h"
#include "modules/video_coding/include/video_codec_interface.h"
#include "modules/video_coding/include/video_error_codes.h"
@@ -46,30 +47,30 @@
return CreateEncoderFactoryReturning(WEBRTC_VIDEO_CODEC_ERROR);
}
-webrtc::VideoEncoder *GetObjCEncoder(id<RTCVideoEncoderFactory> factory) {
+std::unique_ptr<webrtc::VideoEncoder> GetObjCEncoder(id<RTCVideoEncoderFactory> factory) {
webrtc::ObjCVideoEncoderFactory encoder_factory(factory);
- cricket::VideoCodec codec("H264");
- return encoder_factory.CreateVideoEncoder(codec);
+ webrtc::SdpVideoFormat format("H264");
+ return encoder_factory.CreateVideoEncoder(format);
}
#pragma mark -
TEST(ObjCVideoEncoderFactoryTest, InitEncodeReturnsOKOnSuccess) {
- webrtc::VideoEncoder *encoder = GetObjCEncoder(CreateOKEncoderFactory());
+ std::unique_ptr<webrtc::VideoEncoder> encoder = GetObjCEncoder(CreateOKEncoderFactory());
auto settings = new webrtc::VideoCodec();
EXPECT_EQ(encoder->InitEncode(settings, 1, 0), WEBRTC_VIDEO_CODEC_OK);
}
TEST(ObjCVideoEncoderFactoryTest, InitEncodeReturnsErrorOnFail) {
- webrtc::VideoEncoder *encoder = GetObjCEncoder(CreateErrorEncoderFactory());
+ std::unique_ptr<webrtc::VideoEncoder> encoder = GetObjCEncoder(CreateErrorEncoderFactory());
auto settings = new webrtc::VideoCodec();
EXPECT_EQ(encoder->InitEncode(settings, 1, 0), WEBRTC_VIDEO_CODEC_ERROR);
}
TEST(ObjCVideoEncoderFactoryTest, EncodeReturnsOKOnSuccess) {
- webrtc::VideoEncoder *encoder = GetObjCEncoder(CreateOKEncoderFactory());
+ std::unique_ptr<webrtc::VideoEncoder> encoder = GetObjCEncoder(CreateOKEncoderFactory());
CVPixelBufferRef pixel_buffer;
CVPixelBufferCreate(kCFAllocatorDefault, 640, 480, kCVPixelFormatType_32ARGB, nil, &pixel_buffer);
@@ -86,7 +87,7 @@
}
TEST(ObjCVideoEncoderFactoryTest, EncodeReturnsErrorOnFail) {
- webrtc::VideoEncoder *encoder = GetObjCEncoder(CreateErrorEncoderFactory());
+ std::unique_ptr<webrtc::VideoEncoder> encoder = GetObjCEncoder(CreateErrorEncoderFactory());
CVPixelBufferRef pixel_buffer;
CVPixelBufferCreate(kCFAllocatorDefault, 640, 480, kCVPixelFormatType_32ARGB, nil, &pixel_buffer);
@@ -103,31 +104,31 @@
}
TEST(ObjCVideoEncoderFactoryTest, ReleaseEncodeReturnsOKOnSuccess) {
- webrtc::VideoEncoder *encoder = GetObjCEncoder(CreateOKEncoderFactory());
+ std::unique_ptr<webrtc::VideoEncoder> encoder = GetObjCEncoder(CreateOKEncoderFactory());
EXPECT_EQ(encoder->Release(), WEBRTC_VIDEO_CODEC_OK);
}
TEST(ObjCVideoEncoderFactoryTest, ReleaseEncodeReturnsErrorOnFail) {
- webrtc::VideoEncoder *encoder = GetObjCEncoder(CreateErrorEncoderFactory());
+ std::unique_ptr<webrtc::VideoEncoder> encoder = GetObjCEncoder(CreateErrorEncoderFactory());
EXPECT_EQ(encoder->Release(), WEBRTC_VIDEO_CODEC_ERROR);
}
TEST(ObjCVideoEncoderFactoryTest, SetChannelParametersAlwaysReturnsOK) {
- webrtc::VideoEncoder *encoder = GetObjCEncoder(CreateErrorEncoderFactory());
+ std::unique_ptr<webrtc::VideoEncoder> encoder = GetObjCEncoder(CreateErrorEncoderFactory());
EXPECT_EQ(encoder->SetChannelParameters(1, 1), WEBRTC_VIDEO_CODEC_OK);
}
TEST(ObjCVideoEncoderFactoryTest, SetRatesReturnsOKOnSuccess) {
- webrtc::VideoEncoder *encoder = GetObjCEncoder(CreateOKEncoderFactory());
+ std::unique_ptr<webrtc::VideoEncoder> encoder = GetObjCEncoder(CreateOKEncoderFactory());
EXPECT_EQ(encoder->SetRates(0, 0), WEBRTC_VIDEO_CODEC_OK);
}
TEST(ObjCVideoEncoderFactoryTest, SetRatesReturnsErrorOnFail) {
- webrtc::VideoEncoder *encoder = GetObjCEncoder(CreateErrorEncoderFactory());
+ std::unique_ptr<webrtc::VideoEncoder> encoder = GetObjCEncoder(CreateErrorEncoderFactory());
EXPECT_EQ(encoder->SetRates(0, 0), WEBRTC_VIDEO_CODEC_ERROR);
}