BUG=1668 R=mflodman@webrtc.org Review URL: https://webrtc-codereview.appspot.com/1360004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@4044 4adac7df-926f-26a2-2b94-8c16560cd09d
60 lines
1.7 KiB
C++
60 lines
1.7 KiB
C++
/*
|
|
* 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 <cassert>
|
|
|
|
#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
|