Add equality method for RTCVideoCodecInfo.
This is useful for various reasons.
Bug: None
Change-Id: I8658f8b19829cc8470789c13ff3af6466f200f00
Reviewed-on: https://webrtc-review.googlesource.com/4383
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20018}
diff --git a/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec.mm b/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec.mm
index 4936568..786c422 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 2f287dd..d8f4425 100644
--- a/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h
+++ b/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h
@@ -105,6 +105,8 @@
parameters:(nullable NSDictionary<NSString *, NSString *> *)parameters
NS_DESIGNATED_INITIALIZER;
+- (BOOL)isEqualToCodecInfo:(RTCVideoCodecInfo *)info;
+
@property(nonatomic, readonly) NSInteger payload;
@property(nonatomic, readonly) NSString *name;
@property(nonatomic, readonly) NSDictionary<NSString *, NSString *> *parameters;