Skip to content

Releases: HongHuo0728/LogForge

v1.3.1

Choose a tag to compare

@HongHuo0728 HongHuo0728 released this 07 Oct 15:44

LogForge v1.3.1

Build 26107B

This release is exclusively for the iOS platform. The Windows version remains at v1.3.0.

LogForge v1.3.1 improves conversion reliability for supported ProRes footage, addresses audio and timecode preservation failures, adjusts the Liquid Glass license page, and restores release-build reporting.

The native Swift, SwiftUI, and Metal architecture is retained.

Audio and Timecode Preservation

  • Addressed conversion failures caused by AVFoundation passthrough changing AAC packet counts, audio timing, or timecode sample durations.
  • Added native MOV track restoration when strict validation detects a mismatch and no common timeline shift is required.
  • Preserved original retained sample payloads, sample descriptions, timing tables, edit lists, and supported track associations.
  • Updated chunk offsets and movie-clock durations while retaining the converted video.
  • Repeated video and retained-track validation after restoration, before publishing the output.
  • Preserved strict validation requirements; failed validation cannot publish an output.

Liquid Glass License Page

  • Adjusted the open-source license page to address the reported flashing white glass background.
  • Applied Liquid Glass to the fixed scrolling viewport instead of the full document's changing layout height.
  • Cached bundled license text and displayed paragraphs lazily.
  • Preserved text selection, scrolling, and the existing transparent glass appearance.
  • Added regression coverage for repeated license-page navigation.

Version and Build Reporting

  • Updated the iOS application identity to 1.3.1 (26107B).
  • Restored the release-build label on the homepage and in Settings.
  • Restored the releaseBuild field in successful conversion and batch reports.
  • Kept Apple's numeric bundle build separate from the public release-build label.
  • Updated package filenames, manifests, and bilingual installation instructions.
  • Kept iOS release versioning independent of the Windows CMake version.

Verification

  • All 7 packaging checks passed.
  • All 32 XCTest unit tests passed.
  • The license navigation and version/build UI test passed.
  • iPhone Release compilation, archive, and IPA packaging completed successfully.
  • Downloaded package auditing verified SHA-256 values, the actual 1.3.1 (26107B) identity, and the arm64 executable.
  • Confirmed that the generated regression movie is excluded from the application.

Successful iOS build and tests

Compatibility and Limits

  • Requires iOS 26 or newer.
  • Supported input remains BT.2020 HLG ProRes 422 / 422 HQ MOV footage.
  • Output remains Apple Log ProRes 422 or ProRes 422 HQ.
  • CPU and Metal color processing, automatic codec fallback, batch conversion, and failed-item retry remain available.
  • Regression tests use generated media. The original reported camera recording was not supplied.
  • Original-footage conversion and visible background flicker still require physical-device verification.
  • Simulator results do not establish device performance or editing-software compatibility.

Download

Download LogForge-1.3.1-iOS-26107B-unsigned.ipa and sign it with your own valid Apple identity and provisioning profile before installation.

Matching SHA-256 files are provided for integrity verification.

Keep LogForge-1.3.1-iOS-26107B-RelinkKit.zip, corresponding source, and license notices when distributing the application.

Source Provenance

The iOS package was built from commit dd083b6545323354c01f26f9468e98497e5f73b6.

Download the matching source as ZIP or tar.gz.

The native iOS project is located under LogForgeMac/.

The existing v1.3.0 tag and Windows release remain unchanged.

v1.3.0

Choose a tag to compare

@HongHuo0728 HongHuo0728 released this 29 Sep 19:46

LogForge v1.3.0

Build 26929A

LogForge v1.3.0 fixes fractional camera frame-rate detection, makes input color interpretation explicit, and improves queue handling, output publication, audio integrity, CUDA qualification, and crash recovery.

The existing Apple Log and HLG color mathematics remain unchanged.

Fractional CFR Compatibility

  • Replaced the fixed nominal-clock phase threshold with a rational cadence model verified against every video packet.
  • Added support for fixed fractional cadence represented by rounded integer timestamps.
  • Reconstructed and accepted the reported 309-frame case with approximately 59.970888 average FPS and 59.940060 nominal FPS, which previously failed at packet 53.
  • Preserved checks for changing cadence, cumulative drift, timestamp gaps, overlaps, duplicate or backward PTS, and invalid durations.
  • Expanded diagnostics with the input time base, inferred cadence, candidate source, and timing errors expressed in ticks, microseconds, and frame fractions.

Explicit Input Color Interpretation

  • Missing primaries, matrix, range, and chroma declarations now use documented defaults with visible warnings.
  • Explicit conflicting primaries or matrix declarations, including BT.709, are rejected by default.
  • Added deliberate BT.2020 interpretation through a per-file GUI confirmation or the CLI option:
    --force-bt2020-interpretation
  • This override changes how the source is interpreted; it does not perform a gamut conversion or bypass the HLG requirement.
  • GUI Details, CLI probe output, and validation reports distinguish source declarations, assumptions, conflicts, and overrides.
  • Added clear early rejection for unsupported containers and multiple primary video streams.

Camera Compatibility

  • Retained support for iPhone auxiliary mebx tracks, nonzero auxiliary media origins, and recordings without timecode.
  • Retained Blackmagic Camera audio start offsets, PCM stream copy, timecode, and creation metadata.
  • Preserved cardinal rotations baked into float32 pixels.
  • Portrait output continues to use the corresponding raster dimensions and identity display orientation.

