webrtc_m130/webrtc/video_engine/vie_codec_impl.h
henrik.lundin@webrtc.org 1a3a6e5340 Removing the threshold from the auto-mute APIs
The threshold is now set equal to the minimum bitrate of the
encoder. The test is also changed to have the REMB values
depend on the minimum bitrate from the encoder.

BUG=2436
R=pbos@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2919004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5040 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-28 10:16:14 +00:00

88 lines
3.7 KiB
C++

/*
* Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#ifndef WEBRTC_VIDEO_ENGINE_VIE_CODEC_IMPL_H_
#define WEBRTC_VIDEO_ENGINE_VIE_CODEC_IMPL_H_
#include "webrtc/typedefs.h"
#include "webrtc/video_engine/include/vie_codec.h"
#include "webrtc/video_engine/vie_defines.h"
#include "webrtc/video_engine/vie_ref_count.h"
namespace webrtc {
class ViESharedData;
class ViECodecImpl
: public ViECodec,
public ViERefCount {
public:
virtual int Release();
// Implements ViECodec.
virtual int NumberOfCodecs() const;
virtual int GetCodec(const unsigned char list_number,
VideoCodec& video_codec) const;
virtual int SetSendCodec(const int video_channel,
const VideoCodec& video_codec);
virtual int GetSendCodec(const int video_channel,
VideoCodec& video_codec) const;
virtual int SetReceiveCodec(const int video_channel,
const VideoCodec& video_codec);
virtual int GetReceiveCodec(const int video_channel,
VideoCodec& video_codec) const;
virtual int GetCodecConfigParameters(
const int video_channel,
unsigned char config_parameters[kConfigParameterSize],
unsigned char& config_parameters_size) const;
virtual int SetImageScaleStatus(const int video_channel, const bool enable);
virtual int GetSendCodecStastistics(const int video_channel,
unsigned int& key_frames,
unsigned int& delta_frames) const;
virtual int GetReceiveCodecStastistics(const int video_channel,
unsigned int& key_frames,
unsigned int& delta_frames) const;
virtual int GetReceiveSideDelay(const int video_channel,
int* delay_ms) const;
virtual int GetCodecTargetBitrate(const int video_channel,
unsigned int* bitrate) const;
virtual unsigned int GetDiscardedPackets(const int video_channel) const;
virtual int SetKeyFrameRequestCallbackStatus(const int video_channel,
const bool enable);
virtual int SetSignalKeyPacketLossStatus(const int video_channel,
const bool enable,
const bool only_key_frames = false);
virtual int RegisterEncoderObserver(const int video_channel,
ViEEncoderObserver& observer);
virtual int DeregisterEncoderObserver(const int video_channel);
virtual int RegisterDecoderObserver(const int video_channel,
ViEDecoderObserver& observer);
virtual int DeregisterDecoderObserver(const int video_channel);
virtual int SendKeyFrame(const int video_channel);
virtual int WaitForFirstKeyFrame(const int video_channel, const bool wait);
virtual int StartDebugRecording(int video_channel,
const char* file_name_utf8);
virtual int StopDebugRecording(int video_channel);
virtual void EnableAutoMuting(int video_channel);
protected:
explicit ViECodecImpl(ViESharedData* shared_data);
virtual ~ViECodecImpl();
private:
bool CodecValid(const VideoCodec& video_codec);
ViESharedData* shared_data_;
};
} // namespace webrtc
#endif // WEBRTC_VIDEO_ENGINE_VIE_CODEC_IMPL_H_