/* * Copyright (c) 2013 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/video_engine/new_include/video_engine.h" #include #include "webrtc/video_engine/include/vie_base.h" #include "webrtc/video_engine/internal/video_call.h" #include "webrtc/video_engine/vie_defines.h" namespace webrtc { namespace internal { class VideoEngine : public newapi::VideoEngine { public: explicit VideoEngine(const newapi::VideoEngineConfig& engine_config) : config_(engine_config) { video_engine_ = webrtc::VideoEngine::Create(); assert(video_engine_ != NULL); ViEBase* video_engine_base = ViEBase::GetInterface(video_engine_); assert(video_engine_base != NULL); if (video_engine_base->Init() != 0) { abort(); } video_engine_base->Release(); } virtual ~VideoEngine() { webrtc::VideoEngine::Delete(video_engine_); } virtual newapi::VideoCall* CreateCall(newapi::Transport* transport) OVERRIDE { return new VideoCall(video_engine_, transport); } private: newapi::VideoEngineConfig config_; webrtc::VideoEngine* video_engine_; DISALLOW_COPY_AND_ASSIGN(VideoEngine); }; } // internal namespace newapi { VideoEngine* VideoEngine::Create(const VideoEngineConfig& engine_config) { return new internal::VideoEngine(engine_config); } const char* Version() { return WEBRTC_SVNREVISION " (" BUILDINFO ")"; } } // newapi } // webrtc