Skip to content

Yordan Stoykov : raw file format support#346

Draft
atsju wants to merge 9 commits into
masterfrom
JST/raw
Draft

Yordan Stoykov : raw file format support#346
atsju wants to merge 9 commits into
masterfrom
JST/raw

Conversation

@atsju

@atsju atsju commented Jul 26, 2026

Copy link
Copy Markdown
Collaborator

original repo is here : https://github.com/sotisbg/DFTFringe-raw
Discussion is https://groups.io/g/Interferometry/topic/dftfringe_and_raw_camera/120445267
Mention @sotisbg

Hi all,
As the repo from Yordan is not a fork, I couldn't do a pull request. I used my git-fu to add copy the commits here. Those are unmodified. He is still official author with Claude.

From what I see the code is using libraw as recommended by @mlpeck so the direction is good but some things are not OK. The code beeing made by Claude and Yordan no beeing a developper (nothing wrong with that, thank you for the effort of sharing), the correction effort would fall back on maintainer.

I personally won't work on it, sorry. However kindly ping me before you decide to merge so I can do a review. In particular the GitHub actions have been modified. Linux support for QT5 has been removed, the release trigger is not managed by make-release anymore and it looks like QT5 is the release. Some of these things are probably not what we want.

sotisbg and others added 9 commits July 24, 2026 22:06
- New rawimage module decodes RAW (CR2/NEF/ARW/DNG/RW2/...) to QImage via LibRaw
- Integrate into IgramArea::openImage and the file-open dialogs
- DFTFringe.pro: link LibRaw (static on Windows via LIBRAW_NODLL, -lraw elsewhere)
- CI: build LibRaw 0.22.2 in build-windows.yml; add libraw-dev to linux workflows

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The QT6 Windows build failed at link time with undefined references to
htons/ntohs/htonl/ntohl. LibRaw uses these on Windows; they live in the
Winsock library ws2_32, which was not linked. Add -lws2_32 (after -lraw)
in DFTFringe.pro.

The QT5 Windows build uses a separate DFTFringe_QT5.pro and workflow that
had no RAW support at all, so it failed with undefined references to
RawImage::* (rawimage.cpp was never compiled). Port the RAW wiring to QT5:
- add rawimage.cpp/.h to DFTFringe_QT5.pro SOURCES/HEADERS
- add LibRaw include path, LIBRAW_NODLL define, -lraw and -lws2_32
- add a build-libraw job (built with the QT5 mingw 8.1 toolchain) to
  build-windows-QT5.yml, wire it into build-DFTFringe needs, and restore
  the LibRaw cache before qmake

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The on-screen version showed the literal MY_AUTOMATED_VERSION_STRING
because the CI replace step patched DFTFringe.pro while the QT5
workflow actually builds DFTFringe_QT5.pro. Patch DFTFringe_QT5.pro
too so APP_VERSION embeds the real version.

Also trigger the workflow on v* tags so tagged releases embed the
tag name (e.g. v8.4.0-raw) as the displayed version, and add
libraw-dev to the Linux QT5 build for RAW support.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
make-release builds via build-windows.yml (QT6), whose qmake (no
argument) picks up DFTFringe_QT5.pro. That file's version placeholder
was never replaced, so the released installer displayed
MY_AUTOMATED_VERSION_STRING on screen. Patch both .pro files.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
With two .pro files present, bare `qmake` picked one ambiguously.
Name DFTFringe.pro explicitly so the QT6 release build is deterministic.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The release installer is built solely via the QT6 workflow. Remove the
duplicate DFTFringe_QT5.pro and its QT5 windows/linux workflows, and the
now-obsolete QT5 version-patch line in build-windows.yml.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The QT6 (Qt 6.8.3) build renders the whole UI and the report at a
different resolution on high-DPI monitors than the previous Qt 5.15
build the user prefers. Bring back DFTFringe_QT5.pro and the QT5
windows workflow (version-string patch + tag trigger already included)
so we can ship the RAW installer on Qt 5.15 again.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Import Current Wavefront copied wf->InputZerns, which is fitted with
zernikePolar and capped at Z_TERMS (49 = order 12), ignoring the max
order spinbox. Re-fit the current wavefront with ZernFitWavefront
(zpmC) at the selected order instead, so order 22 yields all 144
coefficients. A subsequent Save then writes the actually-selected
term count to the .zrn file. Keep m_zernEnables sized to the term
count when the order changes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Point the release workflow at build-windows-QT5.yml (Qt 5.15.2) and
pull the DFTFringe-windows-build-artifact-QT5 artifact so the drafted
installer is DFTFringeInstaller_QT5_<tag>.exe instead of the Qt6 build.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@atsju
atsju requested review from githubdoe and gr5 July 26, 2026 10:13
@github-actions

Copy link
Copy Markdown

🚀 New build available for commit 26f12ff
Download installer here

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