Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LibGfx+Tests(+AK): Add the beginning of a JPEG2000 loader #23682

Merged
merged 25 commits into from Mar 25, 2024

Commits on Mar 25, 2024

  1. Configuration menu
    Copy the full SHA
    9bc3c14 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    26ffe32 View commit details
    Browse the repository at this point in the history
  3. LibGfx/ISOBMFF: Put string literals in box type ENUMERATE_ONE()

    This allows types that have spaces in their FourCC.
    nico committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    215ed4e View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    ef2a11f View commit details
    Browse the repository at this point in the history
  5. LibGfx/ISOBMFF: Add JPEG2000 box types

    I prefixed the types that are labeled as "JPEG2000" on
    https://mp4ra.org/registered-types/boxes with "JPEG2000".
    nico committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    1973cdd View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    1cba87a View commit details
    Browse the repository at this point in the history
  7. LibGfx/ISOBMFF: Make BoxStream MaybeOwn its stream

    ...and make Reader always have a BoxStream.
    nico committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    ab6140e View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    defb3cf View commit details
    Browse the repository at this point in the history
  9. LibGfx/ISOBMFF: Start creating JPEG2000 box types

    `isobmff` can now dump the id in a JPEG2000SignatureBox.
    Creates JPEG2000Boxes.{h,cpp} to house JPEG2000 box types.
    nico committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    0879bb3 View commit details
    Browse the repository at this point in the history
  10. LibGfx/ISOBMFF: Give JPEG2000HeaderBox its own type

    ...and make SuperBox a pure superclass that's not usable by itself.
    nico committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    c1c93c5 View commit details
    Browse the repository at this point in the history
  11. LibGfx/ISOBMFF: Remove Box::read_from_stream()

    This doesn't have to be a virtual method: it's called from
    various create_from_stream() methods that have a static type
    that's created. There's no point in the virtual call here,
    and it makes it harder to add additional parameters to
    read_from_stream() in some subclasses.
    nico committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    28505fb View commit details
    Browse the repository at this point in the history
  12. LibGfx/ISOBMFF: Give Reader::read_entire_file() a factory callback

    This will allow creating different child boxes in different containers.
    nico committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    f988eae View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    145bc64 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    808c1ad View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    2a47c10 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    84867f5 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    b13303b View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    e69fd09 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    1fbd38b View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    40430c0 View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    eadccbd View commit details
    Browse the repository at this point in the history
  22. LibGfx: Add the start of a JPEG2000 loader

    JPEG2000 is the last image format used in PDF filters that we
    don't have a loader for. Let's change that.
    
    This adds all the scaffolding, but no actual implementation yet.
    nico committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    59bb15c View commit details
    Browse the repository at this point in the history
  23. LibGfx/JPEG2000: Read file structure

    This is enough for `file` to print the dimensions of .jp2 / .jpx files,
    and for `icc` to print color profile information embedded in the
    'colr' box.
    nico committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    1e0cb1b View commit details
    Browse the repository at this point in the history
  24. Tests/JPEG2000: Add a simple JPEG2000 test

    We can't decode any actual image data yet, but it shows that we can
    read the basics of the container format. (...as long as there's an
    Annex I container around the data, not just an Annex A codestream.
    All files I've found so far have the container.)
    
    I drew the thes input in Acorn.app and used "Save as..." to save it as
    JPEG2000.  It's an RGBA image.
    nico committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    b235bce View commit details
    Browse the repository at this point in the history
  25. Fuzzers: Add JPEG2000 fuzzer

    nico committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    ef853c9 View commit details
    Browse the repository at this point in the history