diff --git a/webrtc/modules/video_coding/media_optimization.cc b/webrtc/modules/video_coding/media_optimization.cc index 7d7da352f8..d73fdfe1f0 100644 --- a/webrtc/modules/video_coding/media_optimization.cc +++ b/webrtc/modules/video_coding/media_optimization.cc @@ -37,18 +37,12 @@ struct MediaOptimization::EncodedFrameSample { MediaOptimization::MediaOptimization(Clock* clock) : clock_(clock), max_bit_rate_(0), - codec_width_(0), - codec_height_(0), user_frame_rate_(0), frame_dropper_(new FrameDropper), - send_statistics_zero_encode_(0), - max_payload_size_(1460), video_target_bitrate_(0), incoming_frame_rate_(0), encoded_frame_samples_(), - avg_sent_framerate_(0), - num_layers_(0) { - memset(send_statistics_, 0, sizeof(send_statistics_)); + avg_sent_framerate_(0) { memset(incoming_frame_times_, -1, sizeof(incoming_frame_times_)); } @@ -57,52 +51,34 @@ MediaOptimization::~MediaOptimization(void) { void MediaOptimization::Reset() { rtc::CritScope lock(&crit_sect_); - SetEncodingDataInternal(0, 0, 0, 0, 0, 0, max_payload_size_); + SetEncodingDataInternal(0, 0, 0); memset(incoming_frame_times_, -1, sizeof(incoming_frame_times_)); incoming_frame_rate_ = 0.0; frame_dropper_->Reset(); frame_dropper_->SetRates(0, 0); - send_statistics_zero_encode_ = 0; video_target_bitrate_ = 0; - codec_width_ = 0; - codec_height_ = 0; user_frame_rate_ = 0; encoded_frame_samples_.clear(); - num_layers_ = 1; } void MediaOptimization::SetEncodingData(int32_t max_bit_rate, uint32_t target_bitrate, - uint16_t width, - uint16_t height, - uint32_t frame_rate, - int num_layers, - int32_t mtu) { + uint32_t frame_rate) { rtc::CritScope lock(&crit_sect_); - SetEncodingDataInternal(max_bit_rate, frame_rate, target_bitrate, width, - height, num_layers, mtu); + SetEncodingDataInternal(max_bit_rate, frame_rate, target_bitrate); } void MediaOptimization::SetEncodingDataInternal(int32_t max_bit_rate, uint32_t frame_rate, - uint32_t target_bitrate, - uint16_t width, - uint16_t height, - int num_layers, - int32_t mtu) { + uint32_t target_bitrate) { // Everything codec specific should be reset here since this means the codec // has changed. - max_bit_rate_ = max_bit_rate; video_target_bitrate_ = target_bitrate; float target_bitrate_kbps = static_cast(target_bitrate) / 1000.0f; frame_dropper_->Reset(); frame_dropper_->SetRates(target_bitrate_kbps, static_cast(frame_rate)); user_frame_rate_ = static_cast(frame_rate); - codec_width_ = width; - codec_height_ = height; - num_layers_ = (num_layers <= 1) ? 1 : num_layers; // Can also be zero. - max_payload_size_ = mtu; } uint32_t MediaOptimization::SetTargetRates(uint32_t target_bitrate) { @@ -247,7 +223,7 @@ void MediaOptimization::ProcessIncomingFrameRate(int64_t now) { int32_t nr_of_frames = 0; for (num = 1; num < (kFrameCountHistorySize - 1); ++num) { if (incoming_frame_times_[num] <= 0 || - // don't use data older than 2 s + // Don't use data older than 2 s. now - incoming_frame_times_[num] > kFrameHistoryWinMs) { break; } else { diff --git a/webrtc/modules/video_coding/media_optimization.h b/webrtc/modules/video_coding/media_optimization.h index 2d368c708b..1e4179ca68 100644 --- a/webrtc/modules/video_coding/media_optimization.h +++ b/webrtc/modules/video_coding/media_optimization.h @@ -21,7 +21,6 @@ namespace webrtc { -// Forward declarations. class Clock; class FrameDropper; class VCMContentMetricsProcessing; @@ -42,14 +41,10 @@ class MediaOptimization { // VieEncoder. void SetEncodingData(int32_t max_bit_rate, uint32_t bit_rate, - uint16_t width, - uint16_t height, - uint32_t frame_rate, - int num_temporal_layers, - int32_t mtu); + uint32_t frame_rate); // Sets target rates for the encoder given the channel parameters. - // Input: target bitrate - the encoder target bitrate in bits/s. + // Input: |target bitrate| - the encoder target bitrate in bits/s. uint32_t SetTargetRates(uint32_t target_bitrate); void EnableFrameDropper(bool enable); @@ -76,8 +71,6 @@ class MediaOptimization { void UpdateIncomingFrameRate() EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); void PurgeOldFrameSamples(int64_t threshold_ms) EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); - // Updates the sent bitrate field, a call to PurgeOldFrameSamples must preceed - int GetSentBitrate(int64_t now_ms) EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); void UpdateSentFramerate() EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); void ProcessIncomingFrameRate(int64_t now) @@ -90,11 +83,7 @@ class MediaOptimization { void SetEncodingDataInternal(int32_t max_bit_rate, uint32_t frame_rate, - uint32_t bit_rate, - uint16_t width, - uint16_t height, - int num_temporal_layers, - int32_t mtu) + uint32_t bit_rate) EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); uint32_t InputFrameRateInternal() EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); @@ -106,19 +95,13 @@ class MediaOptimization { Clock* clock_ GUARDED_BY(crit_sect_); int32_t max_bit_rate_ GUARDED_BY(crit_sect_); - uint16_t codec_width_ GUARDED_BY(crit_sect_); - uint16_t codec_height_ GUARDED_BY(crit_sect_); float user_frame_rate_ GUARDED_BY(crit_sect_); std::unique_ptr frame_dropper_ GUARDED_BY(crit_sect_); - uint32_t send_statistics_[4] GUARDED_BY(crit_sect_); - uint32_t send_statistics_zero_encode_ GUARDED_BY(crit_sect_); - int32_t max_payload_size_ GUARDED_BY(crit_sect_); int video_target_bitrate_ GUARDED_BY(crit_sect_); float incoming_frame_rate_ GUARDED_BY(crit_sect_); int64_t incoming_frame_times_[kFrameCountHistorySize] GUARDED_BY(crit_sect_); std::list encoded_frame_samples_ GUARDED_BY(crit_sect_); uint32_t avg_sent_framerate_ GUARDED_BY(crit_sect_); - int num_layers_ GUARDED_BY(crit_sect_); }; } // namespace media_optimization } // namespace webrtc diff --git a/webrtc/modules/video_coding/video_sender.cc b/webrtc/modules/video_coding/video_sender.cc index 5ab607c51c..f60b6873fb 100644 --- a/webrtc/modules/video_coding/video_sender.cc +++ b/webrtc/modules/video_coding/video_sender.cc @@ -136,9 +136,8 @@ int32_t VideoSender::RegisterSendCodec(const VideoCodec* sendCodec, << " max frame rate " << sendCodec->maxFramerate << " max payload size " << maxPayloadSize; _mediaOpt.SetEncodingData(sendCodec->maxBitrate * 1000, - sendCodec->startBitrate * 1000, sendCodec->width, - sendCodec->height, sendCodec->maxFramerate, - numLayers, maxPayloadSize); + sendCodec->startBitrate * 1000, + sendCodec->maxFramerate); return VCM_OK; }