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:
@ -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),
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
Reference in New Issue
Block a user