Skip to content

feat(#53): replace image/rawler/libheif decode stack with glycin - #54

Open
moments-claude-bot wants to merge 1 commit into
mainfrom
feature/53-glycin
Open

feat(#53): replace image/rawler/libheif decode stack with glycin#54
moments-claude-bot wants to merge 1 commit into
mainfrom
feature/53-glycin

Conversation

@moments-claude-bot

Copy link
Copy Markdown
Collaborator

Adopt glycin as the single image loading library. glycin runs decoders
in sandboxed subprocesses, applies EXIF orientation automatically, and
handles 40+ formats (JPEG, PNG, WebP, TIFF, HEIC, RAW, AVIF, JXL, SVG).

Removed:

  • FormatRegistry / FormatHandler / StandardHandler / RawHandler abstraction
  • rawler and libheif-rs crate dependencies
  • apply_orientation helper (glycin handles orientation)
  • libheif registration call in main()
  • is_gtk_native() branching in viewer

Changed:

  • Thumbnailer: glycin::Loader decodes on Tokio executor; raw bytes from
    frame.buf_slice() are passed to spawn_blocking for resize + WebP encode
  • Viewer: glycin::Loader decodes on Tokio; bytes assembled into
    gdk::MemoryTexture on the GLib context via glycin_format_to_gdk()
  • Importer: FormatRegistry.is_supported() replaced by SUPPORTED_EXTENSIONS
    static slice (all formats glycin handles)
  • CI: swap libheif-devel for libseccomp-devel/lcms2-devel/fontconfig-devel

Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com

Adopt glycin as the single image loading library. glycin runs decoders
in sandboxed subprocesses, applies EXIF orientation automatically, and
handles 40+ formats (JPEG, PNG, WebP, TIFF, HEIC, RAW, AVIF, JXL, SVG).

Removed:
- FormatRegistry / FormatHandler / StandardHandler / RawHandler abstraction
- rawler and libheif-rs crate dependencies
- apply_orientation helper (glycin handles orientation)
- libheif registration call in main()
- is_gtk_native() branching in viewer

Changed:
- Thumbnailer: glycin::Loader decodes on Tokio executor; raw bytes from
  frame.buf_slice() are passed to spawn_blocking for resize + WebP encode
- Viewer: glycin::Loader decodes on Tokio; bytes assembled into
  gdk::MemoryTexture on the GLib context via glycin_format_to_gdk()
- Importer: FormatRegistry.is_supported() replaced by SUPPORTED_EXTENSIONS
  static slice (all formats glycin handles)
- CI: swap libheif-devel for libseccomp-devel/lcms2-devel/fontconfig-devel

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants