Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(130)

Unified Diff: webrtc/video/end_to_end_tests.cc

Issue 2678343002: Delete VideoReceiveStream::Config::pre_render_callback. (Closed)
Patch Set: Rebased. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/common_video/include/frame_callback.h ('k') | webrtc/video/video_receive_stream.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/video/end_to_end_tests.cc
diff --git a/webrtc/video/end_to_end_tests.cc b/webrtc/video/end_to_end_tests.cc
index dbaa87b1b2f1aade0dc39d026a062f0503392344..af9dfe15bf134de4a2aee2805d670d4fbb8a7a6a 100644
--- a/webrtc/video/end_to_end_tests.cc
+++ b/webrtc/video/end_to_end_tests.cc
@@ -195,34 +195,22 @@ TEST_P(EndToEndTest, RendersSingleDelayedFrame) {
// This constant is chosen to be higher than the timeout in the video_render
// module. This makes sure that frames aren't dropped if there are no other
// frames in the queue.
- static const int kDelayRenderCallbackMs = 1000;
+ static const int kRenderDelayMs = 1000;
class Renderer : public rtc::VideoSinkInterface<VideoFrame> {
public:
Renderer() : event_(false, false) {}
- void OnFrame(const VideoFrame& video_frame) override { event_.Set(); }
+ void OnFrame(const VideoFrame& video_frame) override {
+ SleepMs(kRenderDelayMs);
+ event_.Set();
+ }
bool Wait() { return event_.Wait(kDefaultTimeoutMs); }
rtc::Event event_;
} renderer;
- class TestFrameCallback : public I420FrameCallback {
- public:
- TestFrameCallback() : event_(false, false) {}
-
- bool Wait() { return event_.Wait(kDefaultTimeoutMs); }
-
- private:
- void FrameCallback(VideoFrame* frame) override {
- SleepMs(kDelayRenderCallbackMs);
- event_.Set();
- }
-
- rtc::Event event_;
- };
-
CreateCalls(Call::Config(&event_log_), Call::Config(&event_log_));
test::DirectTransport sender_transport(sender_call_.get());
@@ -233,8 +221,6 @@ TEST_P(EndToEndTest, RendersSingleDelayedFrame) {
CreateSendConfig(1, 0, 0, &sender_transport);
CreateMatchingReceiveConfigs(&receiver_transport);
- TestFrameCallback pre_render_callback;
- video_receive_configs_[0].pre_render_callback = &pre_render_callback;
video_receive_configs_[0].renderer = &renderer;
CreateVideoStreams();
@@ -249,8 +235,6 @@ TEST_P(EndToEndTest, RendersSingleDelayedFrame) {
&frame_forwarder, VideoSendStream::DegradationPreference::kBalanced);
frame_forwarder.IncomingCapturedFrame(*frame_generator->NextFrame());
- EXPECT_TRUE(pre_render_callback.Wait())
- << "Timed out while waiting for pre-render callback.";
EXPECT_TRUE(renderer.Wait())
<< "Timed out while waiting for the frame to render.";
@@ -1052,7 +1036,7 @@ TEST_P(EndToEndTest, ReceivedUlpfecPacketsNotNacked) {
void EndToEndTest::DecodesRetransmittedFrame(bool enable_rtx, bool enable_red) {
static const int kDroppedFrameNumber = 10;
class RetransmissionObserver : public test::EndToEndTest,
- public I420FrameCallback {
+ public rtc::VideoSinkInterface<VideoFrame> {
public:
RetransmissionObserver(bool enable_rtx, bool enable_red)
: EndToEndTest(kDefaultTimeoutMs),
@@ -1108,11 +1092,12 @@ void EndToEndTest::DecodesRetransmittedFrame(bool enable_rtx, bool enable_red) {
return SEND_PACKET;
}
- void FrameCallback(VideoFrame* frame) override {
+ void OnFrame(const VideoFrame& frame) override {
rtc::CritScope lock(&crit_);
- if (frame->timestamp() == retransmitted_timestamp_)
+ if (frame.timestamp() == retransmitted_timestamp_)
observation_complete_.Set();
- rendered_timestamps_.push_back(frame->timestamp());
+ rendered_timestamps_.push_back(frame.timestamp());
+ orig_renderer_->OnFrame(frame);
}
void ModifyVideoConfigs(
@@ -1120,7 +1105,13 @@ void EndToEndTest::DecodesRetransmittedFrame(bool enable_rtx, bool enable_red) {
std::vector<VideoReceiveStream::Config>* receive_configs,
VideoEncoderConfig* encoder_config) override {
send_config->rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
- (*receive_configs)[0].pre_render_callback = this;
+
+ // Insert ourselves into the rendering pipeline.
+ RTC_DCHECK(!orig_renderer_);
+ orig_renderer_ = (*receive_configs)[0].renderer;
+ RTC_DCHECK(orig_renderer_);
+ (*receive_configs)[0].renderer = this;
+
(*receive_configs)[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
if (payload_type_ == kRedPayloadType) {
@@ -1168,6 +1159,7 @@ void EndToEndTest::DecodesRetransmittedFrame(bool enable_rtx, bool enable_red) {
}
rtc::CriticalSection crit_;
+ rtc::VideoSinkInterface<VideoFrame>* orig_renderer_ = nullptr;
const int payload_type_;
const uint32_t retransmission_ssrc_;
const int retransmission_payload_type_;
« no previous file with comments | « webrtc/common_video/include/frame_callback.h ('k') | webrtc/video/video_receive_stream.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698