Repository navigation
v1.2.0
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.
