| Index: webrtc/media/engine/webrtcvideoframe_unittest.cc
|
| diff --git a/webrtc/media/engine/webrtcvideoframe_unittest.cc b/webrtc/media/engine/webrtcvideoframe_unittest.cc
|
| index fbb7ebd6257609d031027d1233aa8384bf7dafe9..abfd0aea3cdfe43ea36c86c42d40fed1cbea29bb 100644
|
| --- a/webrtc/media/engine/webrtcvideoframe_unittest.cc
|
| +++ b/webrtc/media/engine/webrtcvideoframe_unittest.cc
|
| @@ -16,11 +16,37 @@
|
| #include "webrtc/media/engine/webrtcvideoframe.h"
|
| #include "webrtc/test/fake_texture_frame.h"
|
|
|
| -namespace cricket {
|
| -
|
| -class WebRtcVideoFrameTest : public VideoFrameTest<WebRtcVideoFrame> {
|
| +namespace {
|
| +
|
| +class WebRtcVideoTestFrame : public cricket::WebRtcVideoFrame {
|
| public:
|
| - WebRtcVideoFrameTest() {}
|
| + WebRtcVideoTestFrame() {}
|
| + WebRtcVideoTestFrame(
|
| + const rtc::scoped_refptr<webrtc::VideoFrameBuffer>& buffer,
|
| + int64_t time_stamp_ns,
|
| + webrtc::VideoRotation rotation)
|
| + : WebRtcVideoFrame(buffer, time_stamp_ns, rotation) {}
|
| +
|
| + // The ApplyRotationToFrame test needs this as a public method.
|
| + using cricket::WebRtcVideoFrame::set_rotation;
|
| +
|
| + virtual VideoFrame* CreateEmptyFrame(int w,
|
| + int h,
|
| + int64_t time_stamp) const override {
|
| + rtc::scoped_refptr<webrtc::I420Buffer> buffer(
|
| + new rtc::RefCountedObject<webrtc::I420Buffer>(w, h));
|
| + buffer->SetToBlack();
|
| + return new WebRtcVideoTestFrame(
|
| + buffer, time_stamp, webrtc::kVideoRotation_0);
|
| + }
|
| +};
|
| +
|
| +} // namespace
|
| +
|
| +class WebRtcVideoFrameTest : public VideoFrameTest<cricket::WebRtcVideoFrame> {
|
| + public:
|
| + WebRtcVideoFrameTest() {
|
| + }
|
|
|
| void TestInit(int cropped_width, int cropped_height,
|
| webrtc::VideoRotation frame_rotation,
|
| @@ -29,8 +55,8 @@
|
| const int frame_height = 1080;
|
|
|
| // Build the CapturedFrame.
|
| - CapturedFrame captured_frame;
|
| - captured_frame.fourcc = FOURCC_I420;
|
| + cricket::CapturedFrame captured_frame;
|
| + captured_frame.fourcc = cricket::FOURCC_I420;
|
| captured_frame.time_stamp = rtc::TimeNanos();
|
| captured_frame.rotation = frame_rotation;
|
| captured_frame.width = frame_width;
|
| @@ -44,7 +70,7 @@
|
| captured_frame.data = captured_frame_buffer.get();
|
|
|
| // Create the new frame from the CapturedFrame.
|
| - WebRtcVideoFrame frame;
|
| + cricket::WebRtcVideoFrame frame;
|
| EXPECT_TRUE(
|
| frame.Init(&captured_frame, cropped_width, cropped_height,
|
| apply_rotation));
|
| @@ -69,8 +95,9 @@
|
| }
|
| };
|
|
|
| -#define TEST_WEBRTCVIDEOFRAME(X) \
|
| - TEST_F(WebRtcVideoFrameTest, X) { VideoFrameTest<WebRtcVideoFrame>::X(); }
|
| +#define TEST_WEBRTCVIDEOFRAME(X) TEST_F(WebRtcVideoFrameTest, X) { \
|
| + VideoFrameTest<cricket::WebRtcVideoFrame>::X(); \
|
| +}
|
|
|
| TEST_WEBRTCVIDEOFRAME(ConstructI420)
|
| TEST_WEBRTCVIDEOFRAME(ConstructI422)
|
| @@ -254,7 +281,7 @@
|
| new rtc::RefCountedObject<webrtc::test::FakeNativeHandleBuffer>(
|
| dummy_handle, 640, 480);
|
| // Timestamp is converted from ns to us, so last three digits are lost.
|
| - WebRtcVideoFrame frame(buffer, 20000, webrtc::kVideoRotation_0);
|
| + cricket::WebRtcVideoFrame frame(buffer, 20000, webrtc::kVideoRotation_0);
|
| EXPECT_EQ(dummy_handle, frame.video_frame_buffer()->native_handle());
|
| EXPECT_EQ(640, frame.width());
|
| EXPECT_EQ(480, frame.height());
|
| @@ -272,8 +299,8 @@
|
| new rtc::RefCountedObject<webrtc::test::FakeNativeHandleBuffer>(
|
| dummy_handle, 640, 480);
|
| // Timestamp is converted from ns to us, so last three digits are lost.
|
| - WebRtcVideoFrame frame1(buffer, 20000, webrtc::kVideoRotation_0);
|
| - VideoFrame* frame2 = frame1.Copy();
|
| + cricket::WebRtcVideoFrame frame1(buffer, 20000, webrtc::kVideoRotation_0);
|
| + cricket::VideoFrame* frame2 = frame1.Copy();
|
| EXPECT_EQ(frame1.video_frame_buffer()->native_handle(),
|
| frame2->video_frame_buffer()->native_handle());
|
| EXPECT_EQ(frame1.width(), frame2->width());
|
| @@ -284,17 +311,17 @@
|
| }
|
|
|
| TEST_F(WebRtcVideoFrameTest, ApplyRotationToFrame) {
|
| - WebRtcVideoFrame applied0;
|
| + WebRtcVideoTestFrame applied0;
|
| EXPECT_TRUE(IsNull(applied0));
|
| - EXPECT_TRUE(LoadFrame(CreateYuvSample(kWidth, kHeight, 12).get(), FOURCC_I420,
|
| - kWidth, kHeight, &applied0));
|
| + EXPECT_TRUE(LoadFrame(CreateYuvSample(kWidth, kHeight, 12).get(),
|
| + cricket::FOURCC_I420, kWidth, kHeight, &applied0));
|
|
|
| // Claim that this frame needs to be rotated for 90 degree.
|
| - applied0.rotation_ = webrtc::kVideoRotation_90;
|
| + applied0.set_rotation(webrtc::kVideoRotation_90);
|
|
|
| // Apply rotation on frame 1. Output should be different from frame 1.
|
| - WebRtcVideoFrame* applied90 =
|
| - const_cast<WebRtcVideoFrame*>(static_cast<const WebRtcVideoFrame*>(
|
| + WebRtcVideoTestFrame* applied90 = const_cast<WebRtcVideoTestFrame*>(
|
| + static_cast<const WebRtcVideoTestFrame*>(
|
| applied0.GetCopyWithRotationApplied()));
|
| EXPECT_TRUE(applied90);
|
| EXPECT_EQ(applied90->rotation(), webrtc::kVideoRotation_0);
|
| @@ -302,11 +329,10 @@
|
|
|
| // Claim the frame 2 needs to be rotated for another 270 degree. The output
|
| // from frame 2 rotation should be the same as frame 1.
|
| - applied90->rotation_ = webrtc::kVideoRotation_270;
|
| - const VideoFrame* applied360 = applied90->GetCopyWithRotationApplied();
|
| + applied90->set_rotation(webrtc::kVideoRotation_270);
|
| + const cricket::VideoFrame* applied360 =
|
| + applied90->GetCopyWithRotationApplied();
|
| EXPECT_TRUE(applied360);
|
| EXPECT_EQ(applied360->rotation(), webrtc::kVideoRotation_0);
|
| EXPECT_TRUE(IsEqual(applied0, *applied360, 0));
|
| }
|
| -
|
| -} // namespace cricket
|
|
|