blob: 7c8f4a20fd9262fdfee8146e997b13515502440e [file] [log] [blame]
andrew@webrtc.orgb015cbe2012-10-22 18:19:23 +00001/*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 *
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
11#ifndef WEBRTC_VIDEO_ENGINE_VIE_EXTERNAL_CODEC_IMPL_H_
12#define WEBRTC_VIDEO_ENGINE_VIE_EXTERNAL_CODEC_IMPL_H_
13
pbos@webrtc.org281cff82013-05-17 13:44:48 +000014#include "webrtc/video_engine/include/vie_external_codec.h"
15#include "webrtc/video_engine/vie_ref_count.h"
andrew@webrtc.orgb015cbe2012-10-22 18:19:23 +000016
17namespace webrtc {
18
19class ViESharedData;
20
21class ViEExternalCodecImpl
22 : public ViEExternalCodec,
23 public ViERefCount {
24 public:
25 // Implements ViEExternalCodec.
26 virtual int Release();
27 virtual int RegisterExternalSendCodec(const int video_channel,
28 const unsigned char pl_type,
stefan@webrtc.org71f3f682013-01-09 08:35:40 +000029 VideoEncoder* encoder,
30 bool internal_source = false);
andrew@webrtc.orgb015cbe2012-10-22 18:19:23 +000031 virtual int DeRegisterExternalSendCodec(const int video_channel,
32 const unsigned char pl_type);
33 virtual int RegisterExternalReceiveCodec(const int video_channel,
34 const unsigned int pl_type,
35 VideoDecoder* decoder,
36 bool decoder_render = false,
37 int render_delay = 0);
38 virtual int DeRegisterExternalReceiveCodec(const int video_channel,
39 const unsigned char pl_type);
40
41 protected:
42 explicit ViEExternalCodecImpl(ViESharedData* shared_data);
43 virtual ~ViEExternalCodecImpl();
44
45 private:
46 ViESharedData* shared_data_;
47};
48
49} // namespace webrtc
50
51#endif // WEBRTC_VIDEO_ENGINE_VIE_EXTERNAL_CODEC_IMPL_H_