Android-cuttlefish cvd tool
cvd_video_frame_buffer.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2020 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#pragma once
18
19#include <cstdint>
20#include <vector>
21
23
24namespace cuttlefish {
25
27 public:
29 CvdVideoFrameBuffer(CvdVideoFrameBuffer&& cvd_frame_buf) = default;
30 CvdVideoFrameBuffer(const CvdVideoFrameBuffer& cvd_frame_buf) = default;
33 delete;
35
36 ~CvdVideoFrameBuffer() override;
37
38 int width() const override;
39 int height() const override;
40
41 int StrideY() const override;
42 int StrideU() const override;
43 int StrideV() const override;
44
45 uint8_t *DataY() override { return y_.data(); }
46 uint8_t *DataU() override { return u_.data(); }
47 uint8_t *DataV() override { return v_.data(); }
48
49 std::size_t DataSizeY() const override { return y_.size(); }
50 std::size_t DataSizeU() const override { return u_.size(); }
51 std::size_t DataSizeV() const override { return v_.size(); }
52
53 private:
54 const int width_;
55 const int height_;
56 std::vector<std::uint8_t> y_;
57 std::vector<std::uint8_t> u_;
58 std::vector<std::uint8_t> v_;
59};
60
61}
Definition: cvd_video_frame_buffer.h:26
uint8_t * DataU() override
Definition: cvd_video_frame_buffer.h:46
CvdVideoFrameBuffer & operator=(CvdVideoFrameBuffer &&cvd_frame_buf)=delete
std::size_t DataSizeU() const override
Definition: cvd_video_frame_buffer.h:50
const int height_
Definition: cvd_video_frame_buffer.h:55
CvdVideoFrameBuffer(const CvdVideoFrameBuffer &cvd_frame_buf)=default
std::size_t DataSizeY() const override
Definition: cvd_video_frame_buffer.h:49
CvdVideoFrameBuffer(CvdVideoFrameBuffer &&cvd_frame_buf)=default
int StrideY() const override
Definition: cvd_video_frame_buffer.cpp:74
std::vector< std::uint8_t > v_
Definition: cvd_video_frame_buffer.h:58
std::vector< std::uint8_t > y_
Definition: cvd_video_frame_buffer.h:56
uint8_t * DataV() override
Definition: cvd_video_frame_buffer.h:47
uint8_t * DataY() override
Definition: cvd_video_frame_buffer.h:45
std::vector< std::uint8_t > u_
Definition: cvd_video_frame_buffer.h:57
~CvdVideoFrameBuffer() override
Definition: cvd_video_frame_buffer.cpp:65
int width() const override
Definition: cvd_video_frame_buffer.cpp:71
const int width_
Definition: cvd_video_frame_buffer.h:54
int StrideU() const override
Definition: cvd_video_frame_buffer.cpp:75
CvdVideoFrameBuffer & operator=(const CvdVideoFrameBuffer &cvd_frame_buf)=delete
int height() const override
Definition: cvd_video_frame_buffer.cpp:72
std::size_t DataSizeV() const override
Definition: cvd_video_frame_buffer.h:51
int StrideV() const override
Definition: cvd_video_frame_buffer.cpp:78
Definition: video_frame_buffer.h:24
Definition: alloc_utils.cpp:23