Revert of Add content type information to encoded images and corresponding rtp extension header (patchset #4 id:400001 of https://codereview.webrtc.org/2812913002/ )
Reason for revert: Breaks android buildbots. Original issue's description: > Reland of Add content type information to encoded images and corresponding rtp extension header (patchset #1 id:1 of https://codereview.webrtc.org/2816463002/ ) > > Reason for revert: > Reland with appropriate changes to API to not break depending projects. > > Original issue's description: > > Revert of Add content type information to encoded images and corresponding rtp extension header (patchset #31 id:600001 of https://codereview.webrtc.org/2772033002/ ) > > > > Reason for revert: > > Breaks dependent projects. > > > > Original issue's description: > > > Add content type information to Encoded Images and add corresponding RTP extension header. > > > Use it to separate UMA e2e delay metric between screenshare from video. > > > Content type extension is set based on encoder settings and processed and decoders. > > > > > > Also, > > > Fix full-stack-tests to calculate RTT correctly, so new metric could be tested. > > > > > > BUG=webrtc:7420 > > > > > > Review-Url: https://codereview.webrtc.org/2772033002 > > > Cr-Commit-Position: refs/heads/master@{#17640} > > > Committed:64e739aeae> > > > TBR=tommi@webrtc.org,sprang@webrtc.org,stefan@webrtc.org,nisse@webrtc.org,mflodman@webrtc.org > > # Skipping CQ checks because original CL landed less than 1 days ago. > > NOPRESUBMIT=true > > NOTREECHECKS=true > > NOTRY=true > > BUG=webrtc:7420 > > > > Review-Url: https://codereview.webrtc.org/2816463002 > > Cr-Commit-Position: refs/heads/master@{#17644} > > Committed:5721866808> > TBR=tommi@webrtc.org,sprang@webrtc.org,stefan@webrtc.org,nisse@webrtc.org,mflodman@webrtc.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=webrtc:7420 > > Review-Url: https://codereview.webrtc.org/2812913002 > Cr-Commit-Position: refs/heads/master@{#17651} > Committed:774f6b4b96TBR=tommi@webrtc.org,sprang@webrtc.org,stefan@webrtc.org,nisse@webrtc.org,mflodman@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:7420 Review-Url: https://codereview.webrtc.org/2809653004 Cr-Commit-Position: refs/heads/master@{#17653}
This commit is contained in:
@ -2652,8 +2652,7 @@ void EndToEndTest::VerifyHistogramStats(bool use_rtx,
|
||||
EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.CurrentDelayInMs"));
|
||||
EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.OnewayDelayInMs"));
|
||||
|
||||
EXPECT_EQ(1, metrics::NumSamples(video_prefix + "EndToEndDelayInMs"));
|
||||
EXPECT_EQ(1, metrics::NumSamples(video_prefix + "EndToEndDelayMaxInMs"));
|
||||
EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.EndToEndDelayInMs"));
|
||||
EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.RenderSqrtPixelsPerSecond"));
|
||||
|
||||
EXPECT_EQ(1, metrics::NumSamples(video_prefix + "EncodeTimeInMs"));
|
||||
@ -2693,118 +2692,6 @@ void EndToEndTest::VerifyHistogramStats(bool use_rtx,
|
||||
metrics::NumSamples("WebRTC.Video.ReceivedFecPacketsInPercent"));
|
||||
}
|
||||
|
||||
TEST_F(EndToEndTest, ContentTypeSwitches) {
|
||||
class StatsObserver : public test::BaseTest,
|
||||
public rtc::VideoSinkInterface<VideoFrame> {
|
||||
public:
|
||||
StatsObserver() : BaseTest(kLongTimeoutMs), num_frames_received_(0) {}
|
||||
|
||||
bool ShouldCreateReceivers() const override { return true; }
|
||||
|
||||
void OnFrame(const VideoFrame& video_frame) override {
|
||||
// The RTT is needed to estimate |ntp_time_ms| which is used by
|
||||
// end-to-end delay stats. Therefore, start counting received frames once
|
||||
// |ntp_time_ms| is valid.
|
||||
if (video_frame.ntp_time_ms() > 0 &&
|
||||
Clock::GetRealTimeClock()->CurrentNtpInMilliseconds() >=
|
||||
video_frame.ntp_time_ms()) {
|
||||
rtc::CritScope lock(&crit_);
|
||||
++num_frames_received_;
|
||||
}
|
||||
}
|
||||
|
||||
Action OnSendRtp(const uint8_t* packet, size_t length) override {
|
||||
if (MinNumberOfFramesReceived())
|
||||
observation_complete_.Set();
|
||||
return SEND_PACKET;
|
||||
}
|
||||
|
||||
bool MinNumberOfFramesReceived() const {
|
||||
const int kMinRequiredHistogramSamples = 200;
|
||||
rtc::CritScope lock(&crit_);
|
||||
return num_frames_received_ > kMinRequiredHistogramSamples;
|
||||
}
|
||||
|
||||
// May be called several times.
|
||||
void PerformTest() override {
|
||||
EXPECT_TRUE(Wait()) << "Timed out waiting for enough packets.";
|
||||
// Reset frame counter so next PerformTest() call will do something.
|
||||
{
|
||||
rtc::CritScope lock(&crit_);
|
||||
num_frames_received_ = 0;
|
||||
}
|
||||
}
|
||||
|
||||
rtc::CriticalSection crit_;
|
||||
int num_frames_received_ GUARDED_BY(&crit_);
|
||||
} test;
|
||||
|
||||
metrics::Reset();
|
||||
|
||||
Call::Config send_config(test.GetSenderCallConfig());
|
||||
CreateSenderCall(send_config);
|
||||
Call::Config recv_config(test.GetReceiverCallConfig());
|
||||
CreateReceiverCall(recv_config);
|
||||
receive_transport_.reset(test.CreateReceiveTransport());
|
||||
send_transport_.reset(test.CreateSendTransport(sender_call_.get()));
|
||||
send_transport_->SetReceiver(receiver_call_->Receiver());
|
||||
receive_transport_->SetReceiver(sender_call_->Receiver());
|
||||
receiver_call_->SignalChannelNetworkState(MediaType::VIDEO, kNetworkUp);
|
||||
CreateSendConfig(1, 0, 0, send_transport_.get());
|
||||
CreateMatchingReceiveConfigs(receive_transport_.get());
|
||||
|
||||
// Modify send and receive configs.
|
||||
video_send_config_.rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
|
||||
video_receive_configs_[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
|
||||
video_receive_configs_[0].renderer = &test;
|
||||
// RTT needed for RemoteNtpTimeEstimator for the receive stream.
|
||||
video_receive_configs_[0].rtp.rtcp_xr.receiver_reference_time_report = true;
|
||||
// Start with realtime video.
|
||||
video_encoder_config_.content_type =
|
||||
VideoEncoderConfig::ContentType::kRealtimeVideo;
|
||||
// Second encoder config for the second part of the test uses screenshare
|
||||
VideoEncoderConfig encoder_config_with_screenshare_ =
|
||||
video_encoder_config_.Copy();
|
||||
encoder_config_with_screenshare_.content_type =
|
||||
VideoEncoderConfig::ContentType::kScreen;
|
||||
|
||||
CreateVideoStreams();
|
||||
CreateFrameGeneratorCapturer(kDefaultFramerate, kDefaultWidth,
|
||||
kDefaultHeight);
|
||||
Start();
|
||||
|
||||
test.PerformTest();
|
||||
|
||||
// Replace old send stream.
|
||||
sender_call_->DestroyVideoSendStream(video_send_stream_);
|
||||
video_send_stream_ = sender_call_->CreateVideoSendStream(
|
||||
video_send_config_.Copy(), encoder_config_with_screenshare_.Copy());
|
||||
video_send_stream_->SetSource(
|
||||
frame_generator_capturer_.get(),
|
||||
VideoSendStream::DegradationPreference::kBalanced);
|
||||
video_send_stream_->Start();
|
||||
|
||||
// Continue to run test but now with screenshare.
|
||||
test.PerformTest();
|
||||
|
||||
send_transport_->StopSending();
|
||||
receive_transport_->StopSending();
|
||||
Stop();
|
||||
DestroyStreams();
|
||||
DestroyCalls();
|
||||
// Delete the call for Call stats to be reported.
|
||||
sender_call_.reset();
|
||||
receiver_call_.reset();
|
||||
|
||||
// Verify that stats have been updated for both screenshare and video.
|
||||
EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.EndToEndDelayInMs"));
|
||||
EXPECT_EQ(1,
|
||||
metrics::NumSamples("WebRTC.Video.Screenshare.EndToEndDelayInMs"));
|
||||
EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.EndToEndDelayMaxInMs"));
|
||||
EXPECT_EQ(
|
||||
1, metrics::NumSamples("WebRTC.Video.Screenshare.EndToEndDelayMaxInMs"));
|
||||
}
|
||||
|
||||
TEST_F(EndToEndTest, VerifyHistogramStatsWithRtx) {
|
||||
const bool kEnabledRtx = true;
|
||||
const bool kEnabledRed = false;
|
||||
|
||||
Reference in New Issue
Block a user