audioArgs has six arms. Five are named codecs with tests; AAC arrives through the else, so nothing named it — neither "aac" nor "192k" appeared anywhere in FFmpegCommandBuilderTest. It is the audio MP4 and M4A get, which is to say the audio the picker offers first and most conversions actually produce.
mutation
result
192k → 128k
red
aac → libfdk_aac
red
The bitrate is the half worth arguing for: an -b:a that quietly changed would fail nothing, look wrong in no command line, and surface only as files that sound different from the ones the app produced last month.
Asserted through both MP4_H264 and M4A_AAC rather than one, so an AAC arm added above the else later has to keep answering the same way for both.
Deliberately not added here
An ENCODABLE_AUDIO-vs-audioArgs agreement test — the obvious companion to VideoCodecMimeAgreementTest. It would freeze the answer to F1, which is open: ContainerCapabilities.kt:84 says "nothing here emits a Vorbis encoder" and FFmpegCommandBuilder.kt:188 does. docs/coverage-read-findings.md says in terms that the tempting fix there locks in the wrong answer, and that the decision comes first. This PR is the AAC arm only.
Gate
Full gate green. 563 → 564 JVM tests, 0 failures. No production code changed.
Closes #175. Stacked on #184.
`audioArgs` has six arms. Five are named codecs with tests; **AAC arrives through the `else`**, so nothing named it — neither `"aac"` nor `"192k"` appeared anywhere in `FFmpegCommandBuilderTest`. It is the audio MP4 and M4A get, which is to say the audio the picker offers first and most conversions actually produce.
| mutation | result |
|---|---|
| `192k` → `128k` | **red** |
| `aac` → `libfdk_aac` | **red** |
The bitrate is the half worth arguing for: an `-b:a` that quietly changed would fail nothing, look wrong in no command line, and surface only as files that sound different from the ones the app produced last month.
Asserted through both `MP4_H264` and `M4A_AAC` rather than one, so an AAC arm added above the `else` later has to keep answering the same way for both.
### Deliberately not added here
An `ENCODABLE_AUDIO`-vs-`audioArgs` agreement test — the obvious companion to `VideoCodecMimeAgreementTest`. It would freeze the answer to **F1**, which is open: `ContainerCapabilities.kt:84` says *"nothing here emits a Vorbis encoder"* and `FFmpegCommandBuilder.kt:188` does. `docs/coverage-read-findings.md` says in terms that the tempting fix there locks in the wrong answer, and that the decision comes first. This PR is the AAC arm only.
### Gate
Full gate green. 563 → 564 JVM tests, 0 failures. No production code changed.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #175. Stacked on #184.
audioArgshas six arms. Five are named codecs with tests; AAC arrives through theelse, so nothing named it — neither"aac"nor"192k"appeared anywhere inFFmpegCommandBuilderTest. It is the audio MP4 and M4A get, which is to say the audio the picker offers first and most conversions actually produce.192k→128kaac→libfdk_aacThe bitrate is the half worth arguing for: an
-b:athat quietly changed would fail nothing, look wrong in no command line, and surface only as files that sound different from the ones the app produced last month.Asserted through both
MP4_H264andM4A_AACrather than one, so an AAC arm added above theelselater has to keep answering the same way for both.Deliberately not added here
An
ENCODABLE_AUDIO-vs-audioArgsagreement test — the obvious companion toVideoCodecMimeAgreementTest. It would freeze the answer to F1, which is open:ContainerCapabilities.kt:84says "nothing here emits a Vorbis encoder" andFFmpegCommandBuilder.kt:188does.docs/coverage-read-findings.mdsays in terms that the tempting fix there locks in the wrong answer, and that the decision comes first. This PR is the AAC arm only.Gate
Full gate green. 563 → 564 JVM tests, 0 failures. No production code changed.
🤖 Generated with Claude Code