Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(959)

Unified Diff: content/renderer/media/webrtc/rtc_rtp_sender.h

Issue 2951713002: RTCPeerConnection.addTrack and removeTrack added (behind flag) (Closed)
Patch Set: Addressed deadbeef's comments Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/media/webrtc/rtc_rtp_sender.h
diff --git a/content/renderer/media/webrtc/rtc_rtp_sender.h b/content/renderer/media/webrtc/rtc_rtp_sender.h
index 0a3756010a2c5506d3248cd2213b09f69dcaf1ca..3205abea05efa3bbd6006c6189301eba2c1fbffb 100644
--- a/content/renderer/media/webrtc/rtc_rtp_sender.h
+++ b/content/renderer/media/webrtc/rtc_rtp_sender.h
@@ -5,12 +5,16 @@
#ifndef CONTENT_RENDERER_MEDIA_WEBRTC_RTC_RTP_SENDER_H_
#define CONTENT_RENDERER_MEDIA_WEBRTC_RTC_RTP_SENDER_H_
-#include "base/memory/ref_counted.h"
+#include <memory>
+#include <vector>
+
#include "content/common/content_export.h"
+#include "content/renderer/media/webrtc/webrtc_media_stream_adapter_map.h"
#include "content/renderer/media/webrtc/webrtc_media_stream_track_adapter_map.h"
#include "third_party/WebKit/public/platform/WebMediaStreamTrack.h"
#include "third_party/WebKit/public/platform/WebRTCRtpSender.h"
#include "third_party/webrtc/api/rtpsenderinterface.h"
+#include "third_party/webrtc/rtc_base/scoped_ref_ptr.h"
namespace content {
@@ -21,22 +25,34 @@ class CONTENT_EXPORT RTCRtpSender : public blink::WebRTCRtpSender {
public:
static uintptr_t getId(const webrtc::RtpSenderInterface* webrtc_rtp_sender);
- RTCRtpSender(scoped_refptr<webrtc::RtpSenderInterface> webrtc_rtp_sender,
+ RTCRtpSender(rtc::scoped_refptr<webrtc::RtpSenderInterface> webrtc_rtp_sender,
std::unique_ptr<WebRtcMediaStreamTrackAdapterMap::AdapterRef>
track_adapter);
+ RTCRtpSender(
+ rtc::scoped_refptr<webrtc::RtpSenderInterface> webrtc_rtp_sender,
+ std::unique_ptr<WebRtcMediaStreamTrackAdapterMap::AdapterRef>
+ track_adapter,
+ std::vector<std::unique_ptr<WebRtcMediaStreamAdapterMap::AdapterRef>>
+ stream_adapters);
~RTCRtpSender() override;
uintptr_t Id() const override;
const blink::WebMediaStreamTrack* Track() const override;
+ void OnRemoved();
+ webrtc::RtpSenderInterface* webrtc_rtp_sender();
const webrtc::MediaStreamTrackInterface* webrtc_track() const;
private:
- const scoped_refptr<webrtc::RtpSenderInterface> webrtc_rtp_sender_;
+ const rtc::scoped_refptr<webrtc::RtpSenderInterface> webrtc_rtp_sender_;
// The track adapter is the glue between blink and webrtc layer tracks.
// Keeping a reference to the adapter ensures it is not disposed, as is
// required as long as the webrtc layer track is in use by the sender.
std::unique_ptr<WebRtcMediaStreamTrackAdapterMap::AdapterRef> track_adapter_;
+ // Similarly, reference needs to be kept to the stream adapters when a sender
+ // is created for |addTrack| with associated stream(s).
+ std::vector<std::unique_ptr<WebRtcMediaStreamAdapterMap::AdapterRef>>
+ stream_adapters_;
};
} // namespace content
« no previous file with comments | « content/renderer/media/rtc_peer_connection_handler.cc ('k') | content/renderer/media/webrtc/rtc_rtp_sender.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698