diff --git a/Userland/Libraries/LibGfx/ImageFormats/ISOBMFF/JPEG2000Boxes.cpp b/Userland/Libraries/LibGfx/ImageFormats/ISOBMFF/JPEG2000Boxes.cpp index 9ff4269e726..a6ab46a1cf8 100644 --- a/Userland/Libraries/LibGfx/ImageFormats/ISOBMFF/JPEG2000Boxes.cpp +++ b/Userland/Libraries/LibGfx/ImageFormats/ISOBMFF/JPEG2000Boxes.cpp @@ -144,7 +144,7 @@ void JPEG2000ResolutionBox::dump(String const& prepend) const SuperBox::dump(prepend); } -ErrorOr JPEG2000CaptureResolutionBox::read_from_stream(BoxStream& stream) +ErrorOr JPEG2000ResolutionSubboxBase::read_from_stream(BoxStream& stream) { vertical_capture_grid_resolution_numerator = TRY(stream.read_value>()); vertical_capture_grid_resolution_denominator = TRY(stream.read_value>()); @@ -155,13 +155,23 @@ ErrorOr JPEG2000CaptureResolutionBox::read_from_stream(BoxStream& stream) return {}; } -void JPEG2000CaptureResolutionBox::dump(String const& prepend) const +void JPEG2000ResolutionSubboxBase::dump(String const& prepend) const { Box::dump(prepend); outln("{}- vertical_capture_grid_resolution = {}/{} * 10^{}", prepend, vertical_capture_grid_resolution_numerator, vertical_capture_grid_resolution_denominator, vertical_capture_grid_resolution_exponent); outln("{}- horizontal_capture_grid_resolution = {}/{} * 10^{}", prepend, horizontal_capture_grid_resolution_numerator, horizontal_capture_grid_resolution_denominator, horizontal_capture_grid_resolution_exponent); } +ErrorOr JPEG2000CaptureResolutionBox::read_from_stream(BoxStream& stream) +{ + return JPEG2000ResolutionSubboxBase::read_from_stream(stream); +} + +void JPEG2000CaptureResolutionBox::dump(String const& prepend) const +{ + JPEG2000ResolutionSubboxBase::dump(prepend); +} + ErrorOr JPEG2000ContiguousCodestreamBox::read_from_stream(BoxStream& stream) { // FIXME: It's wasteful to make a copy of all the image data here. Having just a ReadonlyBytes diff --git a/Userland/Libraries/LibGfx/ImageFormats/ISOBMFF/JPEG2000Boxes.h b/Userland/Libraries/LibGfx/ImageFormats/ISOBMFF/JPEG2000Boxes.h index da2a09b2575..cb1a2c8e6bc 100644 --- a/Userland/Libraries/LibGfx/ImageFormats/ISOBMFF/JPEG2000Boxes.h +++ b/Userland/Libraries/LibGfx/ImageFormats/ISOBMFF/JPEG2000Boxes.h @@ -55,9 +55,9 @@ struct JPEG2000ResolutionBox final : public SuperBox { BOX_SUBTYPE(JPEG2000ResolutionBox); }; -// I.5.3.7.1 Capture Resolution box -struct JPEG2000CaptureResolutionBox final : public Box { - BOX_SUBTYPE(JPEG2000CaptureResolutionBox); +struct JPEG2000ResolutionSubboxBase : public Box { + ErrorOr read_from_stream(BoxStream&); + virtual void dump(String const& prepend) const override; u16 vertical_capture_grid_resolution_numerator { 0 }; u16 vertical_capture_grid_resolution_denominator { 0 }; @@ -67,6 +67,11 @@ struct JPEG2000CaptureResolutionBox final : public Box { i8 horizontal_capture_grid_resolution_exponent { 0 }; }; +// I.5.3.7.1 Capture Resolution box +struct JPEG2000CaptureResolutionBox final : public JPEG2000ResolutionSubboxBase { + BOX_SUBTYPE(JPEG2000CaptureResolutionBox); +}; + // I.5.4 Contiguous Codestream box struct JPEG2000ContiguousCodestreamBox final : public Box { BOX_SUBTYPE(JPEG2000ContiguousCodestreamBox);