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

Unified Diff: media/capture/video/fake_video_capture_device_unittest.cc

Issue 2573223002: [Mojo Video Capture] Simplify media::VideoCaptureDevice::Client:Buffer to a struct (Closed)
Patch Set: mcasas comments Created 3 years, 11 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
Index: media/capture/video/fake_video_capture_device_unittest.cc
diff --git a/media/capture/video/fake_video_capture_device_unittest.cc b/media/capture/video/fake_video_capture_device_unittest.cc
index 21563c0fd9301cbdab0289b45bd938a5fa792ba7..27149232e783954c69cd199bc9f8bf322e8a2a08 100644
--- a/media/capture/video/fake_video_capture_device_unittest.cc
+++ b/media/capture/video/fake_video_capture_device_unittest.cc
@@ -34,36 +34,62 @@ namespace media {
namespace {
-// This class is a Client::Buffer that allocates and frees the requested |size|.
-class MockBuffer : public VideoCaptureDevice::Client::Buffer {
+class StubBufferHandle : public VideoCaptureBufferHandle {
public:
- MockBuffer(int buffer_id, int frame_feedback_id, size_t mapped_size)
- : id_(buffer_id),
- frame_feedback_id_(frame_feedback_id),
- mapped_size_(mapped_size),
- data_(new uint8_t[mapped_size]) {}
- ~MockBuffer() override { delete[] data_; }
-
- int id() const override { return id_; }
- int frame_feedback_id() const override { return frame_feedback_id_; }
- gfx::Size dimensions() const override { return gfx::Size(); }
+ StubBufferHandle(size_t mapped_size, uint8_t* data)
+ : mapped_size_(mapped_size), data_(data) {}
+
size_t mapped_size() const override { return mapped_size_; }
- void* data(int plane) override { return data_; }
-#if defined(OS_POSIX) && !(defined(OS_MACOSX) && !defined(OS_IOS))
- base::FileDescriptor AsPlatformFile() override {
- return base::FileDescriptor();
+ uint8_t* data() override { return data_; }
+ const uint8_t* data() const override { return data_; }
+
+ private:
+ const size_t mapped_size_;
+ uint8_t* const data_;
+};
+
+class StubBufferHandleProvider
+ : public VideoCaptureDevice::Client::Buffer::HandleProvider {
+ public:
+ StubBufferHandleProvider(size_t mapped_size, uint8_t* data)
+ : mapped_size_(mapped_size), data_(data) {}
+
+ ~StubBufferHandleProvider() override {}
+
+ mojo::ScopedSharedBufferHandle GetHandleForInterProcessTransit() override {
+ return mojo::ScopedSharedBufferHandle();
+ }
+
+ std::unique_ptr<VideoCaptureBufferHandle> GetHandleForInProcessAccess()
+ override {
+ return base::MakeUnique<StubBufferHandle>(mapped_size_, data_);
}
-#endif
- bool IsBackedByVideoFrame() const override { return false; };
- scoped_refptr<VideoFrame> GetVideoFrame() override { return nullptr; }
private:
- const int id_;
- const int frame_feedback_id_;
const size_t mapped_size_;
uint8_t* const data_;
};
+class StubReadWritePermission
+ : public VideoCaptureDevice::Client::Buffer::ScopedAccessPermission {
+ public:
+ StubReadWritePermission(uint8_t* data) : data_(data) {}
+ ~StubReadWritePermission() override { delete[] data_; }
+
+ private:
+ uint8_t* const data_;
+};
+
+VideoCaptureDevice::Client::Buffer CreateStubBuffer(int buffer_id,
+ size_t mapped_size) {
+ auto buffer = new uint8_t[mapped_size];
+ const int arbitrary_frame_feedback_id = 0;
+ return VideoCaptureDevice::Client::Buffer(
+ buffer_id, arbitrary_frame_feedback_id,
+ base::MakeUnique<StubBufferHandleProvider>(mapped_size, buffer),
+ base::MakeUnique<StubReadWritePermission>(buffer));
+};
+
class MockClient : public VideoCaptureDevice::Client {
public:
MOCK_METHOD2(OnError,
@@ -84,25 +110,24 @@ class MockClient : public VideoCaptureDevice::Client {
frame_cb_.Run(format);
}
// Virtual methods for capturing using Client's Buffers.
- std::unique_ptr<Buffer> ReserveOutputBuffer(const gfx::Size& dimensions,
- media::VideoPixelFormat format,
- media::VideoPixelStorage storage,
- int frame_feedback_id) override {
+ Buffer ReserveOutputBuffer(const gfx::Size& dimensions,
+ media::VideoPixelFormat format,
+ media::VideoPixelStorage storage,
+ int frame_feedback_id) override {
EXPECT_TRUE((format == media::PIXEL_FORMAT_ARGB &&
storage == media::PIXEL_STORAGE_CPU));
EXPECT_GT(dimensions.GetArea(), 0);
const VideoCaptureFormat frame_format(dimensions, 0.0, format);
- return base::MakeUnique<MockBuffer>(0, frame_feedback_id,
- frame_format.ImageAllocationSize());
+ return CreateStubBuffer(0, frame_format.ImageAllocationSize());
}
- void OnIncomingCapturedBuffer(std::unique_ptr<Buffer> buffer,
+ void OnIncomingCapturedBuffer(Buffer buffer,
const VideoCaptureFormat& format,
base::TimeTicks reference_time,
base::TimeDelta timestamp) override {
frame_cb_.Run(format);
}
void OnIncomingCapturedBufferExt(
- std::unique_ptr<Buffer> buffer,
+ Buffer buffer,
const VideoCaptureFormat& format,
base::TimeTicks reference_time,
base::TimeDelta timestamp,
@@ -110,12 +135,11 @@ class MockClient : public VideoCaptureDevice::Client {
const VideoFrameMetadata& additional_metadata) override {
frame_cb_.Run(format);
}
- std::unique_ptr<Buffer> ResurrectLastOutputBuffer(
- const gfx::Size& dimensions,
- media::VideoPixelFormat format,
- media::VideoPixelStorage storage,
- int frame_feedback_id) override {
- return std::unique_ptr<Buffer>();
+ Buffer ResurrectLastOutputBuffer(const gfx::Size& dimensions,
+ media::VideoPixelFormat format,
+ media::VideoPixelStorage storage,
+ int frame_feedback_id) override {
+ return Buffer();
}
double GetBufferPoolUtilization() const override { return 0.0; }
« no previous file with comments | « media/capture/video/fake_video_capture_device.cc ('k') | media/capture/video/linux/v4l2_capture_delegate_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698