/* * Copyright (c) 2022-2026, Gregory Bertilson * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include namespace Media { class MEDIA_API VideoFrame final { public: VideoFrame( AK::Duration timestamp, AK::Duration duration, Gfx::Size size, u8 bit_depth, CodingIndependentCodePoints cicp, NonnullRefPtr bitmap); ~VideoFrame(); AK::Duration timestamp() const { return m_timestamp; } AK::Duration duration() const { return m_duration; } Gfx::Size size() const { return m_size; } u32 width() const { return size().width(); } u32 height() const { return size().height(); } u8 bit_depth() const { return m_bit_depth; } CodingIndependentCodePoints& cicp() { return m_cicp; } NonnullRefPtr immutable_bitmap() const; private: AK::Duration m_timestamp; AK::Duration m_duration; Gfx::Size m_size; u8 m_bit_depth; CodingIndependentCodePoints m_cicp; NonnullRefPtr m_bitmap; }; }