Index: content/renderer/media/webrtc/webrtc_video_capturer_adapter_unittest.cc |
diff --git a/content/renderer/media/webrtc/webrtc_video_capturer_adapter_unittest.cc b/content/renderer/media/webrtc/webrtc_video_capturer_adapter_unittest.cc |
index 81d812b223d483f8a652dfd13c0a8be9240755de..d6560ab6705f8d5980e857ce89973ade61a98e1d 100644 |
--- a/content/renderer/media/webrtc/webrtc_video_capturer_adapter_unittest.cc |
+++ b/content/renderer/media/webrtc/webrtc_video_capturer_adapter_unittest.cc |
@@ -5,9 +5,14 @@ |
#include <algorithm> |
#include "content/renderer/media/webrtc/webrtc_video_capturer_adapter.h" |
+#include "gpu/command_buffer/common/mailbox_holder.h" |
#include "media/base/video_frame.h" |
#include "testing/gtest/include/gtest/gtest.h" |
+namespace { |
+static void ReleaseMailboxCB(const gpu::SyncToken& sync_token) {} |
+} // anonymous namespace |
+ |
namespace content { |
class WebRtcVideoCapturerAdapterTest |
@@ -44,14 +49,33 @@ class WebRtcVideoCapturerAdapterTest |
EXPECT_EQ(natural_height, output_frame_height_); |
} |
+ void TestSourceTextureFrame() { |
+ gpu::MailboxHolder holders[media::VideoFrame::kMaxPlanes] = { |
+ gpu::MailboxHolder(gpu::Mailbox::Generate(), gpu::SyncToken(), 5)}; |
+ scoped_refptr<media::VideoFrame> frame = |
+ media::VideoFrame::WrapNativeTextures( |
+ media::PIXEL_FORMAT_ARGB, holders, base::Bind(&ReleaseMailboxCB), |
+ gfx::Size(10, 10), gfx::Rect(10, 10), gfx::Size(10, 10), |
+ base::TimeDelta()); |
+ adapter_.OnFrameCaptured(frame); |
+ rtc::scoped_refptr<webrtc::VideoFrameBuffer> texture_frame = |
+ output_frame_.video_frame_buffer(); |
+ EXPECT_EQ(nullptr, texture_frame->DataY()); |
+ rtc::scoped_refptr<webrtc::VideoFrameBuffer> copied_frame = |
+ texture_frame->NativeToI420Buffer(); |
+ EXPECT_NE(nullptr, copied_frame->DataY()); |
+ } |
+ |
// rtc::VideoSinkInterface |
void OnFrame(const cricket::VideoFrame& frame) override { |
+ output_frame_ = frame; |
output_frame_width_ = frame.width(); |
output_frame_height_ = frame.height(); |
} |
private: |
WebRtcVideoCapturerAdapter adapter_; |
+ cricket::VideoFrame output_frame_; |
int output_frame_width_; |
int output_frame_height_; |
}; |
@@ -68,4 +92,8 @@ TEST_F(WebRtcVideoCapturerAdapterTest, Scale720To640360) { |
TestSourceCropFrame(1280, 720, 1280, 720, 640, 360); |
} |
+TEST_F(WebRtcVideoCapturerAdapterTest, SendsWithCopyTextureFrameCallback) { |
+ TestSourceTextureFrame(); |
+} |
+ |
} // namespace content |