Rename EncoderKeyFrameCallback back to EncoderRtcpFeedback
The name EncoderRtcpFeedback is more appropriate because: 1. "Callback" implies a single function exposed, which is not the case. 2. We intend to add OnLossNotification() to the same class. Bug: webrtc:10501 Change-Id: I75b2e06eb070e85e872eba9fbc354aa4b68c7993 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131289 Commit-Queue: Elad Alon <eladalon@webrtc.org> Reviewed-by: Erik Språng <sprang@webrtc.org> Reviewed-by: Niels Moller <nisse@webrtc.org> Cr-Commit-Position: refs/heads/master@{#27490}
This commit is contained in:
parent
8b60e8bc34
commit
14d1c9d968
@ -14,8 +14,8 @@ rtc_static_library("video") {
|
|||||||
"buffered_frame_decryptor.h",
|
"buffered_frame_decryptor.h",
|
||||||
"call_stats.cc",
|
"call_stats.cc",
|
||||||
"call_stats.h",
|
"call_stats.h",
|
||||||
"encoder_key_frame_callback.cc",
|
"encoder_rtcp_feedback.cc",
|
||||||
"encoder_key_frame_callback.h",
|
"encoder_rtcp_feedback.h",
|
||||||
"quality_threshold.cc",
|
"quality_threshold.cc",
|
||||||
"quality_threshold.h",
|
"quality_threshold.h",
|
||||||
"receive_statistics_proxy.cc",
|
"receive_statistics_proxy.cc",
|
||||||
@ -465,8 +465,8 @@ if (rtc_include_tests) {
|
|||||||
"call_stats_unittest.cc",
|
"call_stats_unittest.cc",
|
||||||
"cpu_scaling_tests.cc",
|
"cpu_scaling_tests.cc",
|
||||||
"encoder_bitrate_adjuster_unittest.cc",
|
"encoder_bitrate_adjuster_unittest.cc",
|
||||||
"encoder_key_frame_callback_unittest.cc",
|
|
||||||
"encoder_overshoot_detector_unittest.cc",
|
"encoder_overshoot_detector_unittest.cc",
|
||||||
|
"encoder_rtcp_feedback_unittest.cc",
|
||||||
"end_to_end_tests/bandwidth_tests.cc",
|
"end_to_end_tests/bandwidth_tests.cc",
|
||||||
"end_to_end_tests/call_operation_tests.cc",
|
"end_to_end_tests/call_operation_tests.cc",
|
||||||
"end_to_end_tests/codec_tests.cc",
|
"end_to_end_tests/codec_tests.cc",
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
* be found in the AUTHORS file in the root of the source tree.
|
* be found in the AUTHORS file in the root of the source tree.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "video/encoder_key_frame_callback.h"
|
#include "video/encoder_rtcp_feedback.h"
|
||||||
|
|
||||||
#include "absl/types/optional.h"
|
#include "absl/types/optional.h"
|
||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
@ -20,10 +20,9 @@ namespace {
|
|||||||
constexpr int kMinKeyframeSendIntervalMs = 300;
|
constexpr int kMinKeyframeSendIntervalMs = 300;
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
EncoderKeyFrameCallback::EncoderKeyFrameCallback(
|
EncoderRtcpFeedback::EncoderRtcpFeedback(Clock* clock,
|
||||||
Clock* clock,
|
const std::vector<uint32_t>& ssrcs,
|
||||||
const std::vector<uint32_t>& ssrcs,
|
VideoStreamEncoderInterface* encoder)
|
||||||
VideoStreamEncoderInterface* encoder)
|
|
||||||
: clock_(clock),
|
: clock_(clock),
|
||||||
ssrcs_(ssrcs),
|
ssrcs_(ssrcs),
|
||||||
video_stream_encoder_(encoder),
|
video_stream_encoder_(encoder),
|
||||||
@ -35,7 +34,7 @@ EncoderKeyFrameCallback::EncoderKeyFrameCallback(
|
|||||||
RTC_DCHECK(!ssrcs.empty());
|
RTC_DCHECK(!ssrcs.empty());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool EncoderKeyFrameCallback::HasSsrc(uint32_t ssrc) {
|
bool EncoderRtcpFeedback::HasSsrc(uint32_t ssrc) {
|
||||||
for (uint32_t registered_ssrc : ssrcs_) {
|
for (uint32_t registered_ssrc : ssrcs_) {
|
||||||
if (registered_ssrc == ssrc) {
|
if (registered_ssrc == ssrc) {
|
||||||
return true;
|
return true;
|
||||||
@ -44,7 +43,7 @@ bool EncoderKeyFrameCallback::HasSsrc(uint32_t ssrc) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void EncoderKeyFrameCallback::OnReceivedIntraFrameRequest(uint32_t ssrc) {
|
void EncoderRtcpFeedback::OnReceivedIntraFrameRequest(uint32_t ssrc) {
|
||||||
RTC_DCHECK(HasSsrc(ssrc));
|
RTC_DCHECK(HasSsrc(ssrc));
|
||||||
{
|
{
|
||||||
int64_t now_ms = clock_->TimeInMilliseconds();
|
int64_t now_ms = clock_->TimeInMilliseconds();
|
||||||
@ -59,7 +58,7 @@ void EncoderKeyFrameCallback::OnReceivedIntraFrameRequest(uint32_t ssrc) {
|
|||||||
video_stream_encoder_->SendKeyFrame();
|
video_stream_encoder_->SendKeyFrame();
|
||||||
}
|
}
|
||||||
|
|
||||||
void EncoderKeyFrameCallback::OnKeyFrameRequested(uint64_t channel_id) {
|
void EncoderRtcpFeedback::OnKeyFrameRequested(uint64_t channel_id) {
|
||||||
if (channel_id != ssrcs_[0]) {
|
if (channel_id != ssrcs_[0]) {
|
||||||
RTC_LOG(LS_INFO) << "Key frame request on unknown channel id " << channel_id
|
RTC_LOG(LS_INFO) << "Key frame request on unknown channel id " << channel_id
|
||||||
<< " expected " << ssrcs_[0];
|
<< " expected " << ssrcs_[0];
|
||||||
@ -7,8 +7,8 @@
|
|||||||
* in the file PATENTS. All contributing project authors may
|
* in the file PATENTS. All contributing project authors may
|
||||||
* be found in the AUTHORS file in the root of the source tree.
|
* be found in the AUTHORS file in the root of the source tree.
|
||||||
*/
|
*/
|
||||||
#ifndef VIDEO_ENCODER_KEY_FRAME_CALLBACK_H_
|
#ifndef VIDEO_ENCODER_RTCP_FEEDBACK_H_
|
||||||
#define VIDEO_ENCODER_KEY_FRAME_CALLBACK_H_
|
#define VIDEO_ENCODER_RTCP_FEEDBACK_H_
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
@ -22,16 +22,16 @@ namespace webrtc {
|
|||||||
|
|
||||||
class VideoStreamEncoderInterface;
|
class VideoStreamEncoderInterface;
|
||||||
|
|
||||||
// This class receives keyframe requests from either Mediatransport or the
|
// This class passes feedback (such as key frame requests or loss notifications)
|
||||||
// RtpRtcp module.
|
// from either Mediatransport or the RtpRtcp module.
|
||||||
// TODO(bugs.webrtc.org/9719): Should be eliminated when RtpMediaTransport is
|
// TODO(bugs.webrtc.org/9719): Should be eliminated when RtpMediaTransport is
|
||||||
// implemented.
|
// implemented.
|
||||||
class EncoderKeyFrameCallback : public RtcpIntraFrameObserver,
|
class EncoderRtcpFeedback : public RtcpIntraFrameObserver,
|
||||||
public MediaTransportKeyFrameRequestCallback {
|
public MediaTransportKeyFrameRequestCallback {
|
||||||
public:
|
public:
|
||||||
EncoderKeyFrameCallback(Clock* clock,
|
EncoderRtcpFeedback(Clock* clock,
|
||||||
const std::vector<uint32_t>& ssrcs,
|
const std::vector<uint32_t>& ssrcs,
|
||||||
VideoStreamEncoderInterface* encoder);
|
VideoStreamEncoderInterface* encoder);
|
||||||
void OnReceivedIntraFrameRequest(uint32_t ssrc) override;
|
void OnReceivedIntraFrameRequest(uint32_t ssrc) override;
|
||||||
|
|
||||||
// Implements MediaTransportKeyFrameRequestCallback
|
// Implements MediaTransportKeyFrameRequestCallback
|
||||||
@ -52,4 +52,4 @@ class EncoderKeyFrameCallback : public RtcpIntraFrameObserver,
|
|||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
||||||
#endif // VIDEO_ENCODER_KEY_FRAME_CALLBACK_H_
|
#endif // VIDEO_ENCODER_RTCP_FEEDBACK_H_
|
||||||
@ -8,7 +8,7 @@
|
|||||||
* be found in the AUTHORS file in the root of the source tree.
|
* be found in the AUTHORS file in the root of the source tree.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "video/encoder_key_frame_callback.h"
|
#include "video/encoder_rtcp_feedback.h"
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
@ -23,7 +23,7 @@ class VieKeyRequestTest : public ::testing::Test {
|
|||||||
VieKeyRequestTest()
|
VieKeyRequestTest()
|
||||||
: simulated_clock_(123456789),
|
: simulated_clock_(123456789),
|
||||||
encoder_(),
|
encoder_(),
|
||||||
encoder_key_frame_callback_(
|
encoder_rtcp_feedback_(
|
||||||
&simulated_clock_,
|
&simulated_clock_,
|
||||||
std::vector<uint32_t>(1, VieKeyRequestTest::kSsrc),
|
std::vector<uint32_t>(1, VieKeyRequestTest::kSsrc),
|
||||||
&encoder_) {}
|
&encoder_) {}
|
||||||
@ -33,31 +33,31 @@ class VieKeyRequestTest : public ::testing::Test {
|
|||||||
|
|
||||||
SimulatedClock simulated_clock_;
|
SimulatedClock simulated_clock_;
|
||||||
testing::StrictMock<MockVideoStreamEncoder> encoder_;
|
testing::StrictMock<MockVideoStreamEncoder> encoder_;
|
||||||
EncoderKeyFrameCallback encoder_key_frame_callback_;
|
EncoderRtcpFeedback encoder_rtcp_feedback_;
|
||||||
};
|
};
|
||||||
|
|
||||||
TEST_F(VieKeyRequestTest, CreateAndTriggerRequests) {
|
TEST_F(VieKeyRequestTest, CreateAndTriggerRequests) {
|
||||||
EXPECT_CALL(encoder_, SendKeyFrame()).Times(1);
|
EXPECT_CALL(encoder_, SendKeyFrame()).Times(1);
|
||||||
encoder_key_frame_callback_.OnReceivedIntraFrameRequest(kSsrc);
|
encoder_rtcp_feedback_.OnReceivedIntraFrameRequest(kSsrc);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(VieKeyRequestTest, TooManyOnReceivedIntraFrameRequest) {
|
TEST_F(VieKeyRequestTest, TooManyOnReceivedIntraFrameRequest) {
|
||||||
EXPECT_CALL(encoder_, SendKeyFrame()).Times(1);
|
EXPECT_CALL(encoder_, SendKeyFrame()).Times(1);
|
||||||
encoder_key_frame_callback_.OnReceivedIntraFrameRequest(kSsrc);
|
encoder_rtcp_feedback_.OnReceivedIntraFrameRequest(kSsrc);
|
||||||
encoder_key_frame_callback_.OnReceivedIntraFrameRequest(kSsrc);
|
encoder_rtcp_feedback_.OnReceivedIntraFrameRequest(kSsrc);
|
||||||
simulated_clock_.AdvanceTimeMilliseconds(10);
|
simulated_clock_.AdvanceTimeMilliseconds(10);
|
||||||
encoder_key_frame_callback_.OnReceivedIntraFrameRequest(kSsrc);
|
encoder_rtcp_feedback_.OnReceivedIntraFrameRequest(kSsrc);
|
||||||
|
|
||||||
EXPECT_CALL(encoder_, SendKeyFrame()).Times(1);
|
EXPECT_CALL(encoder_, SendKeyFrame()).Times(1);
|
||||||
simulated_clock_.AdvanceTimeMilliseconds(300);
|
simulated_clock_.AdvanceTimeMilliseconds(300);
|
||||||
encoder_key_frame_callback_.OnReceivedIntraFrameRequest(kSsrc);
|
encoder_rtcp_feedback_.OnReceivedIntraFrameRequest(kSsrc);
|
||||||
encoder_key_frame_callback_.OnReceivedIntraFrameRequest(kSsrc);
|
encoder_rtcp_feedback_.OnReceivedIntraFrameRequest(kSsrc);
|
||||||
encoder_key_frame_callback_.OnReceivedIntraFrameRequest(kSsrc);
|
encoder_rtcp_feedback_.OnReceivedIntraFrameRequest(kSsrc);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(VieKeyRequestTest, TriggerRequestFromMediaTransport) {
|
TEST_F(VieKeyRequestTest, TriggerRequestFromMediaTransport) {
|
||||||
EXPECT_CALL(encoder_, SendKeyFrame()).Times(1);
|
EXPECT_CALL(encoder_, SendKeyFrame()).Times(1);
|
||||||
encoder_key_frame_callback_.OnKeyFrameRequested(kSsrc);
|
encoder_rtcp_feedback_.OnKeyFrameRequested(kSsrc);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
@ -143,7 +143,7 @@ RtpSenderFrameEncryptionConfig CreateFrameEncryptionConfig(
|
|||||||
}
|
}
|
||||||
|
|
||||||
RtpSenderObservers CreateObservers(CallStats* call_stats,
|
RtpSenderObservers CreateObservers(CallStats* call_stats,
|
||||||
EncoderKeyFrameCallback* encoder_feedback,
|
EncoderRtcpFeedback* encoder_feedback,
|
||||||
SendStatisticsProxy* stats_proxy,
|
SendStatisticsProxy* stats_proxy,
|
||||||
SendDelayStats* send_delay_stats) {
|
SendDelayStats* send_delay_stats) {
|
||||||
RtpSenderObservers observers;
|
RtpSenderObservers observers;
|
||||||
|
|||||||
@ -40,7 +40,7 @@
|
|||||||
#include "rtc_base/thread_annotations.h"
|
#include "rtc_base/thread_annotations.h"
|
||||||
#include "rtc_base/weak_ptr.h"
|
#include "rtc_base/weak_ptr.h"
|
||||||
#include "video/call_stats.h"
|
#include "video/call_stats.h"
|
||||||
#include "video/encoder_key_frame_callback.h"
|
#include "video/encoder_rtcp_feedback.h"
|
||||||
#include "video/send_delay_stats.h"
|
#include "video/send_delay_stats.h"
|
||||||
#include "video/send_statistics_proxy.h"
|
#include "video/send_statistics_proxy.h"
|
||||||
#include "video/video_send_stream.h"
|
#include "video/video_send_stream.h"
|
||||||
@ -171,7 +171,7 @@ class VideoSendStreamImpl : public webrtc::BitrateAllocatorObserver,
|
|||||||
bool has_packet_feedback_;
|
bool has_packet_feedback_;
|
||||||
|
|
||||||
VideoStreamEncoderInterface* const video_stream_encoder_;
|
VideoStreamEncoderInterface* const video_stream_encoder_;
|
||||||
EncoderKeyFrameCallback encoder_feedback_;
|
EncoderRtcpFeedback encoder_feedback_;
|
||||||
|
|
||||||
RtcpBandwidthObserver* const bandwidth_observer_;
|
RtcpBandwidthObserver* const bandwidth_observer_;
|
||||||
RtpVideoSenderInterface* const rtp_video_sender_;
|
RtpVideoSenderInterface* const rtp_video_sender_;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user