From 8eab09c77b01783aef5323a0ed9d0200c76e1ade Mon Sep 17 00:00:00 2001 From: magjed Date: Mon, 31 Jul 2017 02:56:35 -0700 Subject: [PATCH] ObjC style fix for injectable video codecs This CL fixes some ObjC style issues from CL https://codereview.webrtc.org/2977213002/. BUG=webrtc:7924 Review-Url: https://codereview.webrtc.org/2989803002 Cr-Commit-Position: refs/heads/master@{#19186} --- .../Classes/PeerConnection/RTCEncodedImage.mm | 2 +- .../RTCRtpFragmentationHeader.mm | 4 ++-- .../PeerConnection/RTCVideoCodec+Private.h | 16 ++++++++-------- .../Classes/PeerConnection/RTCVideoCodec.mm | 4 ++-- .../PeerConnection/RTCVideoCodecH264.mm | 19 ++++++++++--------- .../PeerConnection/RTCVideoEncoderSettings.mm | 4 ++-- .../objc_video_decoder_factory.mm | 4 ++-- .../objc_video_encoder_factory.mm | 13 +++++++------ .../Headers/WebRTC/RTCPeerConnectionFactory.h | 2 +- .../Framework/Headers/WebRTC/RTCVideoCodec.h | 4 ++-- 10 files changed, 37 insertions(+), 35 deletions(-) diff --git a/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCEncodedImage.mm b/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCEncodedImage.mm index 957372ce4b..d386ff761f 100644 --- a/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCEncodedImage.mm +++ b/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCEncodedImage.mm @@ -51,7 +51,7 @@ return self; } -- (webrtc::EncodedImage)toCpp { +- (webrtc::EncodedImage)nativeEncodedImage { // Return the pointer without copying. webrtc::EncodedImage encodedImage( (uint8_t *)_buffer.bytes, (size_t)_buffer.length, (size_t)_buffer.length); diff --git a/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCRtpFragmentationHeader.mm b/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCRtpFragmentationHeader.mm index 2f9dcfaf53..541fd45bb6 100644 --- a/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCRtpFragmentationHeader.mm +++ b/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCRtpFragmentationHeader.mm @@ -19,7 +19,7 @@ @synthesize fragmentationTimeDiff = _fragmentationTimeDiff; @synthesize fragmentationPlType = _fragmentationPlType; -- (instancetype)initWithFragmentationHeader: +- (instancetype)initWithNativeFragmentationHeader: (const webrtc::RTPFragmentationHeader *)fragmentationHeader { if (self = [super init]) { if (fragmentationHeader) { @@ -44,7 +44,7 @@ return self; } -- (std::unique_ptr)toCpp { +- (std::unique_ptr)createNativeFragmentationHeader { auto fragmentationHeader = std::unique_ptr(new webrtc::RTPFragmentationHeader); fragmentationHeader->VerifyAndAllocateFragmentationHeader(_fragmentationOffset.count); diff --git a/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec+Private.h b/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec+Private.h index 58e56032b0..ddd2e4e62d 100644 --- a/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec+Private.h +++ b/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec+Private.h @@ -22,35 +22,35 @@ NS_ASSUME_NONNULL_BEGIN @interface RTCEncodedImage () - (instancetype)initWithNativeEncodedImage:(webrtc::EncodedImage)encodedImage; -- (webrtc::EncodedImage)toCpp; +- (webrtc::EncodedImage)nativeEncodedImage; @end @interface RTCVideoEncoderSettings () -- (instancetype)initWithVideoCodec:(const webrtc::VideoCodec *__nullable)videoCodec; -- (std::unique_ptr)toCpp; +- (instancetype)initWithNativeVideoCodec:(const webrtc::VideoCodec *__nullable)videoCodec; +- (std::unique_ptr)createNativeVideoEncoderSettings; @end @interface RTCCodecSpecificInfoH264 () -- (webrtc::CodecSpecificInfo)toCpp; +- (webrtc::CodecSpecificInfo)nativeCodecSpecificInfo; @end @interface RTCRtpFragmentationHeader () -- (instancetype)initWithFragmentationHeader: +- (instancetype)initWithNativeFragmentationHeader: (const webrtc::RTPFragmentationHeader *__nullable)fragmentationHeader; -- (std::unique_ptr)toCpp; +- (std::unique_ptr)createNativeFragmentationHeader; @end @interface RTCVideoCodecInfo () -- (instancetype)initWithVideoCodec:(cricket::VideoCodec)videoCodec; -- (cricket::VideoCodec)toCpp; +- (instancetype)initWithNativeVideoCodec:(cricket::VideoCodec)videoCodec; +- (cricket::VideoCodec)nativeVideoCodec; @end diff --git a/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec.mm b/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec.mm index f627ba87e8..73c9a71480 100644 --- a/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec.mm +++ b/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec.mm @@ -32,7 +32,7 @@ return self; } -- (instancetype)initWithVideoCodec:(cricket::VideoCodec)videoCodec { +- (instancetype)initWithNativeVideoCodec:(cricket::VideoCodec)videoCodec { NSMutableDictionary *params = [NSMutableDictionary dictionary]; for (auto it = videoCodec.params.begin(); it != videoCodec.params.end(); ++it) { [params setObject:[NSString stringForStdString:it->second] @@ -43,7 +43,7 @@ parameters:params]; } -- (cricket::VideoCodec)toCpp { +- (cricket::VideoCodec)nativeVideoCodec { cricket::VideoCodec codec([NSString stdStringForString:_name]); for (NSString *paramKey in _parameters.allKeys) { codec.SetParam([NSString stdStringForString:paramKey], diff --git a/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodecH264.mm b/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodecH264.mm index 2032b0a4d2..7cd6a7f0d0 100644 --- a/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodecH264.mm +++ b/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodecH264.mm @@ -36,7 +36,7 @@ bool IsHighProfileEnabled() { @synthesize packetizationMode = _packetizationMode; -- (webrtc::CodecSpecificInfo)toCpp { +- (webrtc::CodecSpecificInfo)nativeCodecSpecificInfo { webrtc::CodecSpecificInfo codecSpecificInfo; codecSpecificInfo.codecType = webrtc::kVideoCodecH264; codecSpecificInfo.codec_name = "H264"; @@ -62,7 +62,7 @@ class H264VideoToolboxEncodeCompleteCallback : public webrtc::EncodedImageCallba (RTCH264PacketizationMode)codec_specific_info->codecSpecific.H264.packetization_mode; RTCRtpFragmentationHeader *header = - [[RTCRtpFragmentationHeader alloc] initWithFragmentationHeader:fragmentation]; + [[RTCRtpFragmentationHeader alloc] initWithNativeFragmentationHeader:fragmentation]; callback(image, info, header); return Result(Result::OK, 0); @@ -105,7 +105,7 @@ class H264VideoToolboxDecodeCompleteCallback : public webrtc::DecodedImageCallba - (instancetype)initWithCodecInfo:(RTCVideoCodecInfo *)codecInfo { if (self = [super init]) { - cricket::VideoCodec codec = [codecInfo toCpp]; + cricket::VideoCodec codec = [codecInfo nativeVideoCodec]; _videoToolboxEncoder = new webrtc::H264VideoToolboxEncoder(codec); } return self; @@ -133,7 +133,7 @@ class H264VideoToolboxDecodeCompleteCallback : public webrtc::DecodedImageCallba - (NSInteger)startEncodeWithSettings:(RTCVideoEncoderSettings *)settings numberOfCores:(int)numberOfCores { - std::unique_ptr codecSettings = [settings toCpp]; + std::unique_ptr codecSettings = [settings createNativeVideoEncoderSettings]; return _videoToolboxEncoder->InitEncode( codecSettings.release(), numberOfCores, kDefaultPayloadSize); } @@ -155,7 +155,7 @@ class H264VideoToolboxDecodeCompleteCallback : public webrtc::DecodedImageCallba // Handle types than can be converted into one of webrtc::CodecSpecificInfo's hard coded cases. webrtc::CodecSpecificInfo codecSpecificInfo; if ([info isKindOfClass:[RTCCodecSpecificInfoH264 class]]) { - codecSpecificInfo = [(RTCCodecSpecificInfoH264 *)info toCpp]; + codecSpecificInfo = [(RTCCodecSpecificInfoH264 *)info nativeCodecSpecificInfo]; } std::vector nativeFrameTypes; @@ -189,7 +189,7 @@ class H264VideoToolboxDecodeCompleteCallback : public webrtc::DecodedImageCallba - (NSInteger)startDecodeWithSettings:(RTCVideoEncoderSettings *)settings numberOfCores:(int)numberOfCores { - std::unique_ptr codecSettings = [settings toCpp]; + std::unique_ptr codecSettings = [settings createNativeVideoEncoderSettings]; return _videoToolboxDecoder->InitDecode(codecSettings.release(), numberOfCores); } @@ -222,15 +222,16 @@ class H264VideoToolboxDecodeCompleteCallback : public webrtc::DecodedImageCallba fragmentationHeader:(RTCRtpFragmentationHeader *)fragmentationHeader codecSpecificInfo:(__nullable id)info renderTimeMs:(int64_t)renderTimeMs { - webrtc::EncodedImage image = [encodedImage toCpp]; + webrtc::EncodedImage image = [encodedImage nativeEncodedImage]; // Handle types than can be converted into one of webrtc::CodecSpecificInfo's hard coded cases. webrtc::CodecSpecificInfo codecSpecificInfo; if ([info isKindOfClass:[RTCCodecSpecificInfoH264 class]]) { - codecSpecificInfo = [(RTCCodecSpecificInfoH264 *)info toCpp]; + codecSpecificInfo = [(RTCCodecSpecificInfoH264 *)info nativeCodecSpecificInfo]; } - std::unique_ptr header = [fragmentationHeader toCpp]; + std::unique_ptr header = + [fragmentationHeader createNativeFragmentationHeader]; return _videoToolboxDecoder->Decode( image, missingFrames, header.release(), &codecSpecificInfo, renderTimeMs); diff --git a/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoEncoderSettings.mm b/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoEncoderSettings.mm index 3ddf63bb7b..018e76a74e 100644 --- a/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoEncoderSettings.mm +++ b/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoEncoderSettings.mm @@ -26,7 +26,7 @@ @synthesize maxFramerate = _maxFramerate; @synthesize qpMax = _qpMax; -- (instancetype)initWithVideoCodec:(const webrtc::VideoCodec *__nullable)videoCodec { +- (instancetype)initWithNativeVideoCodec:(const webrtc::VideoCodec *)videoCodec { if (self = [super init]) { if (videoCodec) { rtc::Optional codecName = CodecTypeToPayloadName(videoCodec->codecType); @@ -48,7 +48,7 @@ return self; } -- (std::unique_ptr)toCpp { +- (std::unique_ptr)createNativeVideoEncoderSettings { auto codecSettings = std::unique_ptr(new webrtc::VideoCodec); rtc::Optional codecType = diff --git a/webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_decoder_factory.mm b/webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_decoder_factory.mm index 4c89e955b4..c6e11c8415 100644 --- a/webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_decoder_factory.mm +++ b/webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_decoder_factory.mm @@ -35,7 +35,7 @@ class ObjCVideoDecoder : public VideoDecoder { int32_t InitDecode(const VideoCodec *codec_settings, int32_t number_of_cores) { RTCVideoEncoderSettings *settings = - [[RTCVideoEncoderSettings alloc] initWithVideoCodec:codec_settings]; + [[RTCVideoEncoderSettings alloc] initWithNativeVideoCodec:codec_settings]; return [decoder_ startDecodeWithSettings:settings numberOfCores:number_of_cores]; } @@ -47,7 +47,7 @@ class ObjCVideoDecoder : public VideoDecoder { RTCEncodedImage *encodedImage = [[RTCEncodedImage alloc] initWithNativeEncodedImage:input_image]; RTCRtpFragmentationHeader *header = - [[RTCRtpFragmentationHeader alloc] initWithFragmentationHeader:fragmentation]; + [[RTCRtpFragmentationHeader alloc] initWithNativeFragmentationHeader:fragmentation]; // webrtc::CodecSpecificInfo only handles a hard coded list of codecs id rtcCodecSpecificInfo = nil; diff --git a/webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_encoder_factory.mm b/webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_encoder_factory.mm index ecbf37d1af..c464dabd79 100644 --- a/webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_encoder_factory.mm +++ b/webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_encoder_factory.mm @@ -39,7 +39,7 @@ class ObjCVideoEncoder : public VideoEncoder { int32_t number_of_cores, size_t max_payload_size) { RTCVideoEncoderSettings *settings = - [[RTCVideoEncoderSettings alloc] initWithVideoCodec:codec_settings]; + [[RTCVideoEncoderSettings alloc] initWithNativeVideoCodec:codec_settings]; return [encoder_ startEncodeWithSettings:settings numberOfCores:number_of_cores]; } @@ -47,16 +47,17 @@ class ObjCVideoEncoder : public VideoEncoder { [encoder_ setCallback:^(RTCEncodedImage *frame, id info, RTCRtpFragmentationHeader *header) { - EncodedImage encodedImage = [frame toCpp]; + EncodedImage encodedImage = [frame nativeEncodedImage]; // Handle types than can be converted into one of webrtc::CodecSpecificInfo's hard coded // cases. CodecSpecificInfo codecSpecificInfo; if ([info isKindOfClass:[RTCCodecSpecificInfoH264 class]]) { - codecSpecificInfo = [(RTCCodecSpecificInfoH264 *)info toCpp]; + codecSpecificInfo = [(RTCCodecSpecificInfoH264 *)info nativeCodecSpecificInfo]; } - std::unique_ptr fragmentationHeader = [header toCpp]; + std::unique_ptr fragmentationHeader = + [header createNativeFragmentationHeader]; callback->OnEncodedImage(encodedImage, &codecSpecificInfo, fragmentationHeader.release()); }]; @@ -126,7 +127,7 @@ id ObjCVideoEncoderFactory::wrapped_encoder_factory() co webrtc::VideoEncoder *ObjCVideoEncoderFactory::CreateVideoEncoder( const cricket::VideoCodec &codec) { - RTCVideoCodecInfo *info = [[RTCVideoCodecInfo alloc] initWithVideoCodec:codec]; + RTCVideoCodecInfo *info = [[RTCVideoCodecInfo alloc] initWithNativeVideoCodec:codec]; id encoder = [encoder_factory_ createEncoder:info]; return new ObjCVideoEncoder(encoder); } @@ -134,7 +135,7 @@ webrtc::VideoEncoder *ObjCVideoEncoderFactory::CreateVideoEncoder( const std::vector &ObjCVideoEncoderFactory::supported_codecs() const { supported_codecs_.clear(); for (RTCVideoCodecInfo *supportedCodec in encoder_factory_.supportedCodecs) { - cricket::VideoCodec codec = [supportedCodec toCpp]; + cricket::VideoCodec codec = [supportedCodec nativeVideoCodec]; supported_codecs_.push_back(codec); } diff --git a/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h b/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h index b6a13c1bb0..c29b3c97e5 100644 --- a/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h +++ b/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h @@ -24,8 +24,8 @@ NS_ASSUME_NONNULL_BEGIN @class RTCVideoSource; @class RTCVideoTrack; @protocol RTCPeerConnectionDelegate; -@protocol RTCVideoEncoderFactory; @protocol RTCVideoDecoderFactory; +@protocol RTCVideoEncoderFactory; RTC_EXPORT @interface RTCPeerConnectionFactory : NSObject diff --git a/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h b/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h index cbef6961ef..95b519fdc0 100644 --- a/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h +++ b/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h @@ -39,7 +39,7 @@ RTC_EXPORT @property(nonatomic, assign) RTCFrameType frameType; @property(nonatomic, assign) int rotation; @property(nonatomic, assign) BOOL completeFrame; -@property(nonatomic, retain) NSNumber *qp; +@property(nonatomic, strong) NSNumber *qp; @end @@ -88,7 +88,7 @@ RTC_EXPORT RTC_EXPORT @interface RTCVideoEncoderSettings : NSObject -@property(nonatomic, retain) NSString *name; +@property(nonatomic, strong) NSString *name; @property(nonatomic, assign) unsigned short width; @property(nonatomic, assign) unsigned short height;