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

Unified Diff: webrtc/media/base/videoengine_unittest.h

Issue 2408153002: Remove cricket::VideoCodec with, height and framerate properties (Closed)
Patch Set: Rebased Created 4 years, 2 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/media/base/mediaconstants.cc ('k') | webrtc/media/engine/webrtcvideoengine2.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/media/base/videoengine_unittest.h
diff --git a/webrtc/media/base/videoengine_unittest.h b/webrtc/media/base/videoengine_unittest.h
index 6b281bb37a6378711aa758da1af599336c167a0d..aaa03b3e867357bfb57c47d52ad6ed2e530480c0 100644
--- a/webrtc/media/base/videoengine_unittest.h
+++ b/webrtc/media/base/videoengine_unittest.h
@@ -50,31 +50,23 @@ static const uint32_t kDefaultReceiveSsrc = 0;
static const uint32_t kSsrc = 1234u;
static const uint32_t kRtxSsrc = 4321u;
static const uint32_t kSsrcs4[] = {1, 2, 3, 4};
-
-inline bool IsEqualRes(const cricket::VideoCodec& a, int w, int h, int fps) {
- return a.width == w && a.height == h && a.framerate == fps;
-}
+static const int kVideoWidth = 640;
+static const int kVideoHeight = 360;
+static const int kFramerate = 30;
inline bool IsEqualCodec(const cricket::VideoCodec& a,
const cricket::VideoCodec& b) {
- return a.id == b.id && a.name == b.name &&
- IsEqualRes(a, b.width, b.height, b.framerate);
+ return a.id == b.id && a.name == b.name;
}
namespace std {
inline std::ostream& operator<<(std::ostream& s, const cricket::VideoCodec& c) {
- s << "{" << c.name << "(" << c.id << "), "
- << c.width << "x" << c.height << "x" << c.framerate << "}";
+ s << "{" << c.name << "(" << c.id << ")"
+ << "}";
return s;
}
} // namespace std
-inline int TimeBetweenSend(const cricket::VideoCodec& codec) {
- return static_cast<int>(
- cricket::VideoFormat::FpsToInterval(codec.framerate) /
- rtc::kNumNanosecsPerMillisec);
-}
-
template<class E, class C>
class VideoMediaChannelTest : public testing::Test,
public sigslot::has_slots<> {
@@ -102,7 +94,7 @@ class VideoMediaChannelTest : public testing::Test,
EXPECT_TRUE(channel_->AddSendStream(DefaultSendStreamParams()));
video_capturer_.reset(CreateFakeVideoCapturer());
cricket::VideoFormat format(640, 480,
- cricket::VideoFormat::FpsToInterval(30),
+ cricket::VideoFormat::FpsToInterval(kFramerate),
cricket::FOURCC_I420);
EXPECT_EQ(cricket::CS_RUNNING, video_capturer_->Start(format));
EXPECT_TRUE(
@@ -139,7 +131,7 @@ class VideoMediaChannelTest : public testing::Test,
// Setup the receive and renderer for second stream after send.
video_capturer_2_.reset(CreateFakeVideoCapturer());
cricket::VideoFormat format(640, 480,
- cricket::VideoFormat::FpsToInterval(30),
+ cricket::VideoFormat::FpsToInterval(kFramerate),
cricket::FOURCC_I420);
EXPECT_EQ(cricket::CS_RUNNING, video_capturer_2_->Start(format));
@@ -153,13 +145,13 @@ class VideoMediaChannelTest : public testing::Test,
return SetOneCodec(DefaultCodec());
}
- bool SetOneCodec(int pt, const char* name, int w, int h, int fr) {
- return SetOneCodec(cricket::VideoCodec(pt, name, w, h, fr));
+ bool SetOneCodec(int pt, const char* name) {
+ return SetOneCodec(cricket::VideoCodec(pt, name));
}
bool SetOneCodec(const cricket::VideoCodec& codec) {
- cricket::VideoFormat capture_format(codec.width, codec.height,
- cricket::VideoFormat::FpsToInterval(codec.framerate),
- cricket::FOURCC_I420);
+ cricket::VideoFormat capture_format(
+ kVideoWidth, kVideoHeight,
+ cricket::VideoFormat::FpsToInterval(kFramerate), cricket::FOURCC_I420);
if (video_capturer_) {
EXPECT_EQ(cricket::CS_RUNNING, video_capturer_->Start(capture_format));
@@ -396,7 +388,7 @@ class VideoMediaChannelTest : public testing::Test,
EXPECT_TRUE(channel_->SetSink(kDefaultReceiveSsrc, &renderer_));
EXPECT_EQ(0, renderer_.num_rendered_frames());
EXPECT_TRUE(SendFrame());
- EXPECT_FRAME_WAIT(1, codec.width, codec.height, kTimeout);
+ EXPECT_FRAME_WAIT(1, kVideoWidth, kVideoHeight, kTimeout);
std::unique_ptr<const rtc::CopyOnWriteBuffer> p(GetRtpPacket(0));
EXPECT_EQ(codec.id, GetPayloadType(p.get()));
}
@@ -409,7 +401,7 @@ class VideoMediaChannelTest : public testing::Test,
for (int i = 0; i < duration_sec; ++i) {
for (int frame = 1; frame <= fps; ++frame) {
EXPECT_TRUE(WaitAndSendFrame(1000 / fps));
- EXPECT_FRAME_WAIT(frame + i * fps, codec.width, codec.height, kTimeout);
+ EXPECT_FRAME_WAIT(frame + i * fps, kVideoWidth, kVideoHeight, kTimeout);
}
}
std::unique_ptr<const rtc::CopyOnWriteBuffer> p(GetRtpPacket(0));
@@ -434,8 +426,8 @@ class VideoMediaChannelTest : public testing::Test,
EXPECT_EQ(0, info.senders[0].firs_rcvd);
EXPECT_EQ(0, info.senders[0].plis_rcvd);
EXPECT_EQ(0, info.senders[0].nacks_rcvd);
- EXPECT_EQ(DefaultCodec().width, info.senders[0].send_frame_width);
- EXPECT_EQ(DefaultCodec().height, info.senders[0].send_frame_height);
+ EXPECT_EQ(kVideoWidth, info.senders[0].send_frame_width);
+ EXPECT_EQ(kVideoHeight, info.senders[0].send_frame_height);
EXPECT_GT(info.senders[0].framerate_input, 0);
EXPECT_GT(info.senders[0].framerate_sent, 0);
@@ -452,8 +444,8 @@ class VideoMediaChannelTest : public testing::Test,
EXPECT_EQ(0, info.receivers[0].firs_sent);
EXPECT_EQ(0, info.receivers[0].plis_sent);
EXPECT_EQ(0, info.receivers[0].nacks_sent);
- EXPECT_EQ(DefaultCodec().width, info.receivers[0].frame_width);
- EXPECT_EQ(DefaultCodec().height, info.receivers[0].frame_height);
+ EXPECT_EQ(kVideoWidth, info.receivers[0].frame_width);
+ EXPECT_EQ(kVideoHeight, info.receivers[0].frame_height);
EXPECT_GT(info.receivers[0].framerate_rcvd, 0);
EXPECT_GT(info.receivers[0].framerate_decoded, 0);
EXPECT_GT(info.receivers[0].framerate_output, 0);
@@ -493,10 +485,10 @@ class VideoMediaChannelTest : public testing::Test,
ssrcs.push_back(2);
network_interface_.SetConferenceMode(true, ssrcs);
EXPECT_TRUE(SendFrame());
- EXPECT_FRAME_ON_RENDERER_WAIT(
- renderer1, 1, DefaultCodec().width, DefaultCodec().height, kTimeout);
- EXPECT_FRAME_ON_RENDERER_WAIT(
- renderer2, 1, DefaultCodec().width, DefaultCodec().height, kTimeout);
+ EXPECT_FRAME_ON_RENDERER_WAIT(renderer1, 1, kVideoWidth, kVideoHeight,
+ kTimeout);
+ EXPECT_FRAME_ON_RENDERER_WAIT(renderer2, 1, kVideoWidth, kVideoHeight,
+ kTimeout);
EXPECT_TRUE(channel_->SetSend(false));
@@ -507,8 +499,8 @@ class VideoMediaChannelTest : public testing::Test,
// For webrtc, bytes_sent does not include the RTP header length.
EXPECT_GT(GetSenderStats(0).bytes_sent, 0);
EXPECT_EQ_WAIT(NumRtpPackets(), GetSenderStats(0).packets_sent, kTimeout);
- EXPECT_EQ(DefaultCodec().width, GetSenderStats(0).send_frame_width);
- EXPECT_EQ(DefaultCodec().height, GetSenderStats(0).send_frame_height);
+ EXPECT_EQ(kVideoWidth, GetSenderStats(0).send_frame_width);
+ EXPECT_EQ(kVideoHeight, GetSenderStats(0).send_frame_height);
ASSERT_EQ(2U, info.receivers.size());
for (size_t i = 0; i < info.receivers.size(); ++i) {
@@ -517,10 +509,8 @@ class VideoMediaChannelTest : public testing::Test,
EXPECT_EQ_WAIT(NumRtpBytes(), GetReceiverStats(i).bytes_rcvd, kTimeout);
EXPECT_EQ_WAIT(NumRtpPackets(), GetReceiverStats(i).packets_rcvd,
kTimeout);
- EXPECT_EQ_WAIT(DefaultCodec().width, GetReceiverStats(i).frame_width,
- kTimeout);
- EXPECT_EQ_WAIT(DefaultCodec().height, GetReceiverStats(i).frame_height,
- kTimeout);
+ EXPECT_EQ_WAIT(kVideoWidth, GetReceiverStats(i).frame_width, kTimeout);
+ EXPECT_EQ_WAIT(kVideoHeight, GetReceiverStats(i).frame_height, kTimeout);
}
}
// Test that stats work properly for a conf call with multiple send streams.
@@ -538,7 +528,7 @@ class VideoMediaChannelTest : public testing::Test,
EXPECT_TRUE(SetSend(true));
EXPECT_TRUE(SendFrame());
EXPECT_TRUE_WAIT(NumRtpPackets() > 0, kTimeout);
- EXPECT_FRAME_WAIT(1, DefaultCodec().width, DefaultCodec().height, kTimeout);
+ EXPECT_FRAME_WAIT(1, kVideoWidth, kVideoHeight, kTimeout);
// Add an additional capturer, and hook up a renderer to receive it.
cricket::FakeVideoRenderer renderer2;
@@ -581,8 +571,8 @@ class VideoMediaChannelTest : public testing::Test,
<< "Timed out while waiting for packet counts for all sent packets.";
EXPECT_EQ(1U, info.senders[0].ssrcs().size());
EXPECT_EQ(1234U, info.senders[0].ssrcs()[0]);
- EXPECT_EQ(DefaultCodec().width, info.senders[0].send_frame_width);
- EXPECT_EQ(DefaultCodec().height, info.senders[0].send_frame_height);
+ EXPECT_EQ(kVideoWidth, info.senders[0].send_frame_width);
+ EXPECT_EQ(kVideoHeight, info.senders[0].send_frame_height);
EXPECT_EQ(1U, info.senders[1].ssrcs().size());
EXPECT_EQ(5678U, info.senders[1].ssrcs()[0]);
EXPECT_EQ(kTestWidth, info.senders[1].send_frame_width);
@@ -657,7 +647,7 @@ class VideoMediaChannelTest : public testing::Test,
channel_->OnPacketReceived(&packet1, rtc::PacketTime());
EXPECT_TRUE(channel_->SetSink(kDefaultReceiveSsrc, &renderer_));
EXPECT_TRUE(SendFrame());
- EXPECT_FRAME_WAIT(1, DefaultCodec().width, DefaultCodec().height, kTimeout);
+ EXPECT_FRAME_WAIT(1, kVideoWidth, kVideoHeight, kTimeout);
}
// Tests empty StreamParams is rejected.
@@ -677,7 +667,7 @@ class VideoMediaChannelTest : public testing::Test,
EXPECT_TRUE(SetSend(true));
EXPECT_TRUE(channel_->SetSink(kDefaultReceiveSsrc, &renderer_));
EXPECT_TRUE(SendFrame());
- EXPECT_FRAME_WAIT(1, DefaultCodec().width, DefaultCodec().height, kTimeout);
+ EXPECT_FRAME_WAIT(1, kVideoWidth, kVideoHeight, kTimeout);
EXPECT_GT(NumRtpPackets(), 0);
uint32_t ssrc = 0;
size_t last_packet = NumRtpPackets() - 1;
@@ -727,17 +717,17 @@ class VideoMediaChannelTest : public testing::Test,
ssrcs.push_back(2);
network_interface_.SetConferenceMode(true, ssrcs);
EXPECT_TRUE(SendFrame());
- EXPECT_FRAME_ON_RENDERER_WAIT(
- renderer1, 1, DefaultCodec().width, DefaultCodec().height, kTimeout);
- EXPECT_FRAME_ON_RENDERER_WAIT(
- renderer2, 1, DefaultCodec().width, DefaultCodec().height, kTimeout);
+ EXPECT_FRAME_ON_RENDERER_WAIT(renderer1, 1, kVideoWidth, kVideoHeight,
+ kTimeout);
+ EXPECT_FRAME_ON_RENDERER_WAIT(renderer2, 1, kVideoWidth, kVideoHeight,
+ kTimeout);
std::unique_ptr<const rtc::CopyOnWriteBuffer> p(GetRtpPacket(0));
EXPECT_EQ(DefaultCodec().id, GetPayloadType(p.get()));
- EXPECT_EQ(DefaultCodec().width, renderer1.width());
- EXPECT_EQ(DefaultCodec().height, renderer1.height());
- EXPECT_EQ(DefaultCodec().width, renderer2.width());
- EXPECT_EQ(DefaultCodec().height, renderer2.height());
+ EXPECT_EQ(kVideoWidth, renderer1.width());
+ EXPECT_EQ(kVideoHeight, renderer1.height());
+ EXPECT_EQ(kVideoWidth, renderer2.width());
+ EXPECT_EQ(kVideoHeight, renderer2.height());
EXPECT_TRUE(channel_->RemoveRecvStream(2));
EXPECT_TRUE(channel_->RemoveRecvStream(1));
}
@@ -745,15 +735,14 @@ class VideoMediaChannelTest : public testing::Test,
// Tests that we can add and remove capturers and frames are sent out properly
void AddRemoveCapturer() {
cricket::VideoCodec codec = DefaultCodec();
- codec.width = 320;
- codec.height = 240;
- const int time_between_send = TimeBetweenSend(codec);
+ const int time_between_send_ms =
+ cricket::VideoFormat::FpsToInterval(kFramerate);
EXPECT_TRUE(SetOneCodec(codec));
EXPECT_TRUE(SetSend(true));
EXPECT_TRUE(channel_->SetSink(kDefaultReceiveSsrc, &renderer_));
EXPECT_EQ(0, renderer_.num_rendered_frames());
EXPECT_TRUE(SendFrame());
- EXPECT_FRAME_WAIT(1, codec.width, codec.height, kTimeout);
+ EXPECT_FRAME_WAIT(1, kVideoWidth, kVideoHeight, kTimeout);
std::unique_ptr<cricket::FakeVideoCapturer> capturer(
CreateFakeVideoCapturer());
@@ -777,7 +766,7 @@ class VideoMediaChannelTest : public testing::Test,
int captured_frames = 1;
for (int iterations = 0; iterations < 2; ++iterations) {
EXPECT_TRUE(channel_->SetVideoSend(kSsrc, true, nullptr, capturer.get()));
- rtc::Thread::Current()->ProcessMessages(time_between_send);
+ rtc::Thread::Current()->ProcessMessages(time_between_send_ms);
EXPECT_TRUE(capturer->CaptureCustomFrame(format.width, format.height,
cricket::FOURCC_I420));
++captured_frames;
@@ -822,14 +811,14 @@ class VideoMediaChannelTest : public testing::Test,
EXPECT_TRUE(channel_->SetSink(kDefaultReceiveSsrc, &renderer_));
EXPECT_EQ(0, renderer_.num_rendered_frames());
EXPECT_TRUE(SendFrame());
- EXPECT_FRAME_WAIT(1, 640, 400, kTimeout);
+ EXPECT_FRAME_WAIT(1, kVideoWidth, kVideoHeight, kTimeout);
// Wait for one frame so they don't get dropped because we send frames too
// tightly.
rtc::Thread::Current()->ProcessMessages(30);
// Remove the capturer.
EXPECT_TRUE(channel_->SetVideoSend(kSsrc, true, nullptr, nullptr));
// Wait for one black frame for removing the capturer.
- EXPECT_FRAME_WAIT(2, 640, 400, kTimeout);
+ EXPECT_FRAME_WAIT(2, kVideoWidth, kVideoHeight, kTimeout);
// No capturer was added, so this SetVideoSend shouldn't do anything.
EXPECT_TRUE(channel_->SetVideoSend(kSsrc, true, nullptr, nullptr));
@@ -849,7 +838,7 @@ class VideoMediaChannelTest : public testing::Test,
cricket::StreamParams::CreateLegacy(kSsrc)));
EXPECT_TRUE(channel_->SetSink(kSsrc, &renderer_));
cricket::VideoFormat capture_format; // default format
- capture_format.interval = cricket::VideoFormat::FpsToInterval(30);
+ capture_format.interval = cricket::VideoFormat::FpsToInterval(kFramerate);
// Set up additional stream 1.
cricket::FakeVideoRenderer renderer1;
EXPECT_FALSE(channel_->SetSink(1, &renderer1));
@@ -900,153 +889,6 @@ class VideoMediaChannelTest : public testing::Test,
EXPECT_TRUE(channel_->SetVideoSend(2, true, nullptr, nullptr));
}
- void HighAspectHighHeightCapturer() {
- const int kWidth = 80;
- const int kHeight = 10000;
- const int kScaledWidth = 20;
- const int kScaledHeight = 2500;
-
- cricket::VideoCodec codec(DefaultCodec());
- EXPECT_TRUE(SetOneCodec(codec));
- EXPECT_TRUE(SetSend(true));
-
- cricket::FakeVideoRenderer renderer;
- EXPECT_TRUE(channel_->AddRecvStream(
- cricket::StreamParams::CreateLegacy(kSsrc)));
- EXPECT_TRUE(channel_->SetSink(kSsrc, &renderer));
- EXPECT_EQ(0, renderer.num_rendered_frames());
-
- EXPECT_TRUE(SendFrame());
- EXPECT_GT_FRAME_ON_RENDERER_WAIT(
- renderer, 1, codec.width, codec.height, kTimeout);
-
- // Registering an external capturer is currently the same as screen casting
- // (update the test when this changes).
- std::unique_ptr<cricket::FakeVideoCapturer> capturer(
- CreateFakeVideoCapturer());
- const std::vector<cricket::VideoFormat>* formats =
- capturer->GetSupportedFormats();
- cricket::VideoFormat capture_format = (*formats)[0];
- EXPECT_EQ(cricket::CS_RUNNING, capturer->Start(capture_format));
- // Capture frame to not get same frame timestamps as previous capturer.
- capturer->CaptureFrame();
- EXPECT_TRUE(channel_->SetVideoSend(kSsrc, true, nullptr, capturer.get()));
- EXPECT_TRUE(rtc::Thread::Current()->ProcessMessages(30));
- EXPECT_TRUE(capturer->CaptureCustomFrame(kWidth, kHeight,
- cricket::FOURCC_ARGB));
- EXPECT_GT_FRAME_ON_RENDERER_WAIT(
- renderer, 2, kScaledWidth, kScaledHeight, kTimeout);
- EXPECT_TRUE(channel_->SetVideoSend(kSsrc, true, nullptr, nullptr));
- }
-
- // Tests that we can adapt video resolution with 16:10 aspect ratio properly.
- void AdaptResolution16x10() {
- EXPECT_TRUE(channel_->SetSink(kDefaultReceiveSsrc, &renderer_));
- cricket::VideoCodec codec(DefaultCodec());
- codec.width = 640;
- codec.height = 400;
- SendAndReceive(codec);
- codec.width /= 2;
- codec.height /= 2;
- // Adapt the resolution.
- EXPECT_TRUE(SetOneCodec(codec));
- EXPECT_TRUE(WaitAndSendFrame(30));
- EXPECT_FRAME_WAIT(2, codec.width, codec.height, kTimeout);
- }
- // Tests that we can adapt video resolution with 4:3 aspect ratio properly.
- void AdaptResolution4x3() {
- EXPECT_TRUE(channel_->SetSink(kDefaultReceiveSsrc, &renderer_));
- cricket::VideoCodec codec(DefaultCodec());
- codec.width = 640;
- codec.height = 400;
- SendAndReceive(codec);
- codec.width /= 2;
- codec.height /= 2;
- // Adapt the resolution.
- EXPECT_TRUE(SetOneCodec(codec));
- EXPECT_TRUE(WaitAndSendFrame(30));
- EXPECT_FRAME_WAIT(2, codec.width, codec.height, kTimeout);
- }
- // Tests that we can drop all frames properly.
- void AdaptDropAllFrames() {
- // Set the channel codec's resolution to 0, which will require the adapter
- // to drop all frames.
- cricket::VideoCodec codec(DefaultCodec());
- codec.width = codec.height = codec.framerate = 0;
- EXPECT_TRUE(SetOneCodec(codec));
- EXPECT_TRUE(SetSend(true));
- EXPECT_TRUE(channel_->SetSink(kDefaultReceiveSsrc, &renderer_));
- EXPECT_EQ(0, renderer_.num_rendered_frames());
- EXPECT_TRUE(SendFrame());
- EXPECT_TRUE(SendFrame());
- rtc::Thread::Current()->ProcessMessages(500);
- EXPECT_EQ(0, renderer_.num_rendered_frames());
- }
- // Tests that we can reduce the frame rate on demand properly.
- // TODO(fbarchard): This test is flakey on pulse. Fix and re-enable
- void AdaptFramerate() {
- cricket::VideoCodec codec(DefaultCodec());
- int frame_count = 0;
- // The capturer runs at 30 fps. The channel requires 30 fps.
- EXPECT_TRUE(SetOneCodec(codec));
- EXPECT_TRUE(SetSend(true));
- EXPECT_EQ(frame_count, renderer_.num_rendered_frames());
- EXPECT_TRUE(WaitAndSendFrame(0)); // Should be rendered.
- EXPECT_TRUE(WaitAndSendFrame(30)); // Should be rendered.
- frame_count += 2;
- EXPECT_FRAME_WAIT(frame_count, codec.width, codec.height, kTimeout);
- std::unique_ptr<const rtc::CopyOnWriteBuffer> p(GetRtpPacket(0));
- EXPECT_EQ(codec.id, GetPayloadType(p.get()));
-
- // The channel requires 15 fps.
- codec.framerate = 15;
- EXPECT_TRUE(SetOneCodec(codec));
- EXPECT_TRUE(WaitAndSendFrame(0)); // Should be rendered.
- EXPECT_TRUE(WaitAndSendFrame(30)); // Should be dropped.
- EXPECT_TRUE(WaitAndSendFrame(30)); // Should be rendered.
- frame_count += 2;
- EXPECT_EQ_WAIT(frame_count, renderer_.num_rendered_frames(), kTimeout);
-
- // The channel requires 10 fps.
- codec.framerate = 10;
- EXPECT_TRUE(SetOneCodec(codec));
- EXPECT_TRUE(WaitAndSendFrame(0)); // Should be rendered.
- EXPECT_TRUE(WaitAndSendFrame(30)); // Should be dropped.
- EXPECT_TRUE(WaitAndSendFrame(30)); // Should be dropped.
- EXPECT_TRUE(WaitAndSendFrame(30)); // Should be rendered.
- frame_count += 2;
- EXPECT_EQ_WAIT(frame_count, renderer_.num_rendered_frames(), kTimeout);
-
- // The channel requires 8 fps. The adapter adapts to 10 fps, which is the
- // closest factor of 30.
- codec.framerate = 8;
- EXPECT_TRUE(SetOneCodec(codec));
- EXPECT_TRUE(WaitAndSendFrame(0)); // Should be rendered.
- EXPECT_TRUE(WaitAndSendFrame(30)); // Should be dropped.
- EXPECT_TRUE(WaitAndSendFrame(30)); // Should be dropped.
- EXPECT_TRUE(WaitAndSendFrame(30)); // Should be rendered.
- frame_count += 2;
- EXPECT_EQ_WAIT(frame_count, renderer_.num_rendered_frames(), kTimeout);
- }
- // Tests that adapted frames won't be upscaled to a higher resolution.
- void SendsLowerResolutionOnSmallerFrames() {
- cricket::VideoCodec codec = DefaultCodec();
- codec.width = 320;
- codec.height = 240;
- EXPECT_TRUE(SetOneCodec(codec));
- EXPECT_TRUE(SetSend(true));
- EXPECT_TRUE(channel_->SetSink(kDefaultReceiveSsrc, &renderer_));
- EXPECT_EQ(0, renderer_.num_rendered_frames());
- EXPECT_TRUE(SendFrame());
- EXPECT_FRAME_WAIT(1, codec.width, codec.height, kTimeout);
-
- // Check that we send smaller frames at the new resolution.
- EXPECT_TRUE(rtc::Thread::Current()->ProcessMessages(33));
- EXPECT_TRUE(video_capturer_->CaptureCustomFrame(
- codec.width / 2, codec.height / 2, cricket::FOURCC_I420));
- EXPECT_FRAME_WAIT(2, codec.width / 2, codec.height / 2, kTimeout);
- }
-
// Test that multiple send streams can be created and deleted properly.
void MultipleSendStreams() {
// Remove stream added in Setup. I.e. remove stream corresponding to default
« no previous file with comments | « webrtc/media/base/mediaconstants.cc ('k') | webrtc/media/engine/webrtcvideoengine2.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698