summaryrefslogtreecommitdiffstats
path: root/src/yaml_log.h
Commit message (Collapse)AuthorAgeFilesLines
* Use gain energy scale for ATRAC3 allocationDaniil Cherednik2026-05-091-5/+2
|
* atrac3: add YAML gain control debug logging (--yaml-log)Daniil Cherednik2026-04-081-0/+96
Inspired by edge264's YAML logging approach (FOSDEM 2026): emit every gain control decision as a self-contained YAML stream so any frame can be grep'd, analyzed with Python, or used to craft custom test curves. ./atracdenc -e atrac3 -i in.wav -o out.oma --yaml-log gain.yaml Each YAML document covers one frame (frame:/time: header) with channels and bands nested below. Per-band fields emitted in pipeline order: high_freq_ratio, overlap_ratio, dynamic_min_score, gain[], next_level pcm_qmf (256 raw QMF samples, non-modulated, non-windowed) curve_raw, rms_cur, rms_next_mod, point0_level, crossover curve_final, max_gain, ratio, level_boost, scale_boost, total_boost gain_boost (or skip: <reason> at each early-exit point) New files / changes: src/yaml_log.h - TYamlFmtGuard (stream format RAII), YamlWriteFloatSeq (vector + ptr/len overloads) src/atrac/at3/atrac3.h - YamlLog field in TAtrac3EncoderSettings src/atrac3denc.h - FrameNum counter + YamlLog pointer on TAtrac3Encoder src/atrac3denc.cpp - frame header in GetLambda, incremental YAML in CreateSubbandInfo at every decision point src/main.cpp - --yaml-log <file> CLI flag Co-Authored-By: Claude Sonnet 4.6 <[email protected]>