Queue and Publication Reliability

  • Queue output paths are calculated before conversion begins.
  • Duplicate names receive deterministic numbered suffixes, with existing files skipped.
  • GUI Details and queue reports expose the input-to-output mapping.
  • Media validation and final publication now have separate report states.
  • A job completes successfully only after validation passes and the final no-overwrite rename succeeds.
  • Destination files created by another process during conversion remain protected.
  • CLI numeric arguments now reject trailing garbage, overflow, empty values, and invalid nonpositive cancellation limits.

Audio Integrity and Recovery

  • Added production SHA-256 verification of each copied audio stream's packet payload.
  • Retained independent checks for audio format, duration, channel layout, and relative A/V offset.
  • Deliberately corrupted audio payloads fail validation and are not published.
  • Improved reporting for omitted attached pictures, subtitles, metadata/data tracks, and regenerated timecode.
  • Unified temporary-media cleanup around recorded file identities.
  • Removed the remux rename-to-untracked-path window.
  • Added crash recovery tests across ten processing stages, including metadata patching, report saving, and publication.

CUDA and Diagnostic Reports

  • Added deterministic CUDA device ranking and reports describing available candidates and the selection reason.
  • Added a bounded process-local qualification cache tied to GPU identity, driver version, embedded PTX hash, application/build, algorithm, and Creative parameters.
  • Explicit qualification still runs the scalar comparison; failed transforms invalidate cached qualification.
  • Preserved CUDA color equations, precision, numerical tolerances, and CPU fallback behavior.
  • Clarified per-buffer, total bridge, Creative frame, pinned host, and GPU device memory fields.

Verification

  • Release configuration and compilation completed successfully.
  • All 29 CTests passed, with no failures or skips.
  • All 26 native GUI scenarios passed.
  • All 960 production layout checks and 20 distinct layout snapshots passed.
  • A 240-frame 3840×2160 / 120 fps conversion passed timing, memory, and post-encode numeric checks.
  • CUDA qualification passed on an NVIDIA GeForce RTX 3080 Ti Laptop GPU, with zero measured maximum and mean error across the six scalar-reference qualification cases.
  • Portable package auditing verified the file allowlist, ZIP integrity, executable identity, and actual SHA-256 sidecar.
  • FileVersion and ProductVersion are 1.3.0.0.

Compatibility and Limits

  • Apple Log, inverse HLG, signed negative extension, BT.2408 scaling, Exposure, and Creative mathematics remain unchanged.
  • Output remains BT.2020 Apple Log, ProRes 422 HQ, 10-bit 4:2:2, Video levels, with nclc 9/2/9 and the existing Apple Log identification.
  • ProRes decoding and encoding remain CPU operations; CUDA accelerates intermediate color processing.
  • Current camera regressions use generated structures. The original reported 59.94 recording was not examined.
  • No new Resolve, Premiere, Final Cut, or physical multi-GPU compatibility campaign was performed.
  • Media publication and report saving are separate filesystem transactions. A crash between them can leave a valid final movie with a pending report.
  • Historical v1.2.1 academic records remain unchanged.

Download

Extract LogForge-1.3.0-Windows-x64.zip and run LogForge.exe.

The portable package excludes FFmpeg, test footage, logs, and user settings. A matching .zip.sha256 file is provided for integrity verification.

LogForge re-encodes the available HLG signal into Apple Log. It does not recover lost sensor information or make processed footage equivalent to native Apple Log capture.
LogForge

iOS Platform Added — 1.3.0 (26106A)

LogForge 1.3.0 now includes a native iOS application alongside the existing Windows version.

  • Native architecture: Swift, SwiftUI and Metal, requiring iOS 26 or newer.
  • Color processing: Apple Metal acceleration and CPU processing.
  • Automatic ProRes fallback: use system decoding and encoding when available, with embedded software codecs for unsupported system paths.
  • Apple Log export: convert supported BT.2020 HLG ProRes 422 / 422 HQ MOV footage into Apple Log ProRes 422 or 422 HQ.
  • Import and batch processing: Photos, files and folders, export-directory selection, cancellation and failed-item retry.
  • Liquid Glass interface: transparent glass controls, a layered glass icon and haptic feedback.
  • Five interface languages: English, Simplified Chinese, Traditional Chinese, French and Spanish, selected through the app's Apple Settings page.
  • Version reporting: display 1.3.0 (26106A) alongside the numeric Apple build number, and retain build information in conversion reports.
  • Bilingual documentation: English and Simplified Chinese project READMEs now cover both platforms.

Source provenance / 源码对应关系

The existing v1.3.0 tag remains at the September 29, 2026 Windows commit 913e4b9417fa0f32b88629c39062b54589d9dd21. GitHub's automatically generated Source code (zip) and Source code (tar.gz) assets follow that original tag and do not include the iOS project.

The iOS 1.3.0 (26106A) assets correspond to commit 4b9b7771be97663cd3a3cb2dc3074a4cd1675fa0, with the native project under LogForgeMac/. Download the matching source as ZIP or tar.gz.

原 v1.3.0 标签保留在 9 月 29 日的 Windows 提交;Release 自动生成的源码 ZIP / tar.gz 不包含 iOS 工程。iOS 26106A 对应上述 4b9b777 提交,请使用上述固定提交的源码下载链接。原标签保持不变。

Installation

The iOS pipeline produces an unsigned arm64 IPA. Sign it with your own valid Apple identity and provisioning profile before installation.

The matching RelinkKit provides corresponding codec source and relink materials. Preserve these materials when distributing the application.

