Expose a function for setting bandwidth estimation parameters in ViERTP_RTCP.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2591 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
astor@webrtc.org
2012-08-10 10:14:43 +00:00
parent b64dd31c3c
commit c0496e66f6
5 changed files with 34 additions and 1 deletions

View File

@ -256,6 +256,16 @@ class WEBRTC_DLLEXPORT ViERTP_RTCP {
const int video_channel, const int video_channel,
unsigned int* estimated_bandwidth) const = 0; unsigned int* estimated_bandwidth) const = 0;
// This function sets various options for the bandwidth estimator
// code. The options are applied to new channels only. For a given
// channel, the options that are active at the time when the channel
// is created are immutable for that channel. See
// http://tools.ietf.org/html/draft-alvestrand-rtcweb-congestion-02
// (or later, updated documentation) and common_types.h to get a
// feel for what the options do.
virtual int SetOverUseDetectorOptions(
const OverUseDetectorOptions& options) const = 0;
// This function enables capturing of RTP packets to a binary file on a // This function enables capturing of RTP packets to a binary file on a
// specific channel and for a given direction. The file can later be // specific channel and for a given direction. The file can later be
// replayed using e.g. RTP Tools rtpplay since the binary file format is // replayed using e.g. RTP Tools rtpplay since the binary file format is

View File

@ -761,6 +761,22 @@ int ViERTP_RTCPImpl::GetEstimatedReceiveBandwidth(
static_cast<WebRtc_UWord32*>(estimated_bandwidth)); static_cast<WebRtc_UWord32*>(estimated_bandwidth));
} }
int ViERTP_RTCPImpl::SetOverUseDetectorOptions(
const OverUseDetectorOptions& options) const {
if (!shared_data_->Initialized()) {
shared_data_->SetLastError(kViENotInitialized);
WEBRTC_TRACE(kTraceError, kTraceVideo, ViEId(shared_data_->instance_id()),
"%s - ViE instance %d not initialized", __FUNCTION__,
shared_data_->instance_id());
return -1;
}
// Lock the channel manager to avoid creating a channel with
// "undefined" bwe settings (atomic copy).
ViEChannelManagerScoped cs(*(shared_data_->channel_manager()));
shared_data_->SetOverUseDetectorOptions(options);
return 0;
}
int ViERTP_RTCPImpl::StartRTPDump(const int video_channel, int ViERTP_RTCPImpl::StartRTPDump(const int video_channel,
const char file_nameUTF8[1024], const char file_nameUTF8[1024],
RTPDirections direction) { RTPDirections direction) {

View File

@ -95,6 +95,8 @@ class ViERTP_RTCPImpl
virtual int GetEstimatedReceiveBandwidth( virtual int GetEstimatedReceiveBandwidth(
const int video_channel, const int video_channel,
unsigned int* estimated_bandwidth) const; unsigned int* estimated_bandwidth) const;
virtual int SetOverUseDetectorOptions(
const OverUseDetectorOptions& options) const;
virtual int StartRTPDump(const int video_channel, virtual int StartRTPDump(const int video_channel,
const char file_nameUTF8[1024], const char file_nameUTF8[1024],
RTPDirections direction); RTPDirections direction);

View File

@ -75,6 +75,11 @@ int ViESharedData::LastErrorInternal() const {
return error; return error;
} }
void ViESharedData::SetOverUseDetectorOptions(
const OverUseDetectorOptions& options) {
over_use_detector_options_ = options;
}
int ViESharedData::NumberOfCores() const { int ViESharedData::NumberOfCores() const {
return number_cores_; return number_cores_;
} }

View File

@ -34,7 +34,7 @@ class ViESharedData {
int SetUnInitialized(); int SetUnInitialized();
void SetLastError(const int error) const; void SetLastError(const int error) const;
int LastErrorInternal() const; int LastErrorInternal() const;
void SetOverUseDetectorOptions(const OverUseDetectorOptions& options);
int NumberOfCores() const; int NumberOfCores() const;
int instance_id() { return instance_id_;} int instance_id() { return instance_id_;}