| Index: webrtc/modules/desktop_capture/desktop_frame.cc
|
| diff --git a/webrtc/modules/desktop_capture/desktop_frame.cc b/webrtc/modules/desktop_capture/desktop_frame.cc
|
| index 3278ed46dcb1d282969f74981d5fec84fd58140a..51cf568aa0b6a35c3be1f3901df90532a2d8ea3b 100644
|
| --- a/webrtc/modules/desktop_capture/desktop_frame.cc
|
| +++ b/webrtc/modules/desktop_capture/desktop_frame.cc
|
| @@ -10,19 +10,22 @@
|
|
|
| #include "webrtc/modules/desktop_capture/desktop_frame.h"
|
|
|
| -#include <assert.h>
|
| +#include <utility>
|
| +
|
| #include <string.h>
|
|
|
| +#include "webrtc/base/checks.h"
|
| +
|
| namespace webrtc {
|
|
|
| DesktopFrame::DesktopFrame(DesktopSize size,
|
| int stride,
|
| uint8_t* data,
|
| SharedMemory* shared_memory)
|
| - : size_(size),
|
| - stride_(stride),
|
| - data_(data),
|
| + : data_(data),
|
| shared_memory_(shared_memory),
|
| + size_(size),
|
| + stride_(stride),
|
| capture_time_ms_(0) {
|
| }
|
|
|
| @@ -30,7 +33,7 @@ DesktopFrame::~DesktopFrame() {}
|
|
|
| void DesktopFrame::CopyPixelsFrom(uint8_t* src_buffer, int src_stride,
|
| const DesktopRect& dest_rect) {
|
| - assert(DesktopRect::MakeSize(size()).ContainsRect(dest_rect));
|
| + RTC_CHECK(DesktopRect::MakeSize(size()).ContainsRect(dest_rect));
|
|
|
| uint8_t* dest = GetFrameDataAtPos(dest_rect.top_left());
|
| for (int y = 0; y < dest_rect.height(); ++y) {
|
| @@ -43,7 +46,7 @@ void DesktopFrame::CopyPixelsFrom(uint8_t* src_buffer, int src_stride,
|
| void DesktopFrame::CopyPixelsFrom(const DesktopFrame& src_frame,
|
| const DesktopVector& src_pos,
|
| const DesktopRect& dest_rect) {
|
| - assert(DesktopRect::MakeSize(src_frame.size()).ContainsRect(
|
| + RTC_CHECK(DesktopRect::MakeSize(src_frame.size()).ContainsRect(
|
| DesktopRect::MakeOriginSize(src_pos, dest_rect.size())));
|
|
|
| CopyPixelsFrom(src_frame.GetFrameDataAtPos(src_pos),
|
| @@ -81,16 +84,23 @@ DesktopFrame* BasicDesktopFrame::CopyOf(const DesktopFrame& frame) {
|
| std::unique_ptr<DesktopFrame> SharedMemoryDesktopFrame::Create(
|
| DesktopSize size,
|
| SharedMemoryFactory* shared_memory_factory) {
|
| - size_t buffer_size =
|
| - size.width() * size.height() * DesktopFrame::kBytesPerPixel;
|
| - std::unique_ptr<SharedMemory> shared_memory;
|
| - shared_memory = shared_memory_factory->CreateSharedMemory(buffer_size);
|
| + size_t buffer_size = size.height() * size.width() * kBytesPerPixel;
|
| + std::unique_ptr<SharedMemory> shared_memory =
|
| + shared_memory_factory->CreateSharedMemory(buffer_size);
|
| if (!shared_memory)
|
| return nullptr;
|
|
|
| + return Create(size, std::move(shared_memory));
|
| +}
|
| +
|
| +// static
|
| +std::unique_ptr<DesktopFrame> SharedMemoryDesktopFrame::Create(
|
| + DesktopSize size,
|
| + std::unique_ptr<SharedMemory> shared_memory) {
|
| + RTC_DCHECK(shared_memory);
|
| + int stride = size.width() * kBytesPerPixel;
|
| return std::unique_ptr<DesktopFrame>(new SharedMemoryDesktopFrame(
|
| - size, size.width() * DesktopFrame::kBytesPerPixel,
|
| - std::move(shared_memory)));
|
| + size, stride, shared_memory.release()));
|
| }
|
|
|
| SharedMemoryDesktopFrame::SharedMemoryDesktopFrame(DesktopSize size,
|
| @@ -101,15 +111,6 @@ SharedMemoryDesktopFrame::SharedMemoryDesktopFrame(DesktopSize size,
|
| reinterpret_cast<uint8_t*>(shared_memory->data()),
|
| shared_memory) {}
|
|
|
| -SharedMemoryDesktopFrame::SharedMemoryDesktopFrame(
|
| - DesktopSize size,
|
| - int stride,
|
| - std::unique_ptr<SharedMemory> shared_memory)
|
| - : DesktopFrame(size,
|
| - stride,
|
| - reinterpret_cast<uint8_t*>(shared_memory->data()),
|
| - shared_memory.release()) {}
|
| -
|
| SharedMemoryDesktopFrame::~SharedMemoryDesktopFrame() {
|
| delete shared_memory_;
|
| }
|
|
|