| OLD | NEW | 
|   1 /* |   1 /* | 
|   2  *  Copyright 2012 The WebRTC project authors. All Rights Reserved. |   2  *  Copyright 2012 The WebRTC project authors. All Rights Reserved. | 
|   3  * |   3  * | 
|   4  *  Use of this source code is governed by a BSD-style license |   4  *  Use of this source code is governed by a BSD-style license | 
|   5  *  that can be found in the LICENSE file in the root of the source |   5  *  that can be found in the LICENSE file in the root of the source | 
|   6  *  tree. An additional intellectual property rights grant can be found |   6  *  tree. An additional intellectual property rights grant can be found | 
|   7  *  in the file PATENTS.  All contributing project authors may |   7  *  in the file PATENTS.  All contributing project authors may | 
|   8  *  be found in the AUTHORS file in the root of the source tree. |   8  *  be found in the AUTHORS file in the root of the source tree. | 
|   9  */ |   9  */ | 
|  10  |  10  | 
|  11 #ifndef WEBRTC_API_VIDEOTRACK_H_ |  11 #ifndef WEBRTC_API_VIDEOTRACK_H_ | 
|  12 #define WEBRTC_API_VIDEOTRACK_H_ |  12 #define WEBRTC_API_VIDEOTRACK_H_ | 
|  13  |  13  | 
|  14 #include <string> |  14 #include <string> | 
|  15 #include <vector> |  15 #include <vector> | 
|  16  |  16  | 
|  17 #include "webrtc/api/mediastreamtrack.h" |  17 #include "webrtc/api/mediastreamtrack.h" | 
|  18 #include "webrtc/api/videosourceinterface.h" |  18 #include "webrtc/api/videosourceinterface.h" | 
|  19 #include "webrtc/api/videotrackrenderers.h" |  19 #include "webrtc/api/videotrackrenderers.h" | 
|  20 #include "webrtc/base/scoped_ref_ptr.h" |  20 #include "webrtc/base/scoped_ref_ptr.h" | 
|  21 #include "webrtc/base/thread_checker.h" |  21 #include "webrtc/base/thread_checker.h" | 
|  22 #include "webrtc/media/base/videosourcebase.h" |  22 #include "webrtc/media/base/videosourcebase.h" | 
|  23  |  23  | 
|  24 namespace webrtc { |  24 namespace webrtc { | 
|  25  |  25  | 
|  26 class VideoTrack : public MediaStreamTrack<VideoTrackInterface>, |  26 class VideoTrack : public MediaStreamTrack<VideoTrackInterface>, | 
|  27                    public rtc::VideoSourceBase { |  27                    public rtc::VideoSourceBase, | 
 |  28                    public ObserverInterface { | 
|  28  public: |  29  public: | 
|  29   static rtc::scoped_refptr<VideoTrack> Create( |  30   static rtc::scoped_refptr<VideoTrack> Create( | 
|  30       const std::string& label, |  31       const std::string& label, | 
|  31       VideoTrackSourceInterface* source); |  32       VideoTrackSourceInterface* source); | 
|  32  |  33  | 
|  33   void AddOrUpdateSink(rtc::VideoSinkInterface<cricket::VideoFrame>* sink, |  34   void AddOrUpdateSink(rtc::VideoSinkInterface<cricket::VideoFrame>* sink, | 
|  34                        const rtc::VideoSinkWants& wants) override; |  35                        const rtc::VideoSinkWants& wants) override; | 
|  35   void RemoveSink(rtc::VideoSinkInterface<cricket::VideoFrame>* sink) override; |  36   void RemoveSink(rtc::VideoSinkInterface<cricket::VideoFrame>* sink) override; | 
 |  37   void GetInfo(rtc::VideoSourceInfo *info) override; | 
|  36  |  38  | 
|  37   virtual VideoTrackSourceInterface* GetSource() const { |  39   virtual VideoTrackSourceInterface* GetSource() const { | 
|  38     return video_source_.get(); |  40     return video_source_.get(); | 
|  39   } |  41   } | 
|  40   virtual bool set_enabled(bool enable); |  42   virtual bool set_enabled(bool enable); | 
|  41   virtual std::string kind() const; |  43   virtual std::string kind() const; | 
|  42  |  44  | 
|  43  protected: |  45  protected: | 
|  44   VideoTrack(const std::string& id, VideoTrackSourceInterface* video_source); |  46   VideoTrack(const std::string& id, VideoTrackSourceInterface* video_source); | 
|  45   ~VideoTrack(); |  47   ~VideoTrack(); | 
|  46  |  48  | 
|  47  private: |  49  private: | 
 |  50   // Implements ObserverInterface. Observes |video_source_| state. | 
 |  51   void OnChanged() override; | 
 |  52  | 
|  48   rtc::ThreadChecker thread_checker_; |  53   rtc::ThreadChecker thread_checker_; | 
|  49   rtc::scoped_refptr<VideoTrackSourceInterface> video_source_; |  54   rtc::scoped_refptr<VideoTrackSourceInterface> video_source_; | 
|  50 }; |  55 }; | 
|  51  |  56  | 
|  52 }  // namespace webrtc |  57 }  // namespace webrtc | 
|  53  |  58  | 
|  54 #endif  // WEBRTC_API_VIDEOTRACK_H_ |  59 #endif  // WEBRTC_API_VIDEOTRACK_H_ | 
| OLD | NEW |