From 3935c34cbc1d2c3f0bc79715381925404bbeeaf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1ri=20Tristan=20Helgason?= Date: Thu, 28 Sep 2017 15:08:47 +0200 Subject: [PATCH] Add equality method for RTCVideoCodecInfo. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is useful for various reasons. Bug: None Change-Id: I8658f8b19829cc8470789c13ff3af6466f200f00 Reviewed-on: https://webrtc-review.googlesource.com/4383 Reviewed-by: Anders Carlsson Commit-Queue: Kári Helgason Cr-Commit-Position: refs/heads/master@{#20018} --- .../Classes/PeerConnection/RTCVideoCodec.mm | 22 +++++++++++++++++++ .../Framework/Headers/WebRTC/RTCVideoCodec.h | 2 ++ 2 files changed, 24 insertions(+) diff --git a/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec.mm b/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec.mm index 4936568dd1..786c422a17 100644 --- a/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec.mm +++ b/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec.mm @@ -62,6 +62,28 @@ return codec; } +- (BOOL)isEqualToCodecInfo:(RTCVideoCodecInfo *)info { + if (!info || + self.payload != info.payload || + ![self.name isEqualToString:info.name] || + ![self.parameters isEqualToDictionary:info.parameters]) { + return NO; + } + return YES; +} + +- (BOOL)isEqual:(id)object { + if (self == object) + return YES; + if (![object isKindOfClass:[self class]]) + return NO; + return [self isEqualToCodecInfo:object]; +} + +- (NSUInteger)hash { + return [self.name hash] ^ self.payload ^ [self.parameters hash]; +} + @end @implementation RTCVideoEncoderQpThresholds diff --git a/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h b/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h index 2f287ddb45..d8f44252d0 100644 --- a/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h +++ b/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h @@ -105,6 +105,8 @@ RTC_EXPORT parameters:(nullable NSDictionary *)parameters NS_DESIGNATED_INITIALIZER; +- (BOOL)isEqualToCodecInfo:(RTCVideoCodecInfo *)info; + @property(nonatomic, readonly) NSInteger payload; @property(nonatomic, readonly) NSString *name; @property(nonatomic, readonly) NSDictionary *parameters;