Verification

The main-repository iOS build #2, built from commit 4b9b7771be97663cd3a3cb2dc3074a4cd1675fa0, passed all 5 packaging checks and 28 simulator tests without failures or skips, and successfully archived and packaged the iPhone application. Actual-device performance and editor recognition remain separate validation tasks.

The existing Windows release remains 1.3.0 (26929A). Its original release notes and validation history are retained.

v1.2.1

Choose a tag to compare

@HongHuo0728 HongHuo0728 released this 27 Sep 08:03

LogForge v1.2.1

Build 26927B

LogForge v1.2.1 fixes portrait-video playback and compatibility problems affecting iPhone Camera and Blackmagic Cam ProRes recordings. It simplifies input admission while preserving the existing Apple Log color mathematics and output-quality checks.

Portrait Playback

  • Standard 90/180/270-degree camera orientation is now applied directly to the float32 pixels before encoding.
  • A 3840 × 2160 recording with a 90-degree display rotation now produces upright 2160 × 3840 output.
  • The output uses an identity display matrix with 0° rotation, avoiding sideways playback when a player ignores rotation metadata.
  • Rotation exchanges width and height when needed without resizing or changing the pixel count.
  • The orientation stage does not introduce an 8-bit or 16-bit intermediate.

Simpler Input Compatibility

  • Recording-format admission now requires ProRes 422 / ProRes 422 HQ with HLG.
  • Missing timecode, auxiliary metadata tracks, and edit-list patterns no longer act as input admission gates.
  • Fixed an iPhone Camera rejection caused by a nonzero media origin in an auxiliary mebx metadata track.
  • Nonessential metadata/data tracks are omitted and recorded in the validation report.
  • Video/audio edit lists are interpreted by FFmpeg instead of being rejected by the previous pattern whitelist.
  • Missing chroma siting defaults to left. Explicit source declarations and supported CLI overrides remain available.
  • The camera workflow continues to interpret color as BT.2020 NCL HLG, using video range unless full range is explicitly declared.

Audio and Metadata Preservation

  • Preserve the source movie timescale to avoid unnecessary rounding of audio start offsets.
  • Preserve Blackmagic Cam audio/video synchronization, including a tested offset of 500/48000 seconds.
  • Continue copying audio without re-encoding.
  • Preserve available timecode, creation timestamps, and source creation-date metadata.
  • Inputs without a timecode track can convert normally.

Color Processing and Safeguards

  • Apple Log transfer mathematics, inverse HLG OETF, and BT.2408 reference scaling remain unchanged.
  • Keep float32 intermediate processing, BT.2020 output, Video levels, and ProRes 422 HQ encoding.
  • Keep nclc 9/2/9 and the existing logs=com.apple.rec2020.apple-log identification.
  • Numerical tolerances have not been relaxed.
  • Required frame-timing checks, decoding/encoding error handling, output validation, cancellation, and no-overwrite protections remain active.
  • Simplified admission does not add arbitrary-VFR or non-MOV conversion support.

Verification

  • Release configuration and build completed successfully.
  • 18/18 selected core and compatibility regression tests passed.
  • Generated orientation tests compare source playback against the actual output pixels.
  • The reported Blackmagic Cam original converted successfully:
    • 76 frames preserved.
    • 2160 × 3840 output with 0° rotation.
    • Identical copied PCM audio payload.
    • Audio start offset, timecode, and creation metadata preserved.
  • The reported iPhone Camera original converted successfully:
    • 82 frames preserved.
    • 2160 × 3840 output with 0° rotation.
    • No timecode required.
    • Auxiliary metadata tracks no longer blocked conversion.
    • Identical copied PCM audio payload and preserved creation metadata.
  • Both actual conversions passed the existing pixel-sanity, timing, and Apple Log identification checks.
  • Original camera files were left untouched. Temporary test outputs, logs, and configurations were removed.

No new GUI, Resolve import, or performance benchmark campaign was performed for this patch. Earlier editor and performance results remain historical evidence.

Documentation and Release Package

  • Corrected outdated README wording that incorrectly described LogForge as CPU-only and without batch conversion.
  • Existing CPU/CUDA color processing and the multi-file queue remain available. ProRes decoding and encoding continue to run on the CPU.
  • GUI and CLI display 1.2.1 (26927B).
  • Windows FileVersion, ProductVersion, and manifest version are 1.2.1.0.
  • Package integrity, the file allowlist, executable identity, and SHA-256 checksum were verified.

Release files:

  • LogForge-1.2.1-Windows-x64.zip
  • LogForge-1.2.1-Windows-x64.zip.sha256

The portable package does not include FFmpeg, personal footage, logs, or user settings.

v1.2.0

Choose a tag to compare

@HongHuo0728 HongHuo0728 released this 26 Sep 19:56

LogForge v1.2.0

Build 26926A

LogForge v1.2.0 improves portrait MOV compatibility, introduces NVIDIA CUDA color processing and batch conversion, strengthens media and storage validation, and fixes main-window layout problems.

The existing Apple Log and HLG equations, BT.2408 reference scaling, BT.2020 color definitions, and numerical tolerances remain unchanged.

Portrait MOV and Metadata Preservation

  • Fixed validation failures caused by creation-time loss during rotation remux.
  • Creation timestamps are now compared by their meaning, allowing equivalent fractional-second and timezone representations.
  • Preserve documented movie, video, audio, and timecode creation fields through supported rotations.
  • Preserve source creationdate, genuine camera metadata, and other approved metadata without inventing device or encoder identities.
  • Preserve drop-frame timecode by regenerating the timecode track from its source value.
  • Replace the Apple Log identification writer's fixed-depth assumption with validated sample-entry ancestor traversal.
  • Keep logs=com.apple.rec2020.apple-log, nclc 9/2/9, and Video levels unchanged.

