Releases: CodecMediaLib/codecmedia-java
CodecMedia 1.1.5
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.5] - 2026-03-17
Added
- Added MP3 embedded ID3v1 metadata reader/writer via
Mp3Id3v1Tagand integrated it into engine metadata read/write flow inStubCodecMediaEngine. - Added OGG Vorbis/Opus comment metadata reader via
OggParser.readCommentMetadata()and integrated it intoStubCodecMediaEngine.readMetadata(). - Added FLAC Vorbis comment metadata reader via
FlacParser.readVorbisCommentMetadata()and integrated it intoStubCodecMediaEngine.readMetadata(). - Added Java Sound audio transcoder
JavaSoundAudioTranscodeConverterfor JDK-only target formats (wav,aiff,au). - Added AIFF embedded text metadata read/write support (
NAME,AUTH,(c),ANNO) viaAiffParser.readTextMetadata()andAiffParser.writeTextMetadata(). - Added MP4/MOV to M4A audio-track remux route via
Mp4MovToM4aRemuxConverterin the video-to-audio conversion hub path.
Changed
- Updated audio-to-audio conversion routing in
DefaultConversionHubto use Java Sound transcoding path (while preserving explicit WAV/PCM routing). - Expanded facade regression coverage in
CodecMediaFacadeTestfor MP3 embedded metadata and OGG/FLAC metadata read paths. - Standardized metadata merge behavior in
StubCodecMediaEngine.readMetadata()to treat embedded metadata as canonical and sidecar values as fallback (putIfAbsentfor non-core keys). - Updated metadata write behavior in
StubCodecMediaEngine.writeMetadata()so embedded-capable formats (wav,mp3,aif/aiff/aifc) write in-file metadata and remove stale sidecar files. - Expanded metadata regression coverage in
CodecMediaFacadeTestand parser-level AIFF coverage inAiffParserTest.
Verified
- Confirmed metadata and conversion/facade behavior with
mvn -Dtest=CodecMediaFacadeTest test. - Confirmed AIFF embedded metadata parser and facade flows with
mvn -Dtest=AiffParserTest,CodecMediaFacadeTest test.
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.
CodecMedia 1.1.3
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.3] - 2026-03-16
Fixed
- Added strict PNG bit-depth validation in
PngParser.parse()to reject malformed IHDR values outside the PNG spec (1,2,4,8,16). - Added helper
PngParser.isValidBitDepth()to centralize allowed PNG bit-depth values during probe. - Added PNG color-type validation in
PngParser.parse()with helperPngParser.isValidColorType()to accept only spec-valid values (0,2,3,4,6). - Refined JPEG signature sniffing in
JpegParser.isLikelyJpeg()to require the exact 3-byte SOI/prefix check actually used by the parser. - Hardened JPEG SOF validation in
JpegParser.parse()to reject invalidbitsPerSample(only8/12) and unsupported component counts (only1/3/4). - Improved JPEG marker traversal in
JpegParser.parse()to correctly tolerate repeated0xFFfill bytes while preserving marker alignment validation. - Corrected HEIF
pixiFullBox payload parsing inHeifParser.extractPixiBitDepth()by skipping the 4-byte FullBox header before reading channel count and per-channel depths. - Documented FullBox offset semantics for
ispeextraction inHeifParser.extractIspeWidth()andHeifParser.extractIspeHeight(). - Removed non-container boxes (
mdat,skip,free) from recursive traversal candidates inHeifParser.isContainerType()to avoid unnecessary payload recursion. - Added bounds-checked big-endian integer reads in
HeifParser.readBeInt()to return codec-domain errors instead of runtime index failures on malformed inputs. - Added strict BMP
bitsPerPixelvalidation inBmpParser.parse()viaBmpParser.isValidBitsPerPixel(), allowing only spec-valid values (1,2,4,8,16,24,32). - Added defensive TIFF IFD entry-count bounds validation in
TiffParser.parse()to reject corruptentryCountvalues that exceed available bytes. - Documented WebP probe bit-depth assumption in
WebpParserwith explicit constantASSUMED_WEBP_BIT_DEPTH, applied consistently acrossVP8,VP8L, andVP8Xparsing.
Verified
- Confirmed compile stability after PNG/JPEG/HEIF/BMP/TIFF/WebP parser hardening with
mvn -q -DskipTests compile.
[1.1.2] - 2026-03-15
Added
- Added safe top-level codec helper
ProbeResult.primaryCodec()to avoid directstreams().get(0)access for empty-stream cases. - Added no-arg
ConversionOptions.defaults()with fallback target format. - Added model/options consistency tests in
ModelOptionsConsistencyTest. - Added AVIF image transcode regression coverage in
CodecMediaFacadeTest, including runtime-safe behavior when HEIF/AVIF writers are unavailable.
Changed
- Aligned
ConversionOptions.defaults(String)with fallback behavior fornull/blank target format. - Documented default validation policy in
ValidationOptions.defaults(), including 500 MiB default size limit. - Documented nullable semantics of
PlaybackResult.message. - Extended image transcode extension routing in
ImageTranscodeConverterto recognizeavifas part of the HEIF-family conversion path. - Clarified intentional unsupported fallback behavior in
ConversionRouteResolverfornull/unknown/container/non-mapped routes. - Updated image conversion support notes in
README.mdto includeavifand document intentional unsupported container/unknown route handling. - Optimized
StubCodecMediaEngine.probe()to avoid redundant full-file reads when the probe prefix already contains the complete file. - Reworded
StubCodecMediaEngine.extractAudio()format-mismatch error message to user-facing language (removed internal "Stub" wording).
Verified
- Confirmed model/options polish via
mvn -Dtest=ModelOptionsConsistencyTest test. - Confirmed AVIF conversion-path regression with
mvn -Dtest=CodecMediaFacadeTest#convert_shouldTranscodePngToAvif test. - Confirmed facade behavior regression coverage with
mvn -Dtest=CodecMediaFacadeTest test.
[1.1.1] - 2026-03-14
Fixed
- Improved MP3 duration estimation in
Mp3Parser.estimateDurationMillis()to prioritize Xing/VBRI frame-count metadata before scanned sample totals. - Excluded trailing ID3v1 tag bytes from MP3 audio scan range in
Mp3Parser, reducing bitrate drift when footer tags are present. - Added clearer non-Layer III error handling in
Mp3Parser.parse()for MPEG Layer I/II inputs. - Strengthened OGG logical-stream parsing in
OggParserwith per-stream page-sequence validation and serial-scoped metrics for multiplexed files. - Refined Vorbis bitrate-mode classification in
OggParser.detectVorbisBitrateMode()to infer from observed bitrate variation instead of coarse nominal/page-count heuristics. - Replaced broad OGG payload string scanning with structured Vorbis/Opus comment-header parsing in
OggParser, and fixed sequence tracking to uselongto avoid overflow. - Updated
WavParserto read/validateaudioFormatfromfmtand reject unsupported compressed WAV formats instead of silently computing incorrect duration. - Added RF64-aware WAV parsing in
WavParser, including unsigned chunk-size handling anddatasize sentinel (0xFFFFFFFF) resolution viads64. - Updated
FlacParserto reject reserved metadata block type127per FLAC spec. - Updated
FlacParserbitrate estimation to use encoded audio payload region after metadata blocks (instead of whole file bytes), reducing artwork/metadata inflation. - Updated
AiffParserto validate AIFCCOMMcompression type and reject unsupported compressed variants.
Added
- Added MP3 parser regression tests for Xing-priority duration, trailing ID3v1 handling, and unsupported Layer I/II diagnostics in
Mp3ParserTest. - Added OGG parser tests for Vorbis CBR/VBR mode inference, broken page-sequence detection, and multiplexed-stream metric isolation in
OggParserTest. - Added WAV parser tests for unsupported compressed format rejection and RF64
ds64/datasentinel handling inWavParserTest. - Added FLAC parser tests for reserved block type rejection and metadata-heavy bitrate estimation behavior in
FlacParserTest. - Added explicit decode-only intent comment in
FlacCodec. - Added AIFF parser tests for supported AIFC
NONEand unsupported compression-type rejection inAiffParserTest. - Added explicit decode-only intent comment in [`...
CodecMedia 1.1.2
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.2] - 2026-03-15
Added
- Added safe top-level codec helper
ProbeResult.primaryCodec()to avoid directstreams().get(0)access for empty-stream cases. - Added no-arg
ConversionOptions.defaults()with fallback target format. - Added model/options consistency tests in
ModelOptionsConsistencyTest. - Added AVIF image transcode regression coverage in
CodecMediaFacadeTest, including runtime-safe behavior when HEIF/AVIF writers are unavailable.
Changed
- Aligned
ConversionOptions.defaults(String)with fallback behavior fornull/blank target format. - Documented default validation policy in
ValidationOptions.defaults(), including 500 MiB default size limit. - Documented nullable semantics of
PlaybackResult.message. - Extended image transcode extension routing in
ImageTranscodeConverterto recognizeavifas part of the HEIF-family conversion path. - Clarified intentional unsupported fallback behavior in
ConversionRouteResolverfornull/unknown/container/non-mapped routes. - Updated image conversion support notes in
README.mdto includeavifand document intentional unsupported container/unknown route handling. - Optimized
StubCodecMediaEngine.probe()to avoid redundant full-file reads when the probe prefix already contains the complete file. - Reworded
StubCodecMediaEngine.extractAudio()format-mismatch error message to user-facing language (removed internal "Stub" wording).
Verified
- Confirmed model/options polish via
mvn -Dtest=ModelOptionsConsistencyTest test. - Confirmed AVIF conversion-path regression with
mvn -Dtest=CodecMediaFacadeTest#convert_shouldTranscodePngToAvif test. - Confirmed facade behavior regression coverage with
mvn -Dtest=CodecMediaFacadeTest test.
[1.1.1] - 2026-03-14
Fixed
- Improved MP3 duration estimation in
Mp3Parser.estimateDurationMillis()to prioritize Xing/VBRI frame-count metadata before scanned sample totals. - Excluded trailing ID3v1 tag bytes from MP3 audio scan range in
Mp3Parser, reducing bitrate drift when footer tags are present. - Added clearer non-Layer III error handling in
Mp3Parser.parse()for MPEG Layer I/II inputs. - Strengthened OGG logical-stream parsing in
OggParserwith per-stream page-sequence validation and serial-scoped metrics for multiplexed files. - Refined Vorbis bitrate-mode classification in
OggParser.detectVorbisBitrateMode()to infer from observed bitrate variation instead of coarse nominal/page-count heuristics. - Replaced broad OGG payload string scanning with structured Vorbis/Opus comment-header parsing in
OggParser, and fixed sequence tracking to uselongto avoid overflow. - Updated
WavParserto read/validateaudioFormatfromfmtand reject unsupported compressed WAV formats instead of silently computing incorrect duration. - Added RF64-aware WAV parsing in
WavParser, including unsigned chunk-size handling anddatasize sentinel (0xFFFFFFFF) resolution viads64. - Updated
FlacParserto reject reserved metadata block type127per FLAC spec. - Updated
FlacParserbitrate estimation to use encoded audio payload region after metadata blocks (instead of whole file bytes), reducing artwork/metadata inflation. - Updated
AiffParserto validate AIFCCOMMcompression type and reject unsupported compressed variants.
Added
- Added MP3 parser regression tests for Xing-priority duration, trailing ID3v1 handling, and unsupported Layer I/II diagnostics in
Mp3ParserTest. - Added OGG parser tests for Vorbis CBR/VBR mode inference, broken page-sequence detection, and multiplexed-stream metric isolation in
OggParserTest. - Added WAV parser tests for unsupported compressed format rejection and RF64
ds64/datasentinel handling inWavParserTest. - Added FLAC parser tests for reserved block type rejection and metadata-heavy bitrate estimation behavior in
FlacParserTest. - Added explicit decode-only intent comment in
FlacCodec. - Added AIFF parser tests for supported AIFC
NONEand unsupported compression-type rejection inAiffParserTest. - Added explicit decode-only intent comment in
AiffCodec.
Verified
- Confirmed MP3 parser updates with
mvn -Dtest=Mp3ParserTest test. - Confirmed OGG parser updates with
mvn -Dtest=OggParserTest test. - Confirmed WAV parser updates with
mvn -Dtest=WavParserTest test. - Confirmed FLAC parser updates with
mvn -Dtest=FlacParserTest test. - Confirmed AIFF parser updates with
mvn -Dtest=AiffParserTest test. - Confirmed CLI argument/dispatch regression tests in
CodecMediaCliTestwithmvn test(incodecmedia-cli). - Confirmed Kotlin wrapper refactor stability with
gradlew.bat test(incodecmedia-kotlin).
[1.1.0] - 2026-03-13
Changed
- Migrated repository ownership and project references to
CodecMediaLib/codecmedia-java. - Updated SCM/issue/CI metadata in
pom.xml. - Updated organization metadata in
pom.xmltoCodecMediaLib.
Notes
- This
1.1.0release is a transition baseline and prepares for larger updates planned in the1.1.*series.
[1.0.4] - 2026-03-05
Added
- Added richer MOV probe fields in
MovProbeInfo:videoBitrateKbps,audioBitrateKbps,bitDepth, anddisplayAspectRatio. - Added richer MP4 probe fields in
Mp4ProbeInfo: codec/audio stream details, frame rate, bitrate fields, bit depth, and display aspect ratio. - Added richer WebM probe fields in
WebmProbeInfo: per-track bitrate fields and display aspect ratio. - Added real fixture coverage in
CodecMediaFacadeTestfor probe/strict-validate using files undersrc/test/resources/example. - Added round-trip conversion test class
CodecMediaRoundTripConversionTestto validate same-extension convert->convert flows across all real example extensions (mp3,mp4,png,webm).
Changed
- Enhanced MOV parsing in
MovParserwith deeper BMFF track metadata extraction (hdlr,mdhd,stsd,btrt,stsz) and fallback bitrate estimation. - Enhanced MP4 parsing in
Mp4Parserto extract video/audio codec, sample rate, channels, frame rate, bit depth, bitrate, and aspect ratio. - Enhanced WebM parsing in
WebmParserto extract track bitrate when present and compute fallback bitrate/aspect ratio values. - Updated stream/tag mapping in
StubCodecMediaEngineso MOV/MP4/WebM probe results now expose richer stream bitrate and container tags (displayAspectRatio,bitDepth,videoBitrateKbps,audioBitrateKbps).
Verified
- Confirmed test stability after video parser improvements with
mvn test. - Confirmed real-fixture conversion regression path with
mvn -Dtest=CodecMediaRoundTripConversionTest test.
CodecMedia 1.1.1
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.1] - 2026-03-14
Fixed
- Improved MP3 duration estimation in
Mp3Parser.estimateDurationMillis()to prioritize Xing/VBRI frame-count metadata before scanned sample totals. - Excluded trailing ID3v1 tag bytes from MP3 audio scan range in
Mp3Parser, reducing bitrate drift when footer tags are present. - Added clearer non-Layer III error handling in
Mp3Parser.parse()for MPEG Layer I/II inputs. - Strengthened OGG logical-stream parsing in
OggParserwith per-stream page-sequence validation and serial-scoped metrics for multiplexed files. - Refined Vorbis bitrate-mode classification in
OggParser.detectVorbisBitrateMode()to infer from observed bitrate variation instead of coarse nominal/page-count heuristics. - Replaced broad OGG payload string scanning with structured Vorbis/Opus comment-header parsing in
OggParser, and fixed sequence tracking to uselongto avoid overflow. - Updated
WavParserto read/validateaudioFormatfromfmtand reject unsupported compressed WAV formats instead of silently computing incorrect duration. - Added RF64-aware WAV parsing in
WavParser, including unsigned chunk-size handling anddatasize sentinel (0xFFFFFFFF) resolution viads64. - Updated
FlacParserto reject reserved metadata block type127per FLAC spec. - Updated
FlacParserbitrate estimation to use encoded audio payload region after metadata blocks (instead of whole file bytes), reducing artwork/metadata inflation. - Updated
AiffParserto validate AIFCCOMMcompression type and reject unsupported compressed variants.
Added
- Added MP3 parser regression tests for Xing-priority duration, trailing ID3v1 handling, and unsupported Layer I/II diagnostics in
Mp3ParserTest. - Added OGG parser tests for Vorbis CBR/VBR mode inference, broken page-sequence detection, and multiplexed-stream metric isolation in
OggParserTest. - Added WAV parser tests for unsupported compressed format rejection and RF64
ds64/datasentinel handling inWavParserTest. - Added FLAC parser tests for reserved block type rejection and metadata-heavy bitrate estimation behavior in
FlacParserTest. - Added explicit decode-only intent comment in
FlacCodec. - Added AIFF parser tests for supported AIFC
NONEand unsupported compression-type rejection inAiffParserTest. - Added explicit decode-only intent comment in
AiffCodec.
Verified
- Confirmed MP3 parser updates with
mvn -Dtest=Mp3ParserTest test. - Confirmed OGG parser updates with
mvn -Dtest=OggParserTest test. - Confirmed WAV parser updates with
mvn -Dtest=WavParserTest test. - Confirmed FLAC parser updates with
mvn -Dtest=FlacParserTest test. - Confirmed AIFF parser updates with
mvn -Dtest=AiffParserTest test.
[1.1.0] - 2026-03-13
Changed
- Migrated repository ownership and project references to
CodecMediaLib/codecmedia-java. - Updated SCM/issue/CI metadata in
pom.xml. - Updated organization metadata in
pom.xmltoCodecMediaLib.
Notes
- This
1.1.0release is a transition baseline and prepares for larger updates planned in the1.1.*series.
[1.0.4] - 2026-03-05
Added
- Added richer MOV probe fields in
MovProbeInfo:videoBitrateKbps,audioBitrateKbps,bitDepth, anddisplayAspectRatio. - Added richer MP4 probe fields in
Mp4ProbeInfo: codec/audio stream details, frame rate, bitrate fields, bit depth, and display aspect ratio. - Added richer WebM probe fields in
WebmProbeInfo: per-track bitrate fields and display aspect ratio. - Added real fixture coverage in
CodecMediaFacadeTestfor probe/strict-validate using files undersrc/test/resources/example. - Added round-trip conversion test class
CodecMediaRoundTripConversionTestto validate same-extension convert->convert flows across all real example extensions (mp3,mp4,png,webm).
Changed
- Enhanced MOV parsing in
MovParserwith deeper BMFF track metadata extraction (hdlr,mdhd,stsd,btrt,stsz) and fallback bitrate estimation. - Enhanced MP4 parsing in
Mp4Parserto extract video/audio codec, sample rate, channels, frame rate, bit depth, bitrate, and aspect ratio. - Enhanced WebM parsing in
WebmParserto extract track bitrate when present and compute fallback bitrate/aspect ratio values. - Updated stream/tag mapping in
StubCodecMediaEngineso MOV/MP4/WebM probe results now expose richer stream bitrate and container tags (displayAspectRatio,bitDepth,videoBitrateKbps,audioBitrateKbps).
Verified
- Confirmed test stability after video parser improvements with
mvn test. - Confirmed real-fixture conversion regression path with
mvn -Dtest=CodecMediaRoundTripConversionTest test.
CodecMedia 1.1.0
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.0] - 2026-03-13
Changed
- Migrated repository ownership and project references to
CodecMediaLib/codecmedia-java. - Updated SCM/issue/CI metadata in
pom.xml. - Updated organization metadata in
pom.xmltoCodecMediaLib.
Notes
- This
1.1.0release is a transition baseline and prepares for larger updates planned in the1.1.*series.
[1.0.4] - 2026-03-05
Added
- Added richer MOV probe fields in
MovProbeInfo:videoBitrateKbps,audioBitrateKbps,bitDepth, anddisplayAspectRatio. - Added richer MP4 probe fields in
Mp4ProbeInfo: codec/audio stream details, frame rate, bitrate fields, bit depth, and display aspect ratio. - Added richer WebM probe fields in
WebmProbeInfo: per-track bitrate fields and display aspect ratio. - Added real fixture coverage in
CodecMediaFacadeTestfor probe/strict-validate using files undersrc/test/resources/example. - Added round-trip conversion test class
CodecMediaRoundTripConversionTestto validate same-extension convert->convert flows across all real example extensions (mp3,mp4,png,webm).
Changed
- Enhanced MOV parsing in
MovParserwith deeper BMFF track metadata extraction (hdlr,mdhd,stsd,btrt,stsz) and fallback bitrate estimation. - Enhanced MP4 parsing in
Mp4Parserto extract video/audio codec, sample rate, channels, frame rate, bit depth, bitrate, and aspect ratio. - Enhanced WebM parsing in
WebmParserto extract track bitrate when present and compute fallback bitrate/aspect ratio values. - Updated stream/tag mapping in
StubCodecMediaEngineso MOV/MP4/WebM probe results now expose richer stream bitrate and container tags (displayAspectRatio,bitDepth,videoBitrateKbps,audioBitrateKbps).
Verified
- Confirmed test stability after video parser improvements with
mvn test. - Confirmed real-fixture conversion regression path with
mvn -Dtest=CodecMediaRoundTripConversionTest test.
[1.0.3] - 2026-03-05
Added
- Added OGG Opus identification/probing support alongside Vorbis in
OggParser. - Added AIFF/AIF/AIFC probing support with new parser/codec in
AiffParserandAiffCodec. - Added FLAC probing support with STREAMINFO parsing in
FlacParserandFlacCodec. - Added parser test coverage for MP3 VBR and mono channel-mode paths in
Mp3ParserTest. - Added parser test coverage for OGG Opus identification in
OggParserTest. - Added WAV parser synthetic profile tests (mono/stereo, sample-rate, bit-depth combinations) in
WavParserTest. - Added parser test coverage for AIFF probing in
AiffParserTest. - Added facade test coverage for
.m4aprobe/strict-validate flows inCodecMediaFacadeTest. - Added parser/facade test coverage for
.flacinFlacParserTestandCodecMediaFacadeTest.
Changed
- Improved probe routing in
StubCodecMediaEngineto perform lightweight prefix-based type sniffing before full-file decode, reducing unnecessary full reads for unsupported/unknown inputs. - Extended probe and strict validation routing in
StubCodecMediaEngineto include AIFF/AIF/AIFC. - Extended probe and strict validation routing in
StubCodecMediaEngineto include FLAC. - Expanded MP4 signature acceptance for M4A family brands in
Mp4Parser.isLikelyMp4(). - Updated feature notes in
README.mdto reflect OGG Vorbis/Opus probing support and prefix-sniff probe behavior.
[1.0.2] - 2026-03-02
Added
- Added MOV parser/probe support via
MovParser. - Added WebM parser/probe support via
WebmParser. - Added MOV/WebM codec wrappers (
MovCodec,WebmCodec) and probe info records. - Added facade tests for MOV/WebM probe and strict validation in
CodecMediaFacadeTest.
Changed
- Extended probing and strict validation routing in
StubCodecMediaEngineto cover MOV and WebM. - Updated project metadata URLs and branding references in
pom.xmlandREADME.md.
Fixed
- Fixed EBML element decoding in
WebmParserso multi-byte element IDs (includingDefaultDuration) are parsed with correct ID/size boundaries. - Fixed MOV frame-rate extraction in
MovParserto usemdhdtrack timescale when interpretingsttssample delta.
[1.0.1] - 2026-03-02
Added
- Initial public release with probing, validation, metadata sidecar persistence, extraction workflow, playback simulation, and conversion routing.
CodecMedia 1.0.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.0.4] - 2026-03-05
Added
- Added richer MOV probe fields in
MovProbeInfo:videoBitrateKbps,audioBitrateKbps,bitDepth, anddisplayAspectRatio. - Added richer MP4 probe fields in
Mp4ProbeInfo: codec/audio stream details, frame rate, bitrate fields, bit depth, and display aspect ratio. - Added richer WebM probe fields in
WebmProbeInfo: per-track bitrate fields and display aspect ratio. - Added real fixture coverage in
CodecMediaFacadeTestfor probe/strict-validate using files undersrc/test/resources/example. - Added round-trip conversion test class
CodecMediaRoundTripConversionTestto validate same-extension convert->convert flows across all real example extensions (mp3,mp4,png,webm).
Changed
- Enhanced MOV parsing in
MovParserwith deeper BMFF track metadata extraction (hdlr,mdhd,stsd,btrt,stsz) and fallback bitrate estimation. - Enhanced MP4 parsing in
Mp4Parserto extract video/audio codec, sample rate, channels, frame rate, bit depth, bitrate, and aspect ratio. - Enhanced WebM parsing in
WebmParserto extract track bitrate when present and compute fallback bitrate/aspect ratio values. - Updated stream/tag mapping in
StubCodecMediaEngineso MOV/MP4/WebM probe results now expose richer stream bitrate and container tags (displayAspectRatio,bitDepth,videoBitrateKbps,audioBitrateKbps).
Verified
- Confirmed test stability after video parser improvements with
mvn test. - Confirmed real-fixture conversion regression path with
mvn -Dtest=CodecMediaRoundTripConversionTest test.
[1.0.3] - 2026-03-05
Added
- Added OGG Opus identification/probing support alongside Vorbis in
OggParser. - Added AIFF/AIF/AIFC probing support with new parser/codec in
AiffParserandAiffCodec. - Added FLAC probing support with STREAMINFO parsing in
FlacParserandFlacCodec. - Added parser test coverage for MP3 VBR and mono channel-mode paths in
Mp3ParserTest. - Added parser test coverage for OGG Opus identification in
OggParserTest. - Added WAV parser synthetic profile tests (mono/stereo, sample-rate, bit-depth combinations) in
WavParserTest. - Added parser test coverage for AIFF probing in
AiffParserTest. - Added facade test coverage for
.m4aprobe/strict-validate flows inCodecMediaFacadeTest. - Added parser/facade test coverage for
.flacinFlacParserTestandCodecMediaFacadeTest.
Changed
- Improved probe routing in
StubCodecMediaEngineto perform lightweight prefix-based type sniffing before full-file decode, reducing unnecessary full reads for unsupported/unknown inputs. - Extended probe and strict validation routing in
StubCodecMediaEngineto include AIFF/AIF/AIFC. - Extended probe and strict validation routing in
StubCodecMediaEngineto include FLAC. - Expanded MP4 signature acceptance for M4A family brands in
Mp4Parser.isLikelyMp4(). - Updated feature notes in
README.mdto reflect OGG Vorbis/Opus probing support and prefix-sniff probe behavior.
[1.0.2] - 2026-03-02
Added
- Added MOV parser/probe support via
MovParser. - Added WebM parser/probe support via
WebmParser. - Added MOV/WebM codec wrappers (
MovCodec,WebmCodec) and probe info records. - Added facade tests for MOV/WebM probe and strict validation in
CodecMediaFacadeTest.
Changed
- Extended probing and strict validation routing in
StubCodecMediaEngineto cover MOV and WebM. - Updated project metadata URLs and branding references in
pom.xmlandREADME.md.
Fixed
- Fixed EBML element decoding in
WebmParserso multi-byte element IDs (includingDefaultDuration) are parsed with correct ID/size boundaries. - Fixed MOV frame-rate extraction in
MovParserto usemdhdtrack timescale when interpretingsttssample delta.
[1.0.1] - 2026-03-02
Added
- Initial public release with probing, validation, metadata sidecar persistence, extraction workflow, playback simulation, and conversion routing.
CodecMedia 1.0.3
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.0.3] - 2026-03-05
Added
- Added OGG Opus identification/probing support alongside Vorbis in
OggParser. - Added AIFF/AIF/AIFC probing support with new parser/codec in
AiffParserandAiffCodec. - Added FLAC probing support with STREAMINFO parsing in
FlacParserandFlacCodec. - Added parser test coverage for MP3 VBR and mono channel-mode paths in
Mp3ParserTest. - Added parser test coverage for OGG Opus identification in
OggParserTest. - Added WAV parser synthetic profile tests (mono/stereo, sample-rate, bit-depth combinations) in
WavParserTest. - Added parser test coverage for AIFF probing in
AiffParserTest. - Added facade test coverage for
.m4aprobe/strict-validate flows inCodecMediaFacadeTest. - Added parser/facade test coverage for
.flacinFlacParserTestandCodecMediaFacadeTest.
Changed
- Improved probe routing in
StubCodecMediaEngineto perform lightweight prefix-based type sniffing before full-file decode, reducing unnecessary full reads for unsupported/unknown inputs. - Extended probe and strict validation routing in
StubCodecMediaEngineto include AIFF/AIF/AIFC. - Extended probe and strict validation routing in
StubCodecMediaEngineto include FLAC. - Expanded MP4 signature acceptance for M4A family brands in
Mp4Parser.isLikelyMp4(). - Updated feature notes in
README.mdto reflect OGG Vorbis/Opus probing support and prefix-sniff probe behavior.
[1.0.2] - 2026-03-02
Added
- Added MOV parser/probe support via
MovParser. - Added WebM parser/probe support via
WebmParser. - Added MOV/WebM codec wrappers (
MovCodec,WebmCodec) and probe info records. - Added facade tests for MOV/WebM probe and strict validation in
CodecMediaFacadeTest.
Changed
- Extended probing and strict validation routing in
StubCodecMediaEngineto cover MOV and WebM. - Updated project metadata URLs and branding references in
pom.xmlandREADME.md.
Fixed
- Fixed EBML element decoding in
WebmParserso multi-byte element IDs (includingDefaultDuration) are parsed with correct ID/size boundaries. - Fixed MOV frame-rate extraction in
MovParserto usemdhdtrack timescale when interpretingsttssample delta.
[1.0.1] - 2026-03-02
Added
- Initial public release with probing, validation, metadata sidecar persistence, extraction workflow, playback simulation, and conversion routing.
CodecMedia 1.0.2
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.0.2] - 2026-03-02
Added
- Added MOV parser/probe support via
MovParser. - Added WebM parser/probe support via
WebmParser. - Added MOV/WebM codec wrappers (
MovCodec,WebmCodec) and probe info records. - Added facade tests for MOV/WebM probe and strict validation in
CodecMediaFacadeTest.
Changed
- Extended probing and strict validation routing in
StubCodecMediaEngineto cover MOV and WebM. - Updated project metadata URLs and branding references in
pom.xmlandREADME.md.
Fixed
- Fixed EBML element decoding in
WebmParserso multi-byte element IDs (includingDefaultDuration) are parsed with correct ID/size boundaries. - Fixed MOV frame-rate extraction in
MovParserto usemdhdtrack timescale when interpretingsttssample delta.
[1.0.1] - 2026-02-25
Added
- Initial public release with probing, validation, metadata sidecar persistence, extraction workflow, playback simulation, and conversion routing.
CodecMedia 1.0.1
Full Changelog: 1.0.0...1.0.1