Propagate MediaStreamSource state to video tracks the same way as audio.
Also removes unused track states kLive and kFailed.
Since this also required a Video source to exist in all unit tests that create a track, a FakeVideoTrackSource is added and used in tests.
BUG=webrtc:5426
Review URL: https://codereview.webrtc.org/1790633002
Cr-Commit-Position: refs/heads/master@{#12098}
diff --git a/webrtc/api/objc/RTCMediaStreamTrack.h b/webrtc/api/objc/RTCMediaStreamTrack.h
index 7883843..b8576bd 100644
--- a/webrtc/api/objc/RTCMediaStreamTrack.h
+++ b/webrtc/api/objc/RTCMediaStreamTrack.h
@@ -11,14 +11,11 @@
#import <Foundation/Foundation.h>
/**
- * Represents the state of the track. This exposes the same states in C++,
- * which include two more states than are in the W3C spec.
+ * Represents the state of the track. This exposes the same states in C++.
*/
typedef NS_ENUM(NSInteger, RTCMediaStreamTrackState) {
- RTCMediaStreamTrackStateInitializing,
RTCMediaStreamTrackStateLive,
- RTCMediaStreamTrackStateEnded,
- RTCMediaStreamTrackStateFailed,
+ RTCMediaStreamTrackStateEnded
};
NS_ASSUME_NONNULL_BEGIN
diff --git a/webrtc/api/objc/RTCMediaStreamTrack.mm b/webrtc/api/objc/RTCMediaStreamTrack.mm
index 260c89d..25979b3 100644
--- a/webrtc/api/objc/RTCMediaStreamTrack.mm
+++ b/webrtc/api/objc/RTCMediaStreamTrack.mm
@@ -67,41 +67,29 @@
+ (webrtc::MediaStreamTrackInterface::TrackState)nativeTrackStateForState:
(RTCMediaStreamTrackState)state {
switch (state) {
- case RTCMediaStreamTrackStateInitializing:
- return webrtc::MediaStreamTrackInterface::kInitializing;
case RTCMediaStreamTrackStateLive:
return webrtc::MediaStreamTrackInterface::kLive;
case RTCMediaStreamTrackStateEnded:
return webrtc::MediaStreamTrackInterface::kEnded;
- case RTCMediaStreamTrackStateFailed:
- return webrtc::MediaStreamTrackInterface::kFailed;
}
}
+ (RTCMediaStreamTrackState)trackStateForNativeState:
(webrtc::MediaStreamTrackInterface::TrackState)nativeState {
switch (nativeState) {
- case webrtc::MediaStreamTrackInterface::kInitializing:
- return RTCMediaStreamTrackStateInitializing;
case webrtc::MediaStreamTrackInterface::kLive:
return RTCMediaStreamTrackStateLive;
case webrtc::MediaStreamTrackInterface::kEnded:
return RTCMediaStreamTrackStateEnded;
- case webrtc::MediaStreamTrackInterface::kFailed:
- return RTCMediaStreamTrackStateFailed;
}
}
+ (NSString *)stringForState:(RTCMediaStreamTrackState)state {
switch (state) {
- case RTCMediaStreamTrackStateInitializing:
- return @"Initializing";
case RTCMediaStreamTrackStateLive:
return @"Live";
case RTCMediaStreamTrackStateEnded:
return @"Ended";
- case RTCMediaStreamTrackStateFailed:
- return @"Failed";
}
}