Home | History | Annotate | Download | only in video_engine
      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_EXTERNAL_CODEC_IMPL_H_
     12 #define WEBRTC_VIDEO_ENGINE_VIE_EXTERNAL_CODEC_IMPL_H_
     13 
     14 #include "webrtc/video_engine/include/vie_external_codec.h"
     15 #include "webrtc/video_engine/vie_ref_count.h"
     16 
     17 namespace webrtc {
     18 
     19 class ViESharedData;
     20 
     21 class 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,
     29                                         VideoEncoder* encoder,
     30                                         bool internal_source = false);
     31   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_
     52