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 5c536a6182e14a6caeb5ae9cf3f0e1ea9f38dffe..178e32613585faa2dfeb0bd921f5f35d8ed882c7 100644 |
--- a/webrtc/video/end_to_end_tests.cc |
+++ b/webrtc/video/end_to_end_tests.cc |
@@ -864,107 +864,6 @@ TEST_F(EndToEndTest, DecodesRetransmittedFrameByRedOverRtx) { |
DecodesRetransmittedFrame(true, true); |
} |
-TEST_F(EndToEndTest, UsesFrameCallbacks) { |
- static const int kWidth = 320; |
- static const int kHeight = 240; |
- |
- class Renderer : public rtc::VideoSinkInterface<VideoFrame> { |
- public: |
- Renderer() : event_(false, false) {} |
- |
- void OnFrame(const VideoFrame& video_frame) override { |
- EXPECT_EQ(0, *video_frame.buffer(kYPlane)) |
- << "Rendered frame should have zero luma which is applied by the " |
- "pre-render callback."; |
- event_.Set(); |
- } |
- |
- bool Wait() { return event_.Wait(kDefaultTimeoutMs); } |
- rtc::Event event_; |
- } renderer; |
- |
- class TestFrameCallback : public I420FrameCallback { |
- public: |
- TestFrameCallback(int expected_luma_byte, int next_luma_byte) |
- : event_(false, false), |
- expected_luma_byte_(expected_luma_byte), |
- next_luma_byte_(next_luma_byte) {} |
- |
- bool Wait() { return event_.Wait(kDefaultTimeoutMs); } |
- |
- private: |
- virtual void FrameCallback(VideoFrame* frame) { |
- EXPECT_EQ(kWidth, frame->width()) |
- << "Width not as expected, callback done before resize?"; |
- EXPECT_EQ(kHeight, frame->height()) |
- << "Height not as expected, callback done before resize?"; |
- |
- // Previous luma specified, observed luma should be fairly close. |
- if (expected_luma_byte_ != -1) { |
- EXPECT_NEAR(expected_luma_byte_, *frame->buffer(kYPlane), 10); |
- } |
- |
- memset(frame->buffer(kYPlane), |
- next_luma_byte_, |
- frame->allocated_size(kYPlane)); |
- |
- event_.Set(); |
- } |
- |
- rtc::Event event_; |
- int expected_luma_byte_; |
- int next_luma_byte_; |
- }; |
- |
- TestFrameCallback pre_encode_callback(-1, 255); // Changes luma to 255. |
- TestFrameCallback pre_render_callback(255, 0); // Changes luma from 255 to 0. |
- |
- CreateCalls(Call::Config(), Call::Config()); |
- |
- test::DirectTransport sender_transport(sender_call_.get()); |
- test::DirectTransport receiver_transport(receiver_call_.get()); |
- sender_transport.SetReceiver(receiver_call_->Receiver()); |
- receiver_transport.SetReceiver(sender_call_->Receiver()); |
- |
- CreateSendConfig(1, 0, &sender_transport); |
- std::unique_ptr<VideoEncoder> encoder( |
- VideoEncoder::Create(VideoEncoder::kVp8)); |
- video_send_config_.encoder_settings.encoder = encoder.get(); |
- video_send_config_.encoder_settings.payload_name = "VP8"; |
- ASSERT_EQ(1u, video_encoder_config_.streams.size()) << "Test setup error."; |
- video_encoder_config_.streams[0].width = kWidth; |
- video_encoder_config_.streams[0].height = kHeight; |
- video_send_config_.pre_encode_callback = &pre_encode_callback; |
- |
- CreateMatchingReceiveConfigs(&receiver_transport); |
- video_receive_configs_[0].pre_render_callback = &pre_render_callback; |
- video_receive_configs_[0].renderer = &renderer; |
- |
- CreateVideoStreams(); |
- Start(); |
- |
- // Create frames that are smaller than the send width/height, this is done to |
- // check that the callbacks are done after processing video. |
- std::unique_ptr<test::FrameGenerator> frame_generator( |
- test::FrameGenerator::CreateChromaGenerator(kWidth / 2, kHeight / 2)); |
- video_send_stream_->Input()->IncomingCapturedFrame( |
- *frame_generator->NextFrame()); |
- |
- EXPECT_TRUE(pre_encode_callback.Wait()) |
- << "Timed out while waiting for pre-encode callback."; |
- 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."; |
- |
- Stop(); |
- |
- sender_transport.StopSending(); |
- receiver_transport.StopSending(); |
- |
- DestroyStreams(); |
-} |
- |
void EndToEndTest::ReceivesPliAndRecovers(int rtp_history_ms) { |
static const int kPacketsToDrop = 1; |
@@ -2573,7 +2472,8 @@ TEST_F(EndToEndTest, ReportsSetEncoderRates) { |
TEST_F(EndToEndTest, GetStats) { |
static const int kStartBitrateBps = 3000000; |
static const int kExpectedRenderDelayMs = 20; |
- class StatsObserver : public test::EndToEndTest, public I420FrameCallback { |
+ class StatsObserver : public test::EndToEndTest, |
+ public rtc::VideoSinkInterface<VideoFrame> { |
public: |
StatsObserver() |
: EndToEndTest(kLongTimeoutMs), |
@@ -2603,11 +2503,9 @@ TEST_F(EndToEndTest, GetStats) { |
return SEND_PACKET; |
} |
- void FrameCallback(VideoFrame* video_frame) override { |
+ void OnFrame(const VideoFrame& video_frame) override { |
// Ensure that we have at least 5ms send side delay. |
- int64_t render_time = video_frame->render_time_ms(); |
- if (render_time > 0) |
- video_frame->set_render_time_ms(render_time - 5); |
+ SleepMs(5); |
} |
bool CheckReceiveStats() { |