blob: 4f3bd567c2f0d88fe5c980532c03a4b84ea3c45c [file] [log] [blame]
/*
* Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include "webrtc/examples/unityplugin/video_observer.h"
void VideoObserver::SetVideoCallback(I420FRAMEREADY_CALLBACK callback) {
std::lock_guard<std::mutex> lock(mutex);
OnI420FrameReady = callback;
}
void VideoObserver::OnFrame(const webrtc::VideoFrame& frame) {
std::unique_lock<std::mutex> lock(mutex);
rtc::scoped_refptr<webrtc::PlanarYuvBuffer> buffer(
frame.video_frame_buffer()->ToI420());
if (OnI420FrameReady) {
OnI420FrameReady(buffer->DataY(), buffer->DataU(), buffer->DataV(),
buffer->StrideY(), buffer->StrideU(), buffer->StrideV(),
frame.width(), frame.height());
}
}