Chromium Code Reviews| Index: third_party/WebKit/Source/modules/peerconnection/RTCRtpSender.cpp |
| diff --git a/third_party/WebKit/Source/modules/peerconnection/RTCRtpSender.cpp b/third_party/WebKit/Source/modules/peerconnection/RTCRtpSender.cpp |
| index c31fd2c73f47fcccd1e9033f7bc6c87d6ddca3ab..0dcd01ede3e3669c21ecd2a0021acfb1025274b6 100644 |
| --- a/third_party/WebKit/Source/modules/peerconnection/RTCRtpSender.cpp |
| +++ b/third_party/WebKit/Source/modules/peerconnection/RTCRtpSender.cpp |
| @@ -8,6 +8,17 @@ |
| namespace blink { |
| +namespace { |
| + |
| +bool TrackEquals(const MediaStreamTrack* track, |
| + const WebMediaStreamTrack* web_track) { |
| + if (track) |
| + return web_track && web_track->Id() == static_cast<WebString>(track->id()); |
|
Guido Urdaneta
2017/07/05 15:37:06
How does this static_cast actually work?
Shouldn'
hbos_chromium
2017/07/06 12:31:38
Done.
I had to do some sort of casting because ==
|
| + return !web_track; |
| +} |
| + |
| +} // namespace |
| + |
| RTCRtpSender::RTCRtpSender(std::unique_ptr<WebRTCRtpSender> sender, |
| MediaStreamTrack* track) |
| : sender_(std::move(sender)), track_(track) { |
| @@ -16,12 +27,19 @@ RTCRtpSender::RTCRtpSender(std::unique_ptr<WebRTCRtpSender> sender, |
| } |
| MediaStreamTrack* RTCRtpSender::track() { |
| - DCHECK((track_ && sender_->Track() && |
| - sender_->Track()->Id() == static_cast<WebString>(track_->id())) || |
| - (!track_ && !sender_->Track())); |
| + DCHECK(TrackEquals(track_, sender_->Track())); |
| return track_; |
| } |
| +WebRTCRtpSender* RTCRtpSender::web_rtp_sender() { |
| + return sender_.get(); |
| +} |
| + |
| +void RTCRtpSender::SetTrack(MediaStreamTrack* track) { |
| + DCHECK(TrackEquals(track, sender_->Track())); |
| + track_ = track; |
| +} |
| + |
| DEFINE_TRACE(RTCRtpSender) { |
| visitor->Trace(track_); |
| } |