• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
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_IMAGE_PROCESS_IMPL_H_
12 #define WEBRTC_VIDEO_ENGINE_VIE_IMAGE_PROCESS_IMPL_H_
13 
14 #include "webrtc/typedefs.h"
15 #include "webrtc/video_engine/include/vie_image_process.h"
16 #include "webrtc/video_engine/vie_ref_count.h"
17 
18 namespace webrtc {
19 
20 class ViESharedData;
21 
22 class ViEImageProcessImpl
23     : public ViEImageProcess,
24       public ViERefCount {
25  public:
26   // Implements ViEImageProcess.
27   virtual int Release();
28   virtual int RegisterCaptureEffectFilter(const int capture_id,
29                                           ViEEffectFilter& capture_filter);
30   virtual int DeregisterCaptureEffectFilter(const int capture_id);
31   virtual int RegisterSendEffectFilter(const int video_channel,
32                                        ViEEffectFilter& send_filter);
33   virtual int DeregisterSendEffectFilter(const int video_channel);
34   virtual int RegisterRenderEffectFilter(const int video_channel,
35                                          ViEEffectFilter& render_filter);
36   virtual int DeregisterRenderEffectFilter(const int video_channel);
37   virtual int EnableDeflickering(const int capture_id, const bool enable);
38   virtual int EnableDenoising(const int capture_id, const bool enable);
39   virtual int EnableColorEnhancement(const int video_channel,
40                                      const bool enable);
41   virtual void RegisterPreEncodeCallback(
42       int video_channel,
43       I420FrameCallback* pre_encode_callback) OVERRIDE;
44   virtual void DeRegisterPreEncodeCallback(int video_channel) OVERRIDE;
45 
46   virtual void RegisterPostEncodeImageCallback(
47       int video_channel,
48       EncodedImageCallback* post_encode_callback) OVERRIDE;
49   virtual void DeRegisterPostEncodeCallback(int video_channel) OVERRIDE;
50 
51   virtual void RegisterPreDecodeImageCallback(
52         int video_channel,
53         EncodedImageCallback* post_encode_callback) OVERRIDE;
54   virtual void DeRegisterPreDecodeCallback(int video_channel) OVERRIDE;
55 
56   virtual void RegisterPreRenderCallback(
57       int video_channel,
58       I420FrameCallback* pre_render_callback) OVERRIDE;
59   virtual void DeRegisterPreRenderCallback(int video_channel) OVERRIDE;
60 
61  protected:
62   explicit ViEImageProcessImpl(ViESharedData* shared_data);
63   virtual ~ViEImageProcessImpl();
64 
65  private:
66   ViESharedData* shared_data_;
67 };
68 
69 }  // namespace webrtc
70 
71 #endif  // WEBRTC_VIDEO_ENGINE_VIE_IMAGE_PROCESS_IMPL_H_
72