CodecMedia 1.1.4
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[1.1.4] - 2026-03-17
Added
- Added WAV embedded metadata round-trip handling (RIFF
LIST/INFO) inWavParserand engine metadata flow inStubCodecMediaEngine. - Added internal Java sampled playback route (
java-sampled) for WAV/AIFF-family playback inStubCodecMediaEngine. - Added playback routing regression coverage in
StubCodecMediaEnginePlaybackRoutingTest.
Changed
- Replaced temporary WAV/PCM stub converter with production path via
WavPcmConverter, including realwav -> pcmdata-chunk extraction andpcm -> wavcontainer wrapping. - Updated conversion hub wiring in
DefaultConversionHubto route WAV/PCM through the renamed real converter. - Added preset-driven PCM->WAV parameter parsing in
WavPcmConverter.parsePcmWavParams()supportingsr=,ch=, andbits=. - Updated facade regression behavior in
CodecMediaFacadeTestto assert real re-encode behavior and preset-based output stream properties for WAV/PCM route. - Updated metadata behavior to use embedded WAV
LIST/INFOread/write for WAV inputs while keeping sidecar (.codecmedia.properties) persistence for non-WAV formats inStubCodecMediaEngine. - Updated playback behavior in
CodecMediaEngine.play()implementation path to prioritize internal Java sampled playback for WAV/AIFF family before desktop-open fallback.
Fixed
- Added defensive bounds checks for little-endian reads in
WavPcmConverter.readLeInt()andWavPcmConverter.readLeUnsignedShort(). - Added WAV
fmtvalidation before payload extraction inWavPcmConverter.extractWavDataChunk(), rejecting non-PCM WAV payload extraction. - Hardened chunk traversal and container construction against arithmetic overflow in
WavPcmConverter.extractWavDataChunk()andWavPcmConverter.wrapPcmAsWav(). - Fixed WAV metadata flow so write/read operations no longer rely on sidecar-only behavior for WAV files, improving in-file metadata persistence consistency.
- Fixed playback routing so WAV/AIFF-family inputs no longer depend solely on desktop integration when internal sampled playback is available.
Verified
- Confirmed facade regression coverage with
mvn -Dtest=CodecMediaFacadeTest test. - Confirmed WAV metadata parser behavior with
mvn -Dtest=WavParserTest test. - Confirmed engine metadata and playback routing behavior with
mvn -Dtest=CodecMediaFacadeTest,StubCodecMediaEnginePlaybackRoutingTest test.