blob: b230fba72f04b7567791c19e6a6dc2f9198b6508 [file] [log] [blame]
niklase@google.com470e71d2011-07-07 08:21:25 +00001/*
mflodman@webrtc.orgcee447a2012-06-28 07:29:46 +00002 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
niklase@google.com470e71d2011-07-07 08:21:25 +00003 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
mflodman@webrtc.orge06ca3c2012-06-29 13:20:14 +000011#ifndef WEBRTC_VIDEO_ENGINE_VIE_IMPL_H_
12#define WEBRTC_VIDEO_ENGINE_VIE_IMPL_H_
niklase@google.com470e71d2011-07-07 08:21:25 +000013
mflodman@webrtc.orgcee447a2012-06-28 07:29:46 +000014#include "engine_configurations.h" // NOLINT
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000015#include "video_engine/vie_defines.h"
niklase@google.com470e71d2011-07-07 08:21:25 +000016
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000017#include "video_engine/vie_base_impl.h"
niklase@google.com470e71d2011-07-07 08:21:25 +000018
19#ifdef WEBRTC_VIDEO_ENGINE_CAPTURE_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000020#include "video_engine/vie_capture_impl.h"
niklase@google.com470e71d2011-07-07 08:21:25 +000021#endif
22#ifdef WEBRTC_VIDEO_ENGINE_CODEC_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000023#include "video_engine/vie_codec_impl.h"
niklase@google.com470e71d2011-07-07 08:21:25 +000024#endif
25#ifdef WEBRTC_VIDEO_ENGINE_ENCRYPTION_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000026#include "video_engine/vie_encryption_impl.h"
niklase@google.com470e71d2011-07-07 08:21:25 +000027#endif
28#ifdef WEBRTC_VIDEO_ENGINE_FILE_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000029#include "video_engine/vie_file_impl.h"
niklase@google.com470e71d2011-07-07 08:21:25 +000030#endif
31#ifdef WEBRTC_VIDEO_ENGINE_IMAGE_PROCESS_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000032#include "video_engine/vie_image_process_impl.h"
niklase@google.com470e71d2011-07-07 08:21:25 +000033#endif
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000034#include "video_engine/vie_network_impl.h"
niklase@google.com470e71d2011-07-07 08:21:25 +000035#ifdef WEBRTC_VIDEO_ENGINE_RENDER_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000036#include "video_engine/vie_render_impl.h"
niklase@google.com470e71d2011-07-07 08:21:25 +000037#endif
38#ifdef WEBRTC_VIDEO_ENGINE_RTP_RTCP_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000039#include "video_engine/vie_rtp_rtcp_impl.h"
niklase@google.com470e71d2011-07-07 08:21:25 +000040#endif
41#ifdef WEBRTC_VIDEO_ENGINE_EXTERNAL_CODEC_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000042#include "video_engine/vie_external_codec_impl.h"
niklase@google.com470e71d2011-07-07 08:21:25 +000043#endif
44
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000045namespace webrtc {
niklase@google.com470e71d2011-07-07 08:21:25 +000046
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000047class VideoEngineImpl
48 : public ViEBaseImpl
niklase@google.com470e71d2011-07-07 08:21:25 +000049#ifdef WEBRTC_VIDEO_ENGINE_CODEC_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000050 , public ViECodecImpl
niklase@google.com470e71d2011-07-07 08:21:25 +000051#endif
52#ifdef WEBRTC_VIDEO_ENGINE_CAPTURE_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000053 , public ViECaptureImpl
niklase@google.com470e71d2011-07-07 08:21:25 +000054#endif
55#ifdef WEBRTC_VIDEO_ENGINE_ENCRYPTION_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000056 , public ViEEncryptionImpl
niklase@google.com470e71d2011-07-07 08:21:25 +000057#endif
58#ifdef WEBRTC_VIDEO_ENGINE_FILE_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000059 , public ViEFileImpl
niklase@google.com470e71d2011-07-07 08:21:25 +000060#endif
61#ifdef WEBRTC_VIDEO_ENGINE_IMAGE_PROCESS_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000062 , public ViEImageProcessImpl
niklase@google.com470e71d2011-07-07 08:21:25 +000063#endif
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000064 , public ViENetworkImpl
niklase@google.com470e71d2011-07-07 08:21:25 +000065#ifdef WEBRTC_VIDEO_ENGINE_RENDER_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000066 , public ViERenderImpl
niklase@google.com470e71d2011-07-07 08:21:25 +000067#endif
68#ifdef WEBRTC_VIDEO_ENGINE_RTP_RTCP_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000069 , public ViERTP_RTCPImpl
niklase@google.com470e71d2011-07-07 08:21:25 +000070#endif
71#ifdef WEBRTC_VIDEO_ENGINE_EXTERNAL_CODEC_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000072 , public ViEExternalCodecImpl
niklase@google.com470e71d2011-07-07 08:21:25 +000073#endif
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000074{ // NOLINT
75 public:
mflodman@webrtc.orgb11424b2012-01-25 13:42:03 +000076 VideoEngineImpl()
77 :
78#ifdef WEBRTC_VIDEO_ENGINE_CODEC_API
79 ViECodecImpl(ViEBaseImpl::shared_data())
80#endif
81#ifdef WEBRTC_VIDEO_ENGINE_CAPTURE_API
82 , ViECaptureImpl(ViEBaseImpl::shared_data())
83#endif
84#ifdef WEBRTC_VIDEO_ENGINE_ENCRYPTION_API
85 , ViEEncryptionImpl(ViEBaseImpl::shared_data())
86#endif
87#ifdef WEBRTC_VIDEO_ENGINE_FILE_API
88 , ViEFileImpl(ViEBaseImpl::shared_data())
89#endif
90#ifdef WEBRTC_VIDEO_ENGINE_IMAGE_PROCESS_API
91 , ViEImageProcessImpl(ViEBaseImpl::shared_data())
92#endif
mflodman@webrtc.orgb11424b2012-01-25 13:42:03 +000093 , ViENetworkImpl(ViEBaseImpl::shared_data())
mflodman@webrtc.orgb11424b2012-01-25 13:42:03 +000094#ifdef WEBRTC_VIDEO_ENGINE_RENDER_API
95 , ViERenderImpl(ViEBaseImpl::shared_data())
96#endif
97#ifdef WEBRTC_VIDEO_ENGINE_RTP_RTCP_API
98 , ViERTP_RTCPImpl(ViEBaseImpl::shared_data())
99#endif
100#ifdef WEBRTC_VIDEO_ENGINE_EXTERNAL_CODEC_API
101 , ViEExternalCodecImpl(ViEBaseImpl::shared_data())
102#endif
103 {}
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +0000104 virtual ~VideoEngineImpl() {}
niklase@google.com470e71d2011-07-07 08:21:25 +0000105};
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +0000106
niklase@google.com470e71d2011-07-07 08:21:25 +0000107} // namespace webrtc
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +0000108
mflodman@webrtc.orge06ca3c2012-06-29 13:20:14 +0000109#endif // WEBRTC_VIDEO_ENGINE_VIE_IMPL_H_