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/videotrack.h b/webrtc/api/videotrack.h
index 36b03b8..3835d2c 100644
--- a/webrtc/api/videotrack.h
+++ b/webrtc/api/videotrack.h
@@ -22,7 +22,8 @@
namespace webrtc {
class VideoTrack : public MediaStreamTrack<VideoTrackInterface>,
- public rtc::VideoSourceBase {
+ public rtc::VideoSourceBase,
+ public ObserverInterface {
public:
static rtc::scoped_refptr<VideoTrack> Create(
const std::string& label,
@@ -43,6 +44,9 @@
~VideoTrack();
private:
+ // Implements ObserverInterface. Observes |video_source_| state.
+ void OnChanged() override;
+
rtc::ThreadChecker thread_checker_;
rtc::scoped_refptr<VideoTrackSourceInterface> video_source_;
};