ladybird/Userland/Libraries/LibGfx/ImageFormats/ISOBMFF/Reader.h
Nico Weber 78deac3dca LibGfx/ISOBMFF: Give Reader::read_entire_file() a factory callback
This will allow creating different child boxes in different containers.
2024-03-25 20:35:00 +01:00

35 lines
720 B
C++

/*
* Copyright (c) 2023, Gregory Bertilson <Zaggy1024@gmail.com>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/MaybeOwned.h>
#include <AK/Stream.h>
#include "Boxes.h"
namespace Gfx::ISOBMFF {
class Reader {
public:
static ErrorOr<Reader> create(MaybeOwned<SeekableStream> stream);
static ErrorOr<Reader> create(MaybeOwned<BoxStream> stream);
ErrorOr<BoxList> read_entire_file();
using BoxCallback = Function<ErrorOr<Optional<NonnullOwnPtr<Box>>>(BoxType, BoxStream&)>;
ErrorOr<BoxList> read_entire_file(BoxCallback);
private:
Reader(MaybeOwned<BoxStream> stream)
: m_box_stream(move(stream))
{
}
MaybeOwned<BoxStream> m_box_stream;
};
}