Remove a timer from ModuleRtpRtcpImpl2 that runs 100 times a second.

The timer fired a Notify call that goes to an object that already
receives callbacks for every packet from RtpSenderEgress.

Further optimizations will be realized by moving ownership
of the stats to the worker thread and then be able to remove
locking in a few classes that currently are tied to those
variables and the callbacks that previously did not come
from the same thread consistently.

We could furthermore get rid of one of these callback interfaces
and just use one.

Bug: webrtc:11581
Change-Id: I56ca5893c0153a87a4cbbe87d7741c39f9e66e52
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177422
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31575}
This commit is contained in:
Tomas Gunnarsson
2020-06-27 17:44:55 +02:00
committed by Commit Bot
parent 000953c8d1
commit 473bbd8131
6 changed files with 73 additions and 49 deletions

View File

@ -21,6 +21,7 @@
#include "absl/types/optional.h"
#include "api/rtp_headers.h"
#include "api/task_queue/task_queue_base.h"
#include "api/video/video_bitrate_allocation.h"
#include "modules/include/module_fec_types.h"
#include "modules/remote_bitrate_estimator/include/remote_bitrate_estimator.h"
@ -283,7 +284,7 @@ class ModuleRtpRtcpImpl2 final : public RtpRtcpInterface,
bool TimeToSendFullNackList(int64_t now) const;
SequenceChecker construction_thread_checker_;
TaskQueueBase* const worker_queue_;
SequenceChecker process_thread_checker_;
std::unique_ptr<RtpSenderContext> rtp_sender_;
@ -293,7 +294,6 @@ class ModuleRtpRtcpImpl2 final : public RtpRtcpInterface,
Clock* const clock_;
int64_t last_bitrate_process_time_;
int64_t last_rtt_process_time_;
int64_t next_process_time_;
uint16_t packet_overhead_;