Serenity Operating System
at master 26 lines 587 B view raw
1/* 2 * Copyright (c) 2022, Gregory Bertilson <zaggy1024@gmail.com> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#pragma once 8 9#include <AK/ByteBuffer.h> 10#include <AK/NonnullOwnPtr.h> 11 12#include "DecoderError.h" 13#include "VideoFrame.h" 14 15namespace Video { 16 17class VideoDecoder { 18public: 19 virtual ~VideoDecoder() {}; 20 21 virtual DecoderErrorOr<void> receive_sample(ReadonlyBytes sample) = 0; 22 DecoderErrorOr<void> receive_sample(ByteBuffer const& sample) { return receive_sample(sample.span()); } 23 virtual DecoderErrorOr<NonnullOwnPtr<VideoFrame>> get_decoded_frame() = 0; 24}; 25 26}