NVIDIA CUDA Color Processing

  • Added Auto, CPU, and NVIDIA RTX CUDA processing backends in Settings.
  • Added the CLI option --backend auto|cpu|cuda.
  • Detect CUDA devices at runtime and qualify their numerical results before use, without a GPU-model whitelist.
  • Accelerate inverse HLG processing, signed negative handling, BT.2408 scaling, exposure, Creative adjustments, and Apple Log encoding.
  • Preserve float32 intermediate data and use precise double expressions in the CUDA implementation.
  • Do not use fast math, FP16, Tensor Cores, LUT substitution, or approximate transfer functions.
  • Auto mode falls back to CPU after GPU initialization or processing failures and records the reason.
  • Forced CUDA mode reports an explicit error if the selected backend cannot complete processing.
  • ProRes decoding and ProRes 422 HQ encoding continue to run on the CPU.
  • No CUDA Toolkit installation is required to run LogForge; GPU processing uses the installed NVIDIA driver.

CPU Performance and Timing

  • Allocate decoding, color-processing, and encoding workers according to available logical processors and the selected backend.
  • Overlap Standard decoding, transformation, and encoding through three bounded buffers.
  • Use pinned host memory, asynchronous CUDA transfers, a nonblocking stream, and GPU timing events.
  • Correct the reported transform-and-encode duration.
  • Report pipeline wall time, color-processing time, pipe waits, decoder and encoder CPU time, rotation remux, metadata preservation, identification, and validation separately.
  • Record the GPU name, driver information, backend, and upload/kernel/download timings.

On the tested laptop, the 240-frame 4K120 Standard CPU workload completed in 45.20 seconds, compared with 65.07 seconds for the original serial bridge. This represents approximately 30.5% less conversion time for that workload.

These measurements are specific to the tested machine and do not imply real-time 4K120 conversion.

Media Validation and Output Safety

  • Explicitly require supported QuickTime MOV input.
  • Reject fragmented MOV, unsupported containers, unsafe edit lists, and unsupported display matrices.
  • Reject timeline trims, empty edits, repeats, and speed changes that cannot be preserved safely.
  • Preserve and validate chapter titles and timing.
  • Record removed nonessential metadata/data tracks in validation reports.
  • Add lightweight checks of the first, middle, and last encoded frames against independent CPU reference patches.
  • Check log and report directory access before conversion.
  • Improve disk-space estimation with explicit headroom and rotation-copy allowance.
  • Prevent final output publication after encoding, report-write, validation, or remux-space failures.
  • Preserve existing no-overwrite behavior and partial-file validation before final publication.

Batch Conversion and Details

  • Open or drop multiple videos and convert them sequentially into a selected output directory.
  • Generate an independent result and report for each attempted file.
  • Continue processing later files when an individual item fails, including when the first file cannot be inspected.
  • Cancel the remaining queue safely.
  • Expand Details with codec/profile, resolution, reported frame rates, verified cadence, frame count, chroma location, processing mode, exposure, backend/GPU, audio, timecode, rotation, metadata findings, and timings.
  • Correctly distinguish Standard, Creative, and completed-with-warning states.

Interface Fixes

  • Replace competing layout calculations with one measured main-window layout.
  • Separate input, output, status, and footer regions.
  • Remove duplicate status-text rendering.
  • Fix overlapping text, clipped lines, footer collisions, and stale text after resizing.
  • Recalculate layout after window resizing, DPI changes, language changes, theme changes, and state updates.
  • Add vertical scrolling when the available window height cannot fit the content.
  • Preserve access to logs, Details, conversion controls, and footer information.

Settings and Temporary-File Reliability

  • Synchronize settings and FFmpeg trust read/modify/write operations across application instances.
  • Recover abandoned temporary outputs only when ownership records, process identity, and file identity confirm they belong to LogForge.
  • Leave similar user filenames and unjournalled files untouched.
  • Add retention for recognized LogForge logs/reports and marked obsolete FFmpeg installation directories.
  • Preserve active files and exclude unrecognized folders and reparse points from cleanup.

Verification

  • MSVC x64 Release configuration and build passed.
  • 22/22 CTests passed.
  • 26 native GUI scenarios passed, including Standard and Creative conversions, queue failure recovery, cancellation, and missing-FFmpeg recovery.
  • 960 layout combinations and 20 distinct snapshots passed.
  • Layout coverage includes English/Simplified Chinese, dark/light themes, 100%/125%/150%/175%/200% DPI, and 1280×720, 1920×1080, and 2560×1440 client sizes.
  • Portrait regressions passed for 0°, 90°, -90°, 180°, and 270° using generated MOV fixtures with distinct creation timestamps.
  • 20 benchmark cases passed across 1080p24 and 4K24/30/60/120, CPU/CUDA, and Standard/Creative modes.
  • CUDA qualification on the tested RTX 3080 Ti Laptop GPU produced zero observed maximum and mean float32 output error across six reference-test cases.
  • The 240-frame 4K120 CPU test passed memory, cadence, and independent post-encode sampling checks.
  • Existing numerical tolerances and validation requirements were not relaxed.

DaVinci Resolve Compatibility

