OLD | NEW |
---|---|
1 // Copyright (c) 2017 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2017 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/renderer/media/webrtc/rtc_rtp_sender.h" | 5 #include "content/renderer/media/webrtc/rtc_rtp_sender.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "third_party/webrtc/base/scoped_ref_ptr.h" | 8 #include "third_party/webrtc/base/scoped_ref_ptr.h" |
9 | 9 |
10 namespace content { | 10 namespace content { |
11 | 11 |
12 namespace { | 12 namespace { |
13 | 13 |
14 inline bool operator==( | 14 inline bool operator==( |
15 const std::unique_ptr<blink::WebMediaStreamTrack>& web_track, | 15 const std::unique_ptr<WebRtcMediaStreamTrackAdapterMap::AdapterRef>& |
16 track_adapter, | |
16 const webrtc::MediaStreamTrackInterface* webrtc_track) { | 17 const webrtc::MediaStreamTrackInterface* webrtc_track) { |
17 if (!web_track) | 18 if (!track_adapter) |
18 return !webrtc_track; | 19 return !webrtc_track; |
19 return webrtc_track && web_track->Id() == webrtc_track->id().c_str(); | 20 return track_adapter->webrtc_track() == webrtc_track; |
20 } | 21 } |
21 | 22 |
22 } // namespace | 23 } // namespace |
23 | 24 |
24 uintptr_t RTCRtpSender::getId( | 25 uintptr_t RTCRtpSender::getId( |
25 const webrtc::RtpSenderInterface* webrtc_rtp_sender) { | 26 const webrtc::RtpSenderInterface* webrtc_rtp_sender) { |
26 return reinterpret_cast<uintptr_t>(webrtc_rtp_sender); | 27 return reinterpret_cast<uintptr_t>(webrtc_rtp_sender); |
27 } | 28 } |
28 | 29 |
29 RTCRtpSender::RTCRtpSender( | 30 RTCRtpSender::RTCRtpSender( |
30 webrtc::RtpSenderInterface* webrtc_rtp_sender, | 31 webrtc::RtpSenderInterface* webrtc_rtp_sender, |
31 std::unique_ptr<blink::WebMediaStreamTrack> web_track) | 32 std::unique_ptr<WebRtcMediaStreamTrackAdapterMap::AdapterRef> track_adapter) |
32 : webrtc_rtp_sender_(webrtc_rtp_sender), web_track_(std::move(web_track)) { | 33 : webrtc_rtp_sender_(webrtc_rtp_sender), |
34 track_adapter_(std::move(track_adapter)) { | |
33 DCHECK(webrtc_rtp_sender_); | 35 DCHECK(webrtc_rtp_sender_); |
34 DCHECK(web_track_ == webrtc_track()); | 36 DCHECK(track_adapter_ == webrtc_rtp_sender_->track()); |
Guido Urdaneta
2017/06/19 16:10:51
does DCHECK_EQ work here?
hbos_chromium
2017/06/19 16:45:39
No, logging template stuff breaks, the code requir
Guido Urdaneta
2017/06/20 11:26:15
Acknowledged.
| |
35 } | 37 } |
36 | 38 |
37 RTCRtpSender::~RTCRtpSender() {} | 39 RTCRtpSender::~RTCRtpSender() {} |
38 | 40 |
39 uintptr_t RTCRtpSender::Id() const { | 41 uintptr_t RTCRtpSender::Id() const { |
40 return getId(webrtc_rtp_sender_.get()); | 42 return getId(webrtc_rtp_sender_.get()); |
41 } | 43 } |
42 | 44 |
43 const blink::WebMediaStreamTrack* RTCRtpSender::Track() const { | 45 const blink::WebMediaStreamTrack* RTCRtpSender::Track() const { |
44 DCHECK(web_track_ == webrtc_track()); | 46 DCHECK(track_adapter_ == webrtc_rtp_sender_->track()); |
Guido Urdaneta
2017/06/19 16:10:51
does DCHECK_EQ work here?
hbos_chromium
2017/06/19 16:45:39
No.
Guido Urdaneta
2017/06/20 11:26:15
Acknowledged.
| |
45 return web_track_.get(); | 47 return track_adapter_ ? &track_adapter_->web_track() : nullptr; |
46 } | 48 } |
47 | 49 |
48 const webrtc::MediaStreamTrackInterface* RTCRtpSender::webrtc_track() const { | 50 const webrtc::MediaStreamTrackInterface* RTCRtpSender::webrtc_track() const { |
49 return webrtc_rtp_sender_->track(); | 51 DCHECK(track_adapter_ == webrtc_rtp_sender_->track()); |
52 return track_adapter_ ? track_adapter_->webrtc_track() : nullptr; | |
50 } | 53 } |
51 | 54 |
52 } // namespace content | 55 } // namespace content |
OLD | NEW |