blob: 2304490a329c93186e0350b8d42bc114b66be604 [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.orgcee447a2012-06-28 07:29:46 +000011#ifndef WEBRTC_VIDEO_ENGINE_VIE_IMPL_H_ // NOLINT
12#define WEBRTC_VIDEO_ENGINE_VIE_IMPL_H_ // NOLINT
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
34#ifdef WEBRTC_VIDEO_ENGINE_NETWORK_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000035#include "video_engine/vie_network_impl.h"
niklase@google.com470e71d2011-07-07 08:21:25 +000036#endif
37#ifdef WEBRTC_VIDEO_ENGINE_RENDER_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000038#include "video_engine/vie_render_impl.h"
niklase@google.com470e71d2011-07-07 08:21:25 +000039#endif
40#ifdef WEBRTC_VIDEO_ENGINE_RTP_RTCP_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000041#include "video_engine/vie_rtp_rtcp_impl.h"
niklase@google.com470e71d2011-07-07 08:21:25 +000042#endif
43#ifdef WEBRTC_VIDEO_ENGINE_EXTERNAL_CODEC_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000044#include "video_engine/vie_external_codec_impl.h"
niklase@google.com470e71d2011-07-07 08:21:25 +000045#endif
46
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000047namespace webrtc {
niklase@google.com470e71d2011-07-07 08:21:25 +000048
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000049class VideoEngineImpl
50 : public ViEBaseImpl
niklase@google.com470e71d2011-07-07 08:21:25 +000051#ifdef WEBRTC_VIDEO_ENGINE_CODEC_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000052 , public ViECodecImpl
niklase@google.com470e71d2011-07-07 08:21:25 +000053#endif
54#ifdef WEBRTC_VIDEO_ENGINE_CAPTURE_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000055 , public ViECaptureImpl
niklase@google.com470e71d2011-07-07 08:21:25 +000056#endif
57#ifdef WEBRTC_VIDEO_ENGINE_ENCRYPTION_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000058 , public ViEEncryptionImpl
niklase@google.com470e71d2011-07-07 08:21:25 +000059#endif
60#ifdef WEBRTC_VIDEO_ENGINE_FILE_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000061 , public ViEFileImpl
niklase@google.com470e71d2011-07-07 08:21:25 +000062#endif
63#ifdef WEBRTC_VIDEO_ENGINE_IMAGE_PROCESS_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000064 , public ViEImageProcessImpl
niklase@google.com470e71d2011-07-07 08:21:25 +000065#endif
66#ifdef WEBRTC_VIDEO_ENGINE_NETWORK_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000067 , public ViENetworkImpl
niklase@google.com470e71d2011-07-07 08:21:25 +000068#endif
69#ifdef WEBRTC_VIDEO_ENGINE_RENDER_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000070 , public ViERenderImpl
niklase@google.com470e71d2011-07-07 08:21:25 +000071#endif
72#ifdef WEBRTC_VIDEO_ENGINE_RTP_RTCP_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000073 , public ViERTP_RTCPImpl
niklase@google.com470e71d2011-07-07 08:21:25 +000074#endif
75#ifdef WEBRTC_VIDEO_ENGINE_EXTERNAL_CODEC_API
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000076 , public ViEExternalCodecImpl
niklase@google.com470e71d2011-07-07 08:21:25 +000077#endif
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000078{ // NOLINT
79 public:
mflodman@webrtc.orgb11424b2012-01-25 13:42:03 +000080 VideoEngineImpl()
81 :
82#ifdef WEBRTC_VIDEO_ENGINE_CODEC_API
83 ViECodecImpl(ViEBaseImpl::shared_data())
84#endif
85#ifdef WEBRTC_VIDEO_ENGINE_CAPTURE_API
86 , ViECaptureImpl(ViEBaseImpl::shared_data())
87#endif
88#ifdef WEBRTC_VIDEO_ENGINE_ENCRYPTION_API
89 , ViEEncryptionImpl(ViEBaseImpl::shared_data())
90#endif
91#ifdef WEBRTC_VIDEO_ENGINE_FILE_API
92 , ViEFileImpl(ViEBaseImpl::shared_data())
93#endif
94#ifdef WEBRTC_VIDEO_ENGINE_IMAGE_PROCESS_API
95 , ViEImageProcessImpl(ViEBaseImpl::shared_data())
96#endif
97#ifdef WEBRTC_VIDEO_ENGINE_NETWORK_API
98 , ViENetworkImpl(ViEBaseImpl::shared_data())
99#endif
100#ifdef WEBRTC_VIDEO_ENGINE_RENDER_API
101 , ViERenderImpl(ViEBaseImpl::shared_data())
102#endif
103#ifdef WEBRTC_VIDEO_ENGINE_RTP_RTCP_API
104 , ViERTP_RTCPImpl(ViEBaseImpl::shared_data())
105#endif
106#ifdef WEBRTC_VIDEO_ENGINE_EXTERNAL_CODEC_API
107 , ViEExternalCodecImpl(ViEBaseImpl::shared_data())
108#endif
109 {}
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +0000110 virtual ~VideoEngineImpl() {}
niklase@google.com470e71d2011-07-07 08:21:25 +0000111};
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +0000112
niklase@google.com470e71d2011-07-07 08:21:25 +0000113} // namespace webrtc
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +0000114
mflodman@webrtc.orgcee447a2012-06-28 07:29:46 +0000115#endif // WEBRTC_VIDEO_ENGINE_VIE_IMPL_H_ // NOLINT