Automatic identification was reverified using DaVinci Resolve Studio 20.3.2.9.

New Standard and Creative outputs imported into a fresh DaVinci YRGB Color Managed project both reported:

  • Input Color Space: Apple Log
  • IDT: Apple Log
  • Data Level: Auto
  • Input LUT: None
  • Video Codec: Apple ProRes 422 HQ
  • Bit Depth: 10-bit

No clip color space or LUT was assigned manually during this test. This is a fresh v1.2.0 identification regression; the original v1.1.0 native-reference evidence remains separately documented.

Portable Release

  • Application version: 1.2.0
  • Build number: 26926A
  • Windows FileVersion/ProductVersion: 1.2.0.0
  • Package: LogForge-1.2.0-Windows-x64.zip
  • Checksum: LogForge-1.2.0-Windows-x64.zip.sha256

The ZIP and its actual SHA-256 sidecar passed package auditing, including archive integrity, the exact file allowlist, and equality with the tested executable. The executable extracted from the ZIP also passed native startup and recovery checks.

The portable package contains no FFmpeg binaries, CUDA DLLs, test footage, settings, or logs.

Compatibility and Known Limits

  • Creative adjustments remain disabled by default and separate from Standard conversion.
  • Audio stream copy, CFR packet verification, chroma siting, BT.2020, Video levels, and output protection remain in place.
  • Creative processing still retains one complete planar float32 RGB frame.
  • Physical GPU testing covered one RTX 3080 Ti Laptop GPU. Other devices and drivers must pass runtime qualification.
  • Disk-full and CUDA error/OOM paths were tested through deterministic fault injection rather than deliberately exhausting hardware.
  • One earlier GUI resource-count variation remains an unresolved observation; the isolated recheck and final strict GUI suite passed without relaxed assertions.
  • Premiere Pro and Final Cut Pro were not verified in this release.
  • LogForge re-encodes available image information and does not recover clipped, crushed, or ISP-discarded detail.
屏幕截图 2026-09-26 215218 屏幕截图 2026-09-26 215222

v1.1.1

Choose a tag to compare

@HongHuo0728 HongHuo0728 released this 23 Sep 15:18

LogForge v1.1.1

LogForge v1.1.1 is a discovery and reliability update focused on finding FFmpeg quickly, improving cancellation and error recovery, and fixing native Windows interface issues.

Build: 26923D

Faster FFmpeg Discovery

  • Startup now uses Quick discovery with a shared three-second path-search budget.
  • Managed and saved installations are checked first. A successfully verified installation avoids further discovery.
  • Additional sources include application-adjacent tools, PATH, Windows App Paths, WinGet, Scoop, Chocolatey, common installation folders, and the existing Windows Search index.
  • Installation locations are resolved using Windows known folders and actual environment variables.
  • Quick discovery no longer automatically falls through to whole-drive scanning.
  • Full-drive Deep search remains available as an explicit, cancellable action.
  • The developer CLI supports --detect --deep-search.
  • Path discovery and tool verification are timed separately. Hash, capability, and numerical checks remain mandatory.

Safer Tool Selection and Recovery

  • Added a candidate list showing discovered paths, their sources, paired-file status, and rejection reasons.
  • Discovered programs remain unexecuted until their executable pair has the required approval.
  • Approval continues to bind both executable paths and SHA-256 hashes. Changed files require renewed approval.
  • Potentially blocking filesystem and index queries run in a supervised hidden mode of LogForge itself.
  • Search timeouts and cancellation retain candidates already discovered.
  • Download, manual selection, and retry controls return after unsuccessful searches, refused approval, or verification failures.
  • Each new search starts with fresh counters and progress.

Process and Conversion Reliability

  • Fixed a cancellation and timeout issue when a child process exited but a descendant retained its output pipes.
  • Added bounds for excessive output lines and safe propagation of reader-thread exceptions.
  • Improved cleanup when process readers or background work cannot start successfully.
  • Invalid CLI commands are rejected before unnecessary tool discovery.
  • Mixed-case MOV extensions such as .mOv are accepted.
  • Numeric media fields are checked before integer conversion, and frame counts retain exact integer precision.
  • Disk-space estimates use checked arithmetic based on verified frame counts.
  • Failed trust-store saves clean up their temporary files.
  • Creative processing buffers are allocated before worker startup so allocation failures reach the job error handler.
  • Fixed long-path discovery when Windows requires extended filesystem paths.

Interface Fixes

  • Corrected multiline diagnostic text in native Windows Edit controls.
  • Kept keyboard-focused controls visible inside scrollable high-DPI layouts.
  • Updated candidate-list horizontal scrolling when DPI or appearance changes.
  • Added system-color refresh handling to the main, Settings, and candidate windows.
  • Preserved English and Simplified Chinese, dark and light themes, and the existing Settings options.

Verification

  • MSVC x64 Release build completed successfully.
  • The complete 19-test suite passed during development, including actual ProRes conversion, numerical sampling, metadata, audio, timing, rotation, output protection, and a 240-frame 4K120 workload.
  • After the final discovery and UI fixes, all 14 core/resource tests passed.
  • All 17 final GUI scenarios passed: 14 language/theme/DPI/missing-tool cases, one active-search window-close case, and two actual standard/Creative conversions.
  • Repeated candidate-dialog checks maintained equal GDI and USER resource counts after warming native control caches.
  • The portable ZIP passed its 17-file allowlist, archive integrity, and executable-identity checks.
  • Generated test media and temporary configurations were removed.
  • FileVersion and ProductVersion are 1.1.1; the application displays 1.1.1 (26923D).

