Reader.h 720 B

1234567891011121314151617181920212223242526272829303132333435
  1. /*
  2. * Copyright (c) 2023, Gregory Bertilson <Zaggy1024@gmail.com>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/MaybeOwned.h>
  8. #include <AK/Stream.h>
  9. #include "Boxes.h"
  10. namespace Gfx::ISOBMFF {
  11. class Reader {
  12. public:
  13. static ErrorOr<Reader> create(MaybeOwned<SeekableStream> stream);
  14. static ErrorOr<Reader> create(MaybeOwned<BoxStream> stream);
  15. ErrorOr<BoxList> read_entire_file();
  16. using BoxCallback = Function<ErrorOr<Optional<NonnullOwnPtr<Box>>>(BoxType, BoxStream&)>;
  17. ErrorOr<BoxList> read_entire_file(BoxCallback);
  18. private:
  19. Reader(MaybeOwned<BoxStream> stream)
  20. : m_box_stream(move(stream))
  21. {
  22. }
  23. MaybeOwned<BoxStream> m_box_stream;
  24. };
  25. }