| Index: webrtc/api/objc/RTCMediaStreamTrack.mm
|
| diff --git a/webrtc/api/objc/RTCMediaStreamTrack.mm b/webrtc/api/objc/RTCMediaStreamTrack.mm
|
| index 25979b38d9a32bd968d531bdc66a5553ec77f4d7..7f24c94f38d785423b32f9b186fd7214fa89685b 100644
|
| --- a/webrtc/api/objc/RTCMediaStreamTrack.mm
|
| +++ b/webrtc/api/objc/RTCMediaStreamTrack.mm
|
| @@ -47,6 +47,20 @@
|
| readyState];
|
| }
|
|
|
| +- (BOOL)isEqual:(id)object {
|
| + if (self == object) {
|
| + return YES;
|
| + }
|
| + if (![object isMemberOfClass:[self class]]) {
|
| + return NO;
|
| + }
|
| + return [self isEqualToTrack:(RTCMediaStreamTrack *)object];
|
| +}
|
| +
|
| +- (NSUInteger)hash {
|
| + return (NSUInteger)_nativeTrack.get();
|
| +}
|
| +
|
| #pragma mark - Private
|
|
|
| - (rtc::scoped_refptr<webrtc::MediaStreamTrackInterface>)nativeTrack {
|
| @@ -64,6 +78,29 @@
|
| return self;
|
| }
|
|
|
| +- (instancetype)initWithNativeTrack:
|
| + (rtc::scoped_refptr<webrtc::MediaStreamTrackInterface>)nativeTrack {
|
| + NSParameterAssert(nativeTrack);
|
| + if (nativeTrack->kind() ==
|
| + std::string(webrtc::MediaStreamTrackInterface::kAudioKind)) {
|
| + return [self initWithNativeTrack:nativeTrack
|
| + type:RTCMediaStreamTrackTypeAudio];
|
| + }
|
| + if (nativeTrack->kind() ==
|
| + std::string(webrtc::MediaStreamTrackInterface::kVideoKind)) {
|
| + return [self initWithNativeTrack:nativeTrack
|
| + type:RTCMediaStreamTrackTypeVideo];
|
| + }
|
| + return nil;
|
| +}
|
| +
|
| +- (BOOL)isEqualToTrack:(RTCMediaStreamTrack *)track {
|
| + if (!track) {
|
| + return NO;
|
| + }
|
| + return _nativeTrack == track.nativeTrack;
|
| +}
|
| +
|
| + (webrtc::MediaStreamTrackInterface::TrackState)nativeTrackStateForState:
|
| (RTCMediaStreamTrackState)state {
|
| switch (state) {
|
|
|