Color Pipeline and Compatibility

  • Apple Log transfer mathematics and constants remain unchanged.
  • The inverse HLG OETF, BT.2408 reference scaling, 32-bit float intermediate, and existing numerical tolerances remain unchanged.
  • Output remains BT.2020 Apple Log in ProRes 422 HQ, 10-bit 4:2:2 MOV with Video levels.
  • Creative adjustments remain optional and disabled by default.
  • Audio stream copy, output validation, partial-file publication, and no-overwrite protection remain in place.
  • The Apple Log identification writer is unchanged from v1.1.0.

Validation Limits

  • Resolve automatic identification was not reverified in v1.1.1 because the installed scripting interface did not connect. The real v1.1.0 Resolve validation remains documented as historical evidence.
  • This release was tested on Windows 11. Windows 10 22H2 was not separately tested on a physical machine in this cycle.
  • DPI checks used native windows with configured layout values; physical monitor switching and live system high-contrast changes were not fully exercised.
  • Download-failure recovery was tested through injected errors. A fresh network download and installation were not repeated in this cycle.
  • Quick discovery is intentionally bounded. Unusual installation locations may require Deep search or manual selection.

See docs/BUG_AUDIT_1.1.1.md and docs/VALIDATION.md for the detailed audit and verification record.

Download

Download LogForge-1.1.1-Windows-x64.zip, extract it, and run LogForge.exe.

The portable package does not include FFmpeg. LogForge discovers approved installations or offers its pinned downloader and manual selection.

A SHA-256 checksum is provided in LogForge-1.1.1-Windows-x64.zip.sha256.

v1.1.0

Choose a tag to compare

@HongHuo0728 HongHuo0728 released this 23 Sep 13:33

LogForge v1.1.0

LogForge v1.1.0 adds verified Apple Log automatic identification in DaVinci Resolve, fixes incorrect VFR detection for fixed-cadence camera footage, strengthens FFmpeg execution security, and improves metadata handling, CPU processing, and output validation.

Version: 1.1.0
Build: 26923C

DaVinci Resolve Apple Log Identification

  • Added automatic Apple Log / Rec.2020 input identification, verified in DaVinci Resolve Studio 20.3.2.9 on Windows using DaVinci YRGB Color Managed.
  • Compared an unmodified iPhone 15 Pro Max / Blackmagic Camera Apple Log original against a negative LogForge baseline, isolated metadata candidates, and actual converted outputs.
  • Confirmed automatic identification without manually assigning the clip input color space, gamma, or input LUT.
  • Added a separate metadata writer that inserts the native-reference logs ProRes sample-entry extension with the identifier com.apple.rec2020.apple-log.
  • Preserved the existing nclc 9/2/9 declaration, BT.2020 primaries and matrix, and Video-range encoding.
  • Confirmed that Resolve's Auto data levels matched Video levels for the tested output.
  • Verified that the identification step preserves the complete encoded video and audio payload.
  • No camera model, Apple encoder identity, apl0 tag, or unverified private atom is fabricated.

Automatic identification remains unverified in other Resolve versions or editions, Adobe Premiere Pro, and Final Cut Pro.

Correct CFR Detection

  • Fixed false VFR rejection for fixed-cadence footage recorded at rates such as 29.99, 29.98, and 29.9701 fps.
  • Average and nominal frame-rate tags are now treated as candidate information rather than definitive evidence of VFR.
  • CFR verification checks every video packet's PTS, duration, adjacent interval, and cumulative phase.
  • True VFR, timestamp gaps, duplicate or backward timestamps, and sustained timing drift remain rejected.
  • Timing failures identify the affected packet and the specific timing error.

Safer FFmpeg Discovery and Execution

  • Automatic disk scanning now discovers FFmpeg paths without executing unknown programs.
  • Execution requires either a verified managed download or explicit user approval.
  • Approval is tied to the canonical paths and SHA-256 hashes of both ffmpeg.exe and ffprobe.exe.
  • Replaced or modified binaries require approval again.
  • Approved executable files are protected against modification or replacement while in use.
  • Added regression tests proving that untrusted fake FFmpeg executables are discovered without being executed.

Numerical FFmpeg Verification

  • Added reference-signal checks for actual matrix and range conversion, left/center chroma phase, and ProRes encode/decode results.
  • Distinguished Verified FFmpeg from Compatible but unverified FFmpeg.
  • Only numerically verified FFmpeg builds may perform conversions.
  • Encoder and filter availability alone no longer qualify a build for conversion.

Metadata and Chroma Handling

  • Replaced broad metadata copying with explicit whitelists for container, video, and audio tags.
  • Preserve safe source fields such as creation time, original camera make/model, and timecode when present.
  • Remove conflicting HLG, HDR, Dolby, PQ, colorspace, and custom-gamma metadata.
  • Record preserved and removed metadata in the validation report.
  • Apply declared left or center input chroma siting during conversion.
  • Require an explicit user declaration when input chroma siting is missing, and reject unsupported siting.
  • Validate output chroma siting and record its numerical verification evidence.

Reference MOV Analysis

  • Expanded meta, keys, ilst, mdta, and data parsing into readable key names and typed values.
  • Improved inspection of ProRes sample-entry children, including Apple Log identification.
  • Added support for the documented four-byte video-description terminator found in the native reference.
  • Improved --analyze A B with semantic metadata comparisons that exclude irrelevant file-size and byte-offset differences.

