Skip to content

Releases: CodecMediaLib/codecmedia-java

CodecMedia 1.1.5

16 Mar 19:19

Choose a tag to compare

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

Changed

  • Updated audio-to-audio conversion routing in DefaultConversionHub to use Java Sound transcoding path (while preserving explicit WAV/PCM routing).
  • Expanded facade regression coverage in CodecMediaFacadeTest for 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 (putIfAbsent for 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 CodecMediaFacadeTest and parser-level AIFF coverage in AiffParserTest.

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

16 Mar 18:28

Choose a tag to compare

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

Changed

  • Replaced temporary WAV/PCM stub converter with production path via WavPcmConverter, including real wav -> pcm data-chunk extraction and pcm -> wav container wrapping.
  • Updated conversion hub wiring in DefaultConversionHub to route WAV/PCM through the renamed real converter.
  • Added preset-driven PCM->WAV parameter parsing in WavPcmConverter.parsePcmWavParams() supporting sr=, ch=, and bits=.
  • Updated facade regression behavior in CodecMediaFacadeTest to assert real re-encode behavior and preset-based output stream properties for WAV/PCM route.
  • Updated metadata behavior to use embedded WAV LIST/INFO read/write for WAV inputs while keeping sidecar (.codecmedia.properties) persistence for non-WAV formats in StubCodecMediaEngine.
  • Updated playback behavior in CodecMediaEngine.play() implementation path to prioritize internal Java sampled playback for WAV/AIFF family before desktop-open fallback.

Fixed

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

16 Mar 17:13

Choose a tag to compare

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

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

Changed

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 OggParser with 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 use long to avoid overflow.
  • Updated WavParser to read/validate audioFormat from fmt and reject unsupported compressed WAV formats instead of silently computing incorrect duration.
  • Added RF64-aware WAV parsing in WavParser, including unsigned chunk-size handling and data size sentinel (0xFFFFFFFF) resolution via ds64.
  • Updated FlacParser to reject reserved metadata block type 127 per FLAC spec.
  • Updated FlacParser bitrate estimation to use encoded audio payload region after metadata blocks (instead of whole file bytes), reducing artwork/metadata inflation.
  • Updated AiffParser to validate AIFC COMM compression 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/data sentinel handling in WavParserTest.
  • 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 NONE and unsupported compression-type rejection in AiffParserTest.
  • Added explicit decode-only intent comment in [`...
Read more

CodecMedia 1.1.2

14 Mar 17:46

Choose a tag to compare

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

Changed

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 OggParser with 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 use long to avoid overflow.
  • Updated WavParser to read/validate audioFormat from fmt and reject unsupported compressed WAV formats instead of silently computing incorrect duration.
  • Added RF64-aware WAV parsing in WavParser, including unsigned chunk-size handling and data size sentinel (0xFFFFFFFF) resolution via ds64.
  • Updated FlacParser to reject reserved metadata block type 127 per FLAC spec.
  • Updated FlacParser bitrate estimation to use encoded audio payload region after metadata blocks (instead of whole file bytes), reducing artwork/metadata inflation.
  • Updated AiffParser to validate AIFC COMM compression 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/data sentinel handling in WavParserTest.
  • 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 NONE and unsupported compression-type rejection in AiffParserTest.
  • 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 CodecMediaCliTest with mvn test (in codecmedia-cli).
  • Confirmed Kotlin wrapper refactor stability with gradlew.bat test (in codecmedia-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.xml to CodecMediaLib.

Notes

  • This 1.1.0 release is a transition baseline and prepares for larger updates planned in the 1.1.* series.

[1.0.4] - 2026-03-05

Added

  • Added richer MOV probe fields in MovProbeInfo: videoBitrateKbps, audioBitrateKbps, bitDepth, and displayAspectRatio.
  • 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 CodecMediaFacadeTest for probe/strict-validate using files under src/test/resources/example.
  • Added round-trip conversion test class CodecMediaRoundTripConversionTest to validate same-extension convert->convert flows across all real example extensions (mp3, mp4, png, webm).

Changed

  • Enhanced MOV parsing in MovParser with deeper BMFF track metadata extraction (hdlr, mdhd, stsd, btrt, stsz) and fallback bitrate estimation.
  • Enhanced MP4 parsing in Mp4Parser to extract video/audio codec, sample rate, channels, frame rate, bit depth, bitrate, and aspect ratio.
  • Enhanced WebM parsing in WebmParser to extract track bitrate when present and compute fallback bitrate/aspect ratio values.
  • Updated stream/tag mapping in StubCodecMediaEngine so 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

14 Mar 11:15

Choose a tag to compare

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 OggParser with 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 use long to avoid overflow.
  • Updated WavParser to read/validate audioFormat from fmt and reject unsupported compressed WAV formats instead of silently computing incorrect duration.
  • Added RF64-aware WAV parsing in WavParser, including unsigned chunk-size handling and data size sentinel (0xFFFFFFFF) resolution via ds64.
  • Updated FlacParser to reject reserved metadata block type 127 per FLAC spec.
  • Updated FlacParser bitrate estimation to use encoded audio payload region after metadata blocks (instead of whole file bytes), reducing artwork/metadata inflation.
  • Updated AiffParser to validate AIFC COMM compression 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/data sentinel handling in WavParserTest.
  • 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 NONE and unsupported compression-type rejection in AiffParserTest.
  • 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.xml to CodecMediaLib.

Notes

  • This 1.1.0 release is a transition baseline and prepares for larger updates planned in the 1.1.* series.

[1.0.4] - 2026-03-05

Added

  • Added richer MOV probe fields in MovProbeInfo: videoBitrateKbps, audioBitrateKbps, bitDepth, and displayAspectRatio.
  • 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 CodecMediaFacadeTest for probe/strict-validate using files under src/test/resources/example.
  • Added round-trip conversion test class CodecMediaRoundTripConversionTest to validate same-extension convert->convert flows across all real example extensions (mp3, mp4, png, webm).

Changed

  • Enhanced MOV parsing in MovParser with deeper BMFF track metadata extraction (hdlr, mdhd, stsd, btrt, stsz) and fallback bitrate estimation.
  • Enhanced MP4 parsing in Mp4Parser to extract video/audio codec, sample rate, channels, frame rate, bit depth, bitrate, and aspect ratio.
  • Enhanced WebM parsing in WebmParser to extract track bitrate when present and compute fallback bitrate/aspect ratio values.
  • Updated stream/tag mapping in StubCodecMediaEngine so 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

13 Mar 17:27

Choose a tag to compare

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.xml to CodecMediaLib.

Notes

  • This 1.1.0 release is a transition baseline and prepares for larger updates planned in the 1.1.* series.

[1.0.4] - 2026-03-05

Added

  • Added richer MOV probe fields in MovProbeInfo: videoBitrateKbps, audioBitrateKbps, bitDepth, and displayAspectRatio.
  • 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 CodecMediaFacadeTest for probe/strict-validate using files under src/test/resources/example.
  • Added round-trip conversion test class CodecMediaRoundTripConversionTest to validate same-extension convert->convert flows across all real example extensions (mp3, mp4, png, webm).

Changed

  • Enhanced MOV parsing in MovParser with deeper BMFF track metadata extraction (hdlr, mdhd, stsd, btrt, stsz) and fallback bitrate estimation.
  • Enhanced MP4 parsing in Mp4Parser to extract video/audio codec, sample rate, channels, frame rate, bit depth, bitrate, and aspect ratio.
  • Enhanced WebM parsing in WebmParser to extract track bitrate when present and compute fallback bitrate/aspect ratio values.
  • Updated stream/tag mapping in StubCodecMediaEngine so 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

Changed

  • Improved probe routing in StubCodecMediaEngine to 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 StubCodecMediaEngine to include AIFF/AIF/AIFC.
  • Extended probe and strict validation routing in StubCodecMediaEngine to include FLAC.
  • Expanded MP4 signature acceptance for M4A family brands in Mp4Parser.isLikelyMp4().
  • Updated feature notes in README.md to reflect OGG Vorbis/Opus probing support and prefix-sniff probe behavior.

[1.0.2] - 2026-03-02

Added

Changed

Fixed

  • Fixed EBML element decoding in WebmParser so multi-byte element IDs (including DefaultDuration) are parsed with correct ID/size boundaries.
  • Fixed MOV frame-rate extraction in MovParser to use mdhd track timescale when interpreting stts sample 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

11 Mar 03:52

Choose a tag to compare

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, and displayAspectRatio.
  • 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 CodecMediaFacadeTest for probe/strict-validate using files under src/test/resources/example.
  • Added round-trip conversion test class CodecMediaRoundTripConversionTest to validate same-extension convert->convert flows across all real example extensions (mp3, mp4, png, webm).

Changed

  • Enhanced MOV parsing in MovParser with deeper BMFF track metadata extraction (hdlr, mdhd, stsd, btrt, stsz) and fallback bitrate estimation.
  • Enhanced MP4 parsing in Mp4Parser to extract video/audio codec, sample rate, channels, frame rate, bit depth, bitrate, and aspect ratio.
  • Enhanced WebM parsing in WebmParser to extract track bitrate when present and compute fallback bitrate/aspect ratio values.
  • Updated stream/tag mapping in StubCodecMediaEngine so 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

Changed

  • Improved probe routing in StubCodecMediaEngine to 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 StubCodecMediaEngine to include AIFF/AIF/AIFC.
  • Extended probe and strict validation routing in StubCodecMediaEngine to include FLAC.
  • Expanded MP4 signature acceptance for M4A family brands in Mp4Parser.isLikelyMp4().
  • Updated feature notes in README.md to reflect OGG Vorbis/Opus probing support and prefix-sniff probe behavior.

[1.0.2] - 2026-03-02

Added

Changed

Fixed

  • Fixed EBML element decoding in WebmParser so multi-byte element IDs (including DefaultDuration) are parsed with correct ID/size boundaries.
  • Fixed MOV frame-rate extraction in MovParser to use mdhd track timescale when interpreting stts sample 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

05 Mar 11:30

Choose a tag to compare

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

Changed

  • Improved probe routing in StubCodecMediaEngine to 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 StubCodecMediaEngine to include AIFF/AIF/AIFC.
  • Extended probe and strict validation routing in StubCodecMediaEngine to include FLAC.
  • Expanded MP4 signature acceptance for M4A family brands in Mp4Parser.isLikelyMp4().
  • Updated feature notes in README.md to reflect OGG Vorbis/Opus probing support and prefix-sniff probe behavior.

[1.0.2] - 2026-03-02

Added

Changed

Fixed

  • Fixed EBML element decoding in WebmParser so multi-byte element IDs (including DefaultDuration) are parsed with correct ID/size boundaries.
  • Fixed MOV frame-rate extraction in MovParser to use mdhd track timescale when interpreting stts sample 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

02 Mar 13:54

Choose a tag to compare

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

Changed

Fixed

  • Fixed EBML element decoding in WebmParser so multi-byte element IDs (including DefaultDuration) are parsed with correct ID/size boundaries.
  • Fixed MOV frame-rate extraction in MovParser to use mdhd track timescale when interpreting stts sample 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

02 Mar 13:43

Choose a tag to compare