Index: webrtc/api/rtpreceiver.h |
diff --git a/webrtc/api/rtpreceiver.h b/webrtc/api/rtpreceiver.h |
index 43adc7294601d0930dcd7c5ad80637056fee7edc..0004e25c69a4f7c7585a2e93c8731c78951e6dcd 100644 |
--- a/webrtc/api/rtpreceiver.h |
+++ b/webrtc/api/rtpreceiver.h |
@@ -19,7 +19,9 @@ |
#include "webrtc/api/mediastreamprovider.h" |
#include "webrtc/api/rtpreceiverinterface.h" |
+#include "webrtc/api/videotracksource.h" |
#include "webrtc/base/basictypes.h" |
+#include "webrtc/media/base/videobroadcaster.h" |
namespace webrtc { |
@@ -60,12 +62,17 @@ class AudioRtpReceiver : public ObserverInterface, |
class VideoRtpReceiver : public rtc::RefCountedObject<RtpReceiverInterface> { |
public: |
- VideoRtpReceiver(VideoTrackInterface* track, |
+ VideoRtpReceiver(const std::string& track_id, |
+ rtc::Thread* worker_thread, |
uint32_t ssrc, |
VideoProviderInterface* provider); |
virtual ~VideoRtpReceiver(); |
+ rtc::scoped_refptr<VideoTrackInterface> video_track() const { |
+ return track_.get(); |
+ } |
+ |
// RtpReceiverInterface implementation |
rtc::scoped_refptr<MediaStreamTrackInterface> track() const override { |
return track_.get(); |
@@ -77,9 +84,16 @@ class VideoRtpReceiver : public rtc::RefCountedObject<RtpReceiverInterface> { |
private: |
std::string id_; |
- rtc::scoped_refptr<VideoTrackInterface> track_; |
uint32_t ssrc_; |
VideoProviderInterface* provider_; |
+ // |broadcaster_| is needed since the decoder can only handle one sink. |
+ // It might be better if the decoder can handle multiple sinks and consider |
+ // the VideoSinkWants. |
+ rtc::VideoBroadcaster broadcaster_; |
+ // |source_| is held here to be able to change the state of the source when |
+ // the VideoRtpReceiver is stopped. |
+ rtc::scoped_refptr<VideoTrackSource> source_; |
+ rtc::scoped_refptr<VideoTrackInterface> track_; |
}; |
} // namespace webrtc |