CPU Processing and Memory

  • Added persistent CPU workers for the standard color transform.
  • Stream standard conversion through a bounded 4 MiB float buffer instead of retaining a full float RGB frame for that stage.
  • Process Creative adjustments using parallel RGB tiles.
  • Verify optimized processing against the independent scalar reference with exact float-result comparisons.
  • Retain the existing 32-bit float intermediate and published color mathematics.

These changes remain CPU-based. The sustained 4K120 test verifies correctness and stability; it does not imply real-time conversion speed.

Stronger Output Validation

  • Added average and nominal frame rates, verified cadence, maximum interval error, and maximum phase error to validation reports.
  • Added FFmpeg path, version, SHA-256, and trust information.
  • Added metadata conflict checks, chroma evidence, and structural Apple Log identification checks.
  • Preserve the partial-file → validation → final rename workflow.
  • Refuse to overwrite a destination, including one created while conversion is running.
  • Keep per-file structural validation separate from the recorded Resolve compatibility tests.

Regression Tests and Verification

  • Added coverage for 29.99 fps CFR, mismatched frame-rate tags with valid cadence, true VFR, cumulative drift, timestamp gaps, and duplicate PTS.
  • Added executable non-execution and hash-change tests.
  • Expanded metadata, chroma, drop-frame timecode, multiple-audio-stream, and 180/270-degree rotation coverage.
  • Added post-encode numerical sampling and a sustained 240-frame 3840 × 2160 conversion at 120 fps.
  • Added identification-writer tests for atom bounds, extended sizes, terminators, idempotence, conflicts, cancellation, and payload preservation.
  • The conversion implementation passed 16/16 CTest groups on build 26923B, including the full media and sustained 4K120 tests.
  • Real Resolve imports verified both standard and Creative-adjustment GUI outputs on that implementation.
  • The final 26923C build passed 11/11 core and resource test groups, native interface checks, and portable-package validation.
  • Build 26923C updates version stamps, documentation, and packaging without changing the previously tested conversion or identification implementation.

Documentation and Release Package

  • Added CHANGELOG.md and documented the complete 1.1.0 feature scope, including Apple Log automatic identification.
  • Updated the README, technical documentation, verification records, and main-window screenshot.
  • Removed downloaded reference footage, generated test media, render images, temporary Resolve projects, and obsolete local test resources.
  • Retained reproducible test source and documented provenance, hashes, and verification conclusions.
  • Audited the portable ZIP against an explicit 16-file allowlist and confirmed that its executable matches the tested Release build.
  • The package contains no FFmpeg binaries, test footage, logs, or personal settings.

Compatibility

  • Supports Windows 10 22H2 and Windows 11 on x64.
  • Output remains Apple Log / BT.2020 ProRes 422 HQ, 10-bit 4:2:2, with Video levels in a MOV container.
  • The official Apple Log equations, inverse HLG OETF, and BT.2408 reference scaling remain unchanged.
  • Creative adjustments remain disabled by default and separate from standard conversion.
  • Audio stream copy, cancellation, supervised child processes, and no-overwrite behavior remain in place.
  • Automatic identification establishes editor compatibility; it does not recover clipped highlights, crushed shadows, or information lost during capture.

Download

Download LogForge-1.1.0-Windows-x64.zip, extract it, and run LogForge.exe.

No installer or separately installed Visual C++ Runtime is required. FFmpeg is detected and verified separately, with a managed download option available when needed.
屏幕截图 2026-09-23 153309

v1.0.0

Choose a tag to compare

@HongHuo0728 HongHuo0728 released this 22 Sep 13:23

LogForge v1.0.0

LogForge v1.0.0 is a native Windows desktop release for converting 10-bit BT.2020 HLG ProRes footage into Apple Log / BT.2020 ProRes 422 HQ. This release introduces a bilingual interface, dark and light themes, persistent settings, automatic FFmpeg discovery, and a portable distribution.

Build: 26922A

Apple Log Conversion

  • Convert actual pixel data from BT.2020 HLG to Apple Log using independently testable color mathematics.
  • Decode HLG into scene-linear RGB before applying the Apple Log transfer function.
  • Use double-precision reference equations and 32-bit floating-point RGB transport without an 8-bit intermediate.
  • Retain BT.2020 throughout the conversion without an unnecessary Rec.709 gamut conversion.
  • Output QuickTime MOV with ProRes 422 HQ, 10-bit 4:2:2 video.
  • Preserve source resolution, verified nominal frame rate, and video frame count.
  • Copy audio without re-encoding and validate its codec, sample rate, channel count, and layout.
  • Preserve timecode, creation metadata, original device Make/Model, and supported rotation metadata.
  • Keep exposure adjustment separate from the standard transfer function.

Interface and Application Identity

  • Add an original spectrum-and-curve application icon with nine embedded sizes.
  • Apply the icon to the executable, window caption, taskbar, and main interface.
  • Set Windows FileVersion and ProductVersion text to 1.0.0.
  • Display 1.0.0 (26922A) inside the application.
  • Generate application, Windows resource, and manifest version definitions from CMake.
  • Move processing status, progress details, diagnostics, license information, and local-processing notes to the bottom left.
  • Display target devices, recording requirements, and editor color-assignment guidance at the bottom right.

Language and Appearance

  • Support English and Simplified Chinese.
  • Use English as the first-run language, independent of the Windows display language.
  • Add Dark and Light themes, with Dark enabled by default.
  • Apply saved language and theme changes immediately without restarting.
  • Localize application-owned controls, progress messages, warnings, and errors.
  • Retain stable diagnostic identifiers independently of translated text.
  • Update public documentation and the README screenshot to English.
  • Provide scrollable content for constrained window sizes and high-DPI layouts.

