blob: ad6e30653965c325a4311bee647ad3b58cfb5577 [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
andresp@webrtc.org44272732013-05-08 19:20:23 +000048 : public ViEBaseImpl,
niklase@google.com470e71d2011-07-07 08:21:25 +000049#ifdef WEBRTC_VIDEO_ENGINE_CODEC_API
andresp@webrtc.org44272732013-05-08 19:20:23 +000050 public ViECodecImpl,
niklase@google.com470e71d2011-07-07 08:21:25 +000051#endif
52#ifdef WEBRTC_VIDEO_ENGINE_CAPTURE_API
andresp@webrtc.org44272732013-05-08 19:20:23 +000053 public ViECaptureImpl,
niklase@google.com470e71d2011-07-07 08:21:25 +000054#endif
55#ifdef WEBRTC_VIDEO_ENGINE_ENCRYPTION_API
andresp@webrtc.org44272732013-05-08 19:20:23 +000056 public ViEEncryptionImpl,
niklase@google.com470e71d2011-07-07 08:21:25 +000057#endif
58#ifdef WEBRTC_VIDEO_ENGINE_FILE_API
andresp@webrtc.org44272732013-05-08 19:20:23 +000059 public ViEFileImpl,
niklase@google.com470e71d2011-07-07 08:21:25 +000060#endif
61#ifdef WEBRTC_VIDEO_ENGINE_IMAGE_PROCESS_API
andresp@webrtc.org44272732013-05-08 19:20:23 +000062 public ViEImageProcessImpl,
niklase@google.com470e71d2011-07-07 08:21:25 +000063#endif
andresp@webrtc.org44272732013-05-08 19:20:23 +000064 public ViENetworkImpl,
niklase@google.com470e71d2011-07-07 08:21:25 +000065#ifdef WEBRTC_VIDEO_ENGINE_RENDER_API
andresp@webrtc.org44272732013-05-08 19:20:23 +000066 public ViERenderImpl,
niklase@google.com470e71d2011-07-07 08:21:25 +000067#endif
68#ifdef WEBRTC_VIDEO_ENGINE_RTP_RTCP_API
andresp@webrtc.org44272732013-05-08 19:20:23 +000069 public ViERTP_RTCPImpl,
niklase@google.com470e71d2011-07-07 08:21:25 +000070#endif
71#ifdef WEBRTC_VIDEO_ENGINE_EXTERNAL_CODEC_API
andresp@webrtc.org44272732013-05-08 19:20:23 +000072 public ViEExternalCodecImpl,
niklase@google.com470e71d2011-07-07 08:21:25 +000073#endif
andresp@webrtc.org44272732013-05-08 19:20:23 +000074 public VideoEngine
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +000075{ // NOLINT
76 public:
mflodman@webrtc.orgb11424b2012-01-25 13:42:03 +000077 VideoEngineImpl()
78 :
79#ifdef WEBRTC_VIDEO_ENGINE_CODEC_API
80 ViECodecImpl(ViEBaseImpl::shared_data())
81#endif
82#ifdef WEBRTC_VIDEO_ENGINE_CAPTURE_API
83 , ViECaptureImpl(ViEBaseImpl::shared_data())
84#endif
85#ifdef WEBRTC_VIDEO_ENGINE_ENCRYPTION_API
86 , ViEEncryptionImpl(ViEBaseImpl::shared_data())
87#endif
88#ifdef WEBRTC_VIDEO_ENGINE_FILE_API
89 , ViEFileImpl(ViEBaseImpl::shared_data())
90#endif
91#ifdef WEBRTC_VIDEO_ENGINE_IMAGE_PROCESS_API
92 , ViEImageProcessImpl(ViEBaseImpl::shared_data())
93#endif
mflodman@webrtc.orgb11424b2012-01-25 13:42:03 +000094 , ViENetworkImpl(ViEBaseImpl::shared_data())
mflodman@webrtc.orgb11424b2012-01-25 13:42:03 +000095#ifdef WEBRTC_VIDEO_ENGINE_RENDER_API
96 , ViERenderImpl(ViEBaseImpl::shared_data())
97#endif
98#ifdef WEBRTC_VIDEO_ENGINE_RTP_RTCP_API
99 , ViERTP_RTCPImpl(ViEBaseImpl::shared_data())
100#endif
101#ifdef WEBRTC_VIDEO_ENGINE_EXTERNAL_CODEC_API
102 , ViEExternalCodecImpl(ViEBaseImpl::shared_data())
103#endif
104 {}
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +0000105 virtual ~VideoEngineImpl() {}
niklase@google.com470e71d2011-07-07 08:21:25 +0000106};
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +0000107
niklase@google.com470e71d2011-07-07 08:21:25 +0000108} // namespace webrtc
mflodman@webrtc.org1bdf1df2011-12-20 11:57:47 +0000109
mflodman@webrtc.orge06ca3c2012-06-29 13:20:14 +0000110#endif // WEBRTC_VIDEO_ENGINE_VIE_IMPL_H_