blob: 82d3fcef3d567fff9ed40db1b9090fa96bab550d [file] [log] [blame]
// Copyright 2013 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 "content/renderer/media_stream_video_sink.h"
#include "content/public/renderer/media_stream_utils.h"
#include "content/renderer/media/stream/media_stream_video_track.h"
namespace content {
MediaStreamVideoSink::MediaStreamVideoSink() : blink::WebMediaStreamSink() {}
MediaStreamVideoSink::~MediaStreamVideoSink() {
// Ensure this sink has disconnected from the track.
DisconnectFromTrack();
}
void MediaStreamVideoSink::ConnectToTrack(
const blink::WebMediaStreamTrack& track,
const blink::VideoCaptureDeliverFrameCB& callback,
bool is_sink_secure) {
DCHECK(connected_track_.IsNull());
connected_track_ = track;
AddSinkToMediaStreamTrack(track, this, callback, is_sink_secure);
}
void MediaStreamVideoSink::DisconnectFromTrack() {
RemoveSinkFromMediaStreamTrack(connected_track_, this);
connected_track_.Reset();
}
void MediaStreamVideoSink::OnFrameDropped(
media::VideoCaptureFrameDropReason reason) {
if (connected_track_.IsNull())
return;
OnFrameDroppedAtMediaStreamSink(connected_track_, reason);
}
} // namespace content