blob: d8b991ac3c3b87e56ec5919846727a4a410e8e52 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "modules/peerconnection/RTCRtpSender.h"
#include "modules/mediastream/MediaStreamTrack.h"
namespace blink {
namespace {
bool TrackEquals(const MediaStreamTrack* track,
const WebMediaStreamTrack* web_track) {
if (track)
return web_track && web_track->Id() == WebString(track->id());
return !web_track;
}
} // namespace
RTCRtpSender::RTCRtpSender(std::unique_ptr<WebRTCRtpSender> sender,
MediaStreamTrack* track)
: sender_(std::move(sender)), track_(track) {
DCHECK(sender_);
DCHECK(track_);
}
MediaStreamTrack* RTCRtpSender::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;
}
void RTCRtpSender::Trace(blink::Visitor* visitor) {
visitor->Trace(track_);
ScriptWrappable::Trace(visitor);
}
} // namespace blink