Index: media/video/capture/fake_video_capture_device_unittest.cc |
diff --git a/media/video/capture/fake_video_capture_device_unittest.cc b/media/video/capture/fake_video_capture_device_unittest.cc |
index e413c5ed4d7062636bac181d4dfa8b5b639ab319..7deb18e46d8fa564d532eab1d165b12ea405a038 100644 |
--- a/media/video/capture/fake_video_capture_device_unittest.cc |
+++ b/media/video/capture/fake_video_capture_device_unittest.cc |
@@ -24,21 +24,31 @@ namespace { |
static const FakeVideoCaptureDevice::FakeVideoCaptureDeviceType |
kCaptureTypes[] = { |
FakeVideoCaptureDevice::USING_OWN_BUFFERS, |
+ FakeVideoCaptureDevice::USING_OWN_BUFFERS_TRIPLANAR, |
FakeVideoCaptureDevice::USING_CLIENT_BUFFERS, |
- // TODO(mcasas): Add FakeVideoCaptureDevice::USING_GPU_MEMORY_BUFFERS when |
- // implemented. |
+ FakeVideoCaptureDevice::USING_GPU_MEMORY_BUFFERS, |
+}; |
+ |
+class SimpleAccesor : public media::DataHandle { |
+ public: |
+ explicit SimpleAccesor(void* data) : data_(data) {} |
+ void* data() override { return data_; } |
+ |
+ private: |
+ void* data_; |
}; |
// This class is a Client::Buffer that allocates and frees the requested |size|. |
class MockBuffer : public VideoCaptureDevice::Client::Buffer { |
public: |
MockBuffer(int buffer_id, size_t size) |
- : id_(buffer_id), |
- size_(size), |
- data_(new uint8[size_]) {} |
+ : id_(buffer_id), size_(size), data_(new uint8[size_]) {} |
int id() const override { return id_; } |
- void* data() const override { return static_cast<void*>(data_); } |
size_t size() const override { return size_; } |
+ scoped_ptr<media::DataHandle> GetDataHandle() override { |
+ return make_scoped_ptr(new SimpleAccesor(data_)); |
+ } |
+ ClientBuffer AsClientBuffer() override { return nullptr; } |
private: |
~MockBuffer() override { delete[] data_; } |
@@ -50,22 +60,12 @@ class MockBuffer : public VideoCaptureDevice::Client::Buffer { |
class MockClient : public VideoCaptureDevice::Client { |
public: |
- MOCK_METHOD9(OnIncomingCapturedYuvData, |
- void (const uint8* y_data, |
- const uint8* u_data, |
- const uint8* v_data, |
- size_t y_stride, |
- size_t u_stride, |
- size_t v_stride, |
- const VideoCaptureFormat& frame_format, |
- int clockwise_rotation, |
- const base::TimeTicks& timestamp)); |
MOCK_METHOD1(OnError, void(const std::string& reason)); |
explicit MockClient(base::Callback<void(const VideoCaptureFormat&)> frame_cb) |
: frame_cb_(frame_cb) {} |
- // Client virtual method for capturing using Device Buffers. |
+ // Client virtual methods for capturing using Device Buffers. |
void OnIncomingCapturedData(const uint8* data, |
int length, |
const VideoCaptureFormat& format, |
@@ -73,13 +73,32 @@ class MockClient : public VideoCaptureDevice::Client { |
const base::TimeTicks& timestamp) { |
frame_cb_.Run(format); |
} |
+ void OnIncomingCapturedYuvData(const uint8* y_data, |
+ const uint8* u_data, |
+ const uint8* v_data, |
+ size_t y_stride, |
+ size_t u_stride, |
+ size_t v_stride, |
+ const VideoCaptureFormat& frame_format, |
+ int clockwise_rotation, |
+ const base::TimeTicks& timestamp) { |
+ frame_cb_.Run(frame_format); |
+ } |
// Virtual methods for capturing using Client's Buffers. |
scoped_refptr<Buffer> ReserveOutputBuffer(media::VideoPixelFormat format, |
const gfx::Size& dimensions) { |
- EXPECT_EQ(format, PIXEL_FORMAT_I420); |
+ EXPECT_TRUE(format == PIXEL_FORMAT_I420 || |
+ format == PIXEL_FORMAT_GPUMEMORYBUFFER); |
EXPECT_GT(dimensions.GetArea(), 0); |
- return make_scoped_refptr(new MockBuffer(0, dimensions.GetArea() * 3 / 2)); |
+ const VideoCaptureFormat frame_format(dimensions, 0.0, format); |
+ return make_scoped_refptr( |
+ new MockBuffer(0, frame_format.ImageAllocationSize())); |
+ } |
+ void OnIncomingCapturedBuffer(const scoped_refptr<Buffer>& buffer, |
+ const VideoCaptureFormat& frame_format, |
+ const base::TimeTicks& timestamp) { |
+ frame_cb_.Run(frame_format); |
} |
void OnIncomingCapturedVideoFrame( |
const scoped_refptr<Buffer>& buffer, |
@@ -125,8 +144,6 @@ class FakeVideoCaptureDeviceTest |
} |
void SetUp() override { |
- EXPECT_CALL(*client_, OnIncomingCapturedYuvData(_,_,_,_,_,_,_,_,_)) |
- .Times(0); |
EXPECT_CALL(*client_, OnError(_)).Times(0); |
} |