// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef MEDIA_BASE_VIDEO_FRAME_LAYOUT_H_ #define MEDIA_BASE_VIDEO_FRAME_LAYOUT_H_ #include <stddef.h> #include <stdint.h> #include <optional> #include <ostream> #include <utility> #include <vector> #include "media/base/color_plane_layout.h" #include "media/base/media_export.h" #include "media/base/video_types.h" #include "ui/gfx/geometry/size.h" #include "ui/gfx/native_pixmap_handle.h" namespace media { // A class to describes how physical buffer is allocated for video frame. // In stores format, coded size of the frame and size of physical buffers // which can be used to allocate buffer(s) hardware expected. // It also stores stride (bytes per line) and offset per color plane as Plane. // stride is to calculate each color plane's size (note that a buffer may // contains multiple color planes.) // offset is to describe a start point of each plane from buffer's dmabuf fd. // Note that it is copyable. class MEDIA_EXPORT VideoFrameLayout { … }; // Outputs VideoFrameLayout to stream. MEDIA_EXPORT std::ostream& operator<<(std::ostream& ostream, const VideoFrameLayout& layout); } // namespace media #endif // MEDIA_BASE_VIDEO_FRAME_LAYOUT_H_