Skip to content

CodecMedia 1.1.3

Choose a tag to compare

@TamKungZ TamKungZ released this 16 Mar 17:13
· 7 commits to main since this release

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 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).