Wire up target_media_bitrate in VideoSendStream.

Also wires up target_enc_bitrate in WebRtcVideoEngine2.

BUG=1667,1788
R=mflodman@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8515}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8515 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
pbos@webrtc.org
2015-02-26 13:15:22 +00:00
parent 9dd0ebc379
commit 891d48393e
24 changed files with 172 additions and 54 deletions

View File

@ -102,7 +102,7 @@ ViEChannel::ViEChannel(int32_t channel_id,
rtp_rtcp_cs_(CriticalSectionWrapper::CreateCriticalSection()),
send_payload_router_(new PayloadRouter()),
vcm_protection_callback_(new ViEChannelProtectionCallback(this)),
vcm_(VideoCodingModule::Create()),
vcm_(VideoCodingModule::Create(nullptr)),
vie_receiver_(channel_id, vcm_, remote_bitrate_estimator, this),
vie_sender_(channel_id),
vie_sync_(vcm_, this),

View File

@ -136,7 +136,7 @@ ViEEncoder::ViEEncoder(int32_t channel_id,
: channel_id_(channel_id),
number_of_cores_(number_of_cores),
disable_default_encoder_(disable_default_encoder),
vcm_(*webrtc::VideoCodingModule::Create()),
vcm_(*webrtc::VideoCodingModule::Create(this)),
vpm_(*webrtc::VideoProcessingModule::Create(ViEModuleId(-1, channel_id))),
send_payload_router_(NULL),
vcm_protection_callback_(NULL),
@ -705,6 +705,12 @@ void ViEEncoder::SetSenderBufferingMode(int target_delay_ms) {
}
}
void ViEEncoder::OnSetRates(uint32_t bitrate_bps, int framerate) {
CriticalSectionScoped cs(callback_cs_.get());
if (send_statistics_proxy_ != nullptr)
send_statistics_proxy_->OnSetRates(bitrate_bps, framerate);
}
int32_t ViEEncoder::SendData(
const uint8_t payload_type,
const EncodedImage& encoded_image,
@ -712,8 +718,10 @@ int32_t ViEEncoder::SendData(
const RTPVideoHeader* rtp_video_hdr) {
DCHECK(send_payload_router_ != NULL);
if (send_statistics_proxy_ != NULL) {
send_statistics_proxy_->OnSendEncodedImage(encoded_image, rtp_video_hdr);
{
CriticalSectionScoped cs(callback_cs_.get());
if (send_statistics_proxy_ != NULL)
send_statistics_proxy_->OnSendEncodedImage(encoded_image, rtp_video_hdr);
}
return send_payload_router_->RoutePayload(
@ -959,6 +967,7 @@ void ViEEncoder::DeRegisterPostEncodeImageCallback() {
void ViEEncoder::RegisterSendStatisticsProxy(
SendStatisticsProxy* send_statistics_proxy) {
CriticalSectionScoped cs(callback_cs_.get());
send_statistics_proxy_ = send_statistics_proxy;
}

View File

@ -46,6 +46,7 @@ class ViEPacedSenderCallback;
class ViEEncoder
: public RtcpIntraFrameObserver,
public VideoEncoderRateObserver,
public VCMPacketizationCallback,
public VCMSendStatisticsCallback,
public ViEFrameCallback {
@ -130,6 +131,9 @@ class ViEEncoder
// Buffering mode.
void SetSenderBufferingMode(int target_delay_ms);
// Implements VideoEncoderRateObserver.
void OnSetRates(uint32_t bitrate_bps, int framerate) override;
// Implements VCMPacketizationCallback.
virtual int32_t SendData(uint8_t payload_type,
const EncodedImage& encoded_image,
@ -243,7 +247,7 @@ class ViEEncoder
I420FrameCallback* pre_encode_callback_ GUARDED_BY(callback_cs_);
const int64_t start_ms_;
SendStatisticsProxy* send_statistics_proxy_;
SendStatisticsProxy* send_statistics_proxy_ GUARDED_BY(callback_cs_);
};
} // namespace webrtc