Reduce implementations of CallStatsObserver by 2.
Both of these implementations are added as observers by VideoReceiveStream, which is also an observer. Instead, VideoReceiveStream now forward the necessary information when the stats are updated as is already done for |frame_buffer_|. Fewer observers registered, simplifies the code a little bit, reduces synchronization when registering/unregistering observers and reduces the set of existing implementations. (I'm changing call_stats.* a little bit, so this is a by-the-way change) Bug: none Change-Id: I2d40b80a60e5ca632293c5118ac3b1a35d48ea40 Reviewed-on: https://webrtc-review.googlesource.com/64524 Reviewed-by: Magnus Flodman <mflodman@webrtc.org> Commit-Queue: Tommi <tommi@webrtc.org> Cr-Commit-Position: refs/heads/master@{#22594}
This commit is contained in:
parent
6b28e20257
commit
81de14ffd4
@ -359,8 +359,7 @@ void RtpVideoStreamReceiver::OnCompleteFrame(
|
||||
complete_frame_callback_->OnCompleteFrame(std::move(frame));
|
||||
}
|
||||
|
||||
void RtpVideoStreamReceiver::OnRttUpdate(int64_t avg_rtt_ms,
|
||||
int64_t max_rtt_ms) {
|
||||
void RtpVideoStreamReceiver::UpdateRtt(int64_t max_rtt_ms) {
|
||||
if (nack_module_)
|
||||
nack_module_->UpdateRtt(max_rtt_ms);
|
||||
}
|
||||
|
||||
@ -60,8 +60,7 @@ class RtpVideoStreamReceiver : public RtpData,
|
||||
public VCMFrameTypeCallback,
|
||||
public VCMPacketRequestCallback,
|
||||
public video_coding::OnReceivedFrameCallback,
|
||||
public video_coding::OnCompleteFrameCallback,
|
||||
public CallStatsObserver {
|
||||
public video_coding::OnCompleteFrameCallback {
|
||||
public:
|
||||
RtpVideoStreamReceiver(
|
||||
Transport* transport,
|
||||
@ -132,7 +131,8 @@ class RtpVideoStreamReceiver : public RtpData,
|
||||
void OnCompleteFrame(
|
||||
std::unique_ptr<video_coding::EncodedFrame> frame) override;
|
||||
|
||||
void OnRttUpdate(int64_t avg_rtt_ms, int64_t max_rtt_ms) override;
|
||||
// Called by VideoReceiveStream when stats are updated.
|
||||
void UpdateRtt(int64_t max_rtt_ms);
|
||||
|
||||
rtc::Optional<int64_t> LastReceivedPacketMs() const;
|
||||
rtc::Optional<int64_t> LastReceivedKeyframePacketMs() const;
|
||||
|
||||
@ -180,7 +180,6 @@ void VideoReceiveStream::Start() {
|
||||
rtp_video_stream_receiver_.IsUlpfecEnabled();
|
||||
|
||||
frame_buffer_->Start();
|
||||
call_stats_->RegisterStatsObserver(&rtp_video_stream_receiver_);
|
||||
call_stats_->RegisterStatsObserver(this);
|
||||
|
||||
if (rtp_video_stream_receiver_.IsRetransmissionsEnabled() &&
|
||||
@ -216,8 +215,6 @@ void VideoReceiveStream::Start() {
|
||||
&rtp_video_stream_receiver_,
|
||||
rtp_video_stream_receiver_.IsRetransmissionsEnabled(), protected_by_fec,
|
||||
&stats_proxy_, renderer));
|
||||
// Register the channel to receive stats updates.
|
||||
call_stats_->RegisterStatsObserver(video_stream_decoder_.get());
|
||||
|
||||
process_thread_->RegisterModule(&video_receiver_, RTC_FROM_HERE);
|
||||
|
||||
@ -237,7 +234,6 @@ void VideoReceiveStream::Stop() {
|
||||
|
||||
frame_buffer_->Stop();
|
||||
call_stats_->DeregisterStatsObserver(this);
|
||||
call_stats_->DeregisterStatsObserver(&rtp_video_stream_receiver_);
|
||||
process_thread_->DeRegisterModule(&video_receiver_);
|
||||
|
||||
if (decode_thread_.IsRunning()) {
|
||||
@ -257,7 +253,6 @@ void VideoReceiveStream::Stop() {
|
||||
video_receiver_.RegisterExternalDecoder(nullptr, decoder.payload_type);
|
||||
}
|
||||
|
||||
call_stats_->DeregisterStatsObserver(video_stream_decoder_.get());
|
||||
video_stream_decoder_.reset();
|
||||
incoming_video_stream_.reset();
|
||||
transport_adapter_.Disable();
|
||||
@ -362,7 +357,10 @@ void VideoReceiveStream::OnCompleteFrame(
|
||||
}
|
||||
|
||||
void VideoReceiveStream::OnRttUpdate(int64_t avg_rtt_ms, int64_t max_rtt_ms) {
|
||||
RTC_DCHECK_CALLED_SEQUENTIALLY(&module_process_sequence_checker_);
|
||||
frame_buffer_->UpdateRtt(max_rtt_ms);
|
||||
rtp_video_stream_receiver_.UpdateRtt(max_rtt_ms);
|
||||
video_stream_decoder_->UpdateRtt(max_rtt_ms);
|
||||
}
|
||||
|
||||
int VideoReceiveStream::id() const {
|
||||
|
||||
@ -125,7 +125,7 @@ void VideoStreamDecoder::OnCompleteFrame(bool is_keyframe,
|
||||
size_t size_bytes,
|
||||
VideoContentType content_type) {}
|
||||
|
||||
void VideoStreamDecoder::OnRttUpdate(int64_t avg_rtt_ms, int64_t max_rtt_ms) {
|
||||
void VideoStreamDecoder::UpdateRtt(int64_t max_rtt_ms) {
|
||||
video_receiver_->SetReceiveChannelParameters(max_rtt_ms);
|
||||
}
|
||||
} // namespace webrtc
|
||||
|
||||
@ -42,8 +42,7 @@ enum StreamType {
|
||||
};
|
||||
|
||||
class VideoStreamDecoder : public VCMReceiveCallback,
|
||||
public VCMReceiveStatisticsCallback,
|
||||
public CallStatsObserver {
|
||||
public VCMReceiveStatisticsCallback {
|
||||
public:
|
||||
friend class ChannelStatsObserver;
|
||||
|
||||
@ -85,8 +84,8 @@ class VideoStreamDecoder : public VCMReceiveCallback,
|
||||
void RegisterReceiveStatisticsProxy(
|
||||
ReceiveStatisticsProxy* receive_statistics_proxy);
|
||||
|
||||
// Implements StatsObserver.
|
||||
void OnRttUpdate(int64_t avg_rtt_ms, int64_t max_rtt_ms) override;
|
||||
// Called by VideoReceiveStream when stats are updated.
|
||||
void UpdateRtt(int64_t max_rtt_ms);
|
||||
|
||||
private:
|
||||
// Used for all registered callbacks except rendering.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user