webrtc/sdk/objc/Framework/Native/api/video_capturer.mm
Anders Carlsson 7311918269 Add an example app for iOS native API.
Demonstrates how to use the iOS native API to wrap components into
C++ classes.

This CL also introduces a native API wrapper for the capturer.

The C++ code is forked from the corresponding CL for Android at
https://webrtc-review.googlesource.com/c/src/+/60540

Bug: webrtc:8832
Change-Id: I12d9f30e701c0222628e329218f6d5bfca26e6e0
Reviewed-on: https://webrtc-review.googlesource.com/61422
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22484}
2018-03-19 09:31:06 +00:00

35 lines
1.3 KiB
Text

/*
* Copyright 2018 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 "sdk/objc/Framework/Native/api/video_capturer.h"
#include "api/videosourceproxy.h"
#include "rtc_base/ptr_util.h"
#include "sdk/objc/Framework/Native/src/objc_video_track_source.h"
namespace webrtc {
rtc::scoped_refptr<webrtc::VideoTrackSourceInterface> ObjCToNativeVideoCapturer(
RTCVideoCapturer *objc_video_capturer,
rtc::Thread *signaling_thread,
rtc::Thread *worker_thread) {
RTCObjCVideoSourceAdapter *adapter = [[RTCObjCVideoSourceAdapter alloc] init];
rtc::scoped_refptr<webrtc::ObjCVideoTrackSource> objc_video_track_source(
new rtc::RefCountedObject<webrtc::ObjCVideoTrackSource>(adapter));
rtc::scoped_refptr<webrtc::VideoTrackSourceInterface> video_source =
webrtc::VideoTrackSourceProxy::Create(
signaling_thread, worker_thread, objc_video_track_source);
objc_video_capturer.delegate = adapter;
return video_source;
}
} // namespace webrtc