Reader.h 657 B

123456789101112131415161718192021222324252627282930313233343536
  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. ErrorOr<BoxList> read_entire_file();
  15. ErrorOr<BrandIdentifier> get_major_brand();
  16. ErrorOr<Vector<BrandIdentifier>> get_minor_brands();
  17. private:
  18. Reader(MaybeOwned<SeekableStream> stream)
  19. : m_stream(move(stream))
  20. {
  21. }
  22. ErrorOr<void> parse_initial_data();
  23. MaybeOwned<SeekableStream> m_stream;
  24. };
  25. }