Serenity Operating System
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}