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 <stddef.h>
20#include <stdint.h>
21
22#include <vector>
23
25
26namespace cuttlefish {
27
29 public:
31 CvdVideoFrameBuffer(CvdVideoFrameBuffer&& cvd_frame_buf) = default;
32 CvdVideoFrameBuffer(const CvdVideoFrameBuffer& cvd_frame_buf) = default;
35 delete;
37
38 ~CvdVideoFrameBuffer() override;
39
40 int width() const override;
41 int height() const override;
42
43 int StrideY() const override;
44 int StrideU() const override;
45 int StrideV() const override;
46
47 uint8_t *DataY() override { return y_.data(); }
48 uint8_t *DataU() override { return u_.data(); }
49 uint8_t *DataV() override { return v_.data(); }
50
51 size_t DataSizeY() const override { return y_.size(); }
52 size_t DataSizeU() const override { return u_.size(); }
53 size_t DataSizeV() const override { return v_.size(); }
54
55 std::unique_ptr<VideoFrameBuffer> Clone() const override;
56
57 private:
58 const int width_;
59 const int height_;
60 std::vector<uint8_t> y_;
61 std::vector<uint8_t> u_;
62 std::vector<uint8_t> v_;
63};
64
65}
Definition: cvd_video_frame_buffer.h:28
uint8_t * DataU() override
Definition: cvd_video_frame_buffer.h:48
CvdVideoFrameBuffer & operator=(CvdVideoFrameBuffer &&cvd_frame_buf)=delete
size_t DataSizeU() const override
Definition: cvd_video_frame_buffer.h:52
const int height_
Definition: cvd_video_frame_buffer.h:59
std::unique_ptr< VideoFrameBuffer > Clone() const override
Definition: cvd_video_frame_buffer.cpp:82
CvdVideoFrameBuffer(const CvdVideoFrameBuffer &cvd_frame_buf)=default
size_t DataSizeV() const override
Definition: cvd_video_frame_buffer.h:53
CvdVideoFrameBuffer(CvdVideoFrameBuffer &&cvd_frame_buf)=default
int StrideY() const override
Definition: cvd_video_frame_buffer.cpp:74
uint8_t * DataV() override
Definition: cvd_video_frame_buffer.h:49
uint8_t * DataY() override
Definition: cvd_video_frame_buffer.h:47
~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:58
int StrideU() const override
Definition: cvd_video_frame_buffer.cpp:75
CvdVideoFrameBuffer & operator=(const CvdVideoFrameBuffer &cvd_frame_buf)=delete
std::vector< uint8_t > u_
Definition: cvd_video_frame_buffer.h:61
size_t DataSizeY() const override
Definition: cvd_video_frame_buffer.h:51
std::vector< uint8_t > v_
Definition: cvd_video_frame_buffer.h:62
int height() const override
Definition: cvd_video_frame_buffer.cpp:72
std::vector< uint8_t > y_
Definition: cvd_video_frame_buffer.h:60
int StrideV() const override
Definition: cvd_video_frame_buffer.cpp:78
Definition: video_frame_buffer.h:50
Definition: alloc_driver.h:20