Settings and Creative Adjustments

  • Introduce a Settings window with three groups: Language, Appearance, and Creative adjustments.
  • Move shadow lift, highlight reduction, and saturation controls into Settings.
  • Keep creative adjustments disabled by default.
  • Use initial enabled values of 3 EV shadow lift, 1 EV highlight reduction, and 85% saturation.
  • Retain adjustment values when the feature is switched off.
  • Apply the optional creative grade in scene-linear BT.2020 before the unchanged Apple Log encoding.
  • Save preferences for subsequent launches without overwriting FFmpeg paths or unrelated settings.
  • Discard pending changes when Cancel is selected.
  • Disable Settings during background tasks and capture conversion options before starting a job.

Automatic FFmpeg Discovery

  • Check managed tools, saved locations, PATH entries, and common installation directories automatically.
  • Search accessible local fixed and removable drives when quick discovery does not find a compatible installation.
  • Include local volumes mounted as folders.
  • Require both ffmpeg.exe and ffprobe.exe.
  • Validate executable versions, required filters, float and 10-bit formats, and actual ProRes encode/decode capability.
  • Continue searching after an invalid candidate is rejected.
  • Cache verified locations and validate them again on subsequent launches.
  • Hide the download and manual-selection buttons whenever FFmpeg is ready.
  • Show both fallback buttons only after completed discovery finds no compatible installation.
  • Support cancellation and display actual directory, candidate, and skipped-location counts.
  • Skip inaccessible locations, unavailable volumes, offline files, reparse subdirectories, recycle bins, and protected restore data.

Input Requirements and Workflow Guidance

  • List iPhone 13 Pro, iPhone 13 Pro Max, iPhone 14 Pro, and iPhone 14 Pro Max as target devices.
  • Require ProRes 422 HDR or ProRes 422 HQ HDR with 10-bit BT.2020 HLG encoding.
  • Determine compatibility from actual media parameters rather than a device-model allowlist.
  • Preserve supported source resolutions and frame rates without forcing a 4K or 24 fps preset.
  • Reject unsupported codecs, color definitions, pixel formats, and timing instead of silently converting them.
  • Keep original device identity metadata.

Progress, Diagnostics, and Validation

  • Report conversion progress using actual FFmpeg frame and timestamp output.
  • Show estimated remaining time only when usable progress and speed measurements are available.
  • Support cancellation with supervised child-process cleanup.
  • Validate output format, profile, bit depth, chroma sampling, dimensions, frame rate, color metadata, audio, and duration before reporting completion.
  • Publish the destination file only after validation succeeds.
  • Preserve existing destination files instead of overwriting them.
  • Report signal-range warnings separately from successful container and codec validation.
  • Keep logs and validation reports local.

Portable Release and Open-Source Packaging

  • Provide LogForge-1.0.0-Windows-x64.zip, approximately 578 KiB.
  • Use the static MSVC runtime to avoid a separate Visual C++ Runtime installation requirement for LogForge.
  • Exclude FFmpeg binaries from the portable ZIP.
  • Retain the optional per-user FFmpeg installer with a pinned HTTPS download, SHA-256 verification, download progress, retries, and post-install capability checks.
  • Require no administrator installation or global PATH changes.
  • Use an explicit allowlist for packaged files.
  • Exclude personal recordings, generated media, local settings, logs, and build artifacts from published source and release contents.
  • Add a package audit that checks allowed files and verifies that the packaged executable matches the tested Release build.
  • Retain the MIT license for LogForge and separate third-party notices.

Verification

  • CMake configuration and the MSVC Release build completed successfully.
  • All 9 CTest groups passed.
  • Apple Log reference points, encode/decode round trips, HLG decoding, and generated-media signal checks passed.
  • Settings persistence, localization consistency, FFmpeg discovery, and compiled version/icon resource tests passed.
  • 14 native UI scenarios passed across both languages, both themes, and 100%, 150%, and 200% layout scales, including explicit missing-FFmpeg UI cases.
  • The packaged executable completed standard and creative generated-video conversions through the native GUI.
  • Output validation confirmed ProRes 422 HQ, 10-bit 4:2:2, BT.2020, expected frame count, and preserved audio parameters.
  • The release archive contained exactly 14 allowed files and no FFmpeg binaries or test media.

Compatibility and Known Limitations

  • Target platforms are Windows 10 22H2 and Windows 11, x64.
  • Local build and runtime verification were performed on Windows 11; a separate Windows 10 boot test remains outstanding.
  • ARM64, macOS, and Linux are not supported in this release.
  • Automatic Apple Log identification by commercial editing software is not certified. Assign Apple Log / Rec.2020 and Video data levels manually when required.
  • Output uses an unspecified standard transfer metadata value alongside LogForge-owned descriptive metadata; no private Apple identifier is fabricated.
  • Native iPhone Apple Log appearance and private MOV metadata equivalence remain unverified.
  • Creative adjustments are an optional grade, not a reconstruction of a native camera rendering pipeline.
  • LogForge does not recover clipped highlights, crushed shadows, tone-mapped-away detail, or information lost in the camera ISP.
  • No personal recording is required by the current regression suite.

LogForge is an independent open-source project and is not affiliated with or endorsed by Apple Inc. Apple, ProRes, and Apple Log are trademarks of their respective rights holders.
LogForge