@svta/cml-iso-bmff 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.
Unreleased
Changed
isIsoBoxTypeacceptsunknownas the box argument instead ofany. The guard now also returnsfalsefornulland for values that are not objects.writeIsoBoxandwriteIsoBoxesnow returnUint8Array<ArrayBuffer>. The result passes toSourceBuffer.appendBufferwithout a cast under TypeScript 6 and later. A box given as a view over aSharedArrayBufferis copied, so the result is always backed by anArrayBuffer. The type declarations now need TypeScript 5.7 or later.- The README now has a When to use section. The section names the tasks that the package covers and the entry point of each task.
- The utilities guide examples now store the results of
isContainerandisFullBoxincontainerandfullBox. The examples no longer redeclare the imported names. - Every code example in the guides now typechecks. The writing examples pass each
Uint8ArraytoappendBufferdirectly, and thetraverseIsoBoxesexample reads the boxes first (#565).
1.0.7 - 2026-10-18
Changed
- Type parameter names in
dist/index.d.tsnow match the source, for exampleTinstead ofT$1. - README and the Reading Boxes, Writing Boxes, and Utilities guides: the prose is rewritten for readers who do not read English as a first language. The code examples are unchanged.
- Peer dependency ranges are now caret ranges, for example
^1.6.2instead of1.6.2. A later patch or minor release of a peer no longer requires a new release of this package.
1.0.6 - 2026-09-15
Changed
- Update
@svta/cml-utilsto 1.6.1
1.0.5 - 2026-08-11
Fixed
writeTerminatedStringnow writes the null terminator for empty strings, sowriteEmsgoutput with an emptyvalueorschemeIdUrino longer misaligns the fields that follow (version 1messageDatalost its head to thevalueread; version 0 numeric fields were garbled) (#411)
1.0.4 - 2026-07-28
Changed
- Update
@svta/cml-utilsto 1.6.0
1.0.3 - 2026-07-21
Fixed
IsoBoxReadableStreamno longer reads the bareReadableStreamglobal at module scope: importing the package never throws on runtimes without the Web Streams API. InstantiatingIsoBoxReadableStreamon such runtimes throws a descriptive error instead (#382)
1.0.2 - 2026-05-13
Changed
- Update
@svta/cml-utilsto 1.5.0
1.0.1 - 2026-02-11
Fixed
- Loosen typed array generic parameters across public API types and utilities
Changed
- Update
@svta/cml-utilsto 1.4.0
1.0.0 - 2026-02-09
Official stable release. No changes since 1.0.0-beta.2.
1.0.0-beta.2 - 2026-02-03
Changed
- Update
@svta/cml-utilsto 1.2.0
1.0.0-beta.1 - 2026-01-29
Added
- Added writers:
stsc,stsz,stco. - Added
defaultReaderConfiganddefaultWriterConfigfunctions to create default reader and writer configurations (#298)
Changed
- Made
IsoBoxWriteViewConfigrequired inwriteIsoBoxesfunction (#298)
1.0.0-alpha.9 - 2026-01-16
Added
- Added
fourCcToUint32utility function to convert FourCC strings to Uint32
1.0.0-alpha.8 - 2026-01-16
Added
- Added
favicon.icoto documentation - Added
isIsoBoxTypetype guard function
Changed
- Allow type guards to be used with
findIsoBoxandfilterIsoBoxes - Improved base
SampleEntryBoxtype - Updated box reader functions to allow a type parameter to be passed in
1.0.0-alpha.7 - 2026-01-12
Fix
- Bad publish
1.0.0-alpha.6 - 2026-01-09
Added
- Added
IsoBoxFieldsconstant for all ISO BMFF field types - Exports for
IsoBoxReadViewandIsoBoxWriteView
Changed
- Moved all field constants to
IsoBoxFields.ts
Fixed
- Broken type inference for
createAudioSampleEntryReaderandcreateVisualSampleEntryReader - Broken type inference for
writeIsoBoxes
1.0.0-alpha.5 - 2026-01-08
Fixed
- Broken type inference for
traverseIsoBoxes,findIsoBox, andfilterIsoBoxes
1.0.0-alpha.4 - 2026-01-08
Added
- Added ability to use generic reader functions with
readIsoBoxes - Added
createAudioSampleEntryReaderandcreateVisualSampleEntryReaderutility functions for custom audio and visual sample entry box types - Added
findIsoBoxutility function to find the first box matching a predicate - Added
filterIsoBoxesutility function to filter boxes matching a predicate - Added
TraverseIsoBoxesConfigtype for configuring box traversal options
Changed
- Improved type inference for reader return types
- Changed
traverseIsoBoxesto accept a config object instead of positional arguments fordepthFirstandmaxDepth - Expanded
AudioSampleEntryBoxandVisualSampleEntryBoxtype parameters to accept anyIsoBoxType
1.0.0-alpha.3 - 2025-01-07
Changed
- Improved reading and writing of A/V sample entry boxes
Fixed
- Incorrect FourCC for Additional Metadata Container Box (
meco) box
1.0.0-alpha.2 - 2025-01-05
Added
- Add
stsdanddrefbox writers - Add
CONTAINERSexport for the list of box types that are containers
Changed
- Updated
README IsoBoxWritersignature now includes a requiredconfigparameter:(box: B, config: Required<IsoBoxWriteViewConfig>) => ArrayBufferViewwriteArraymethod now requires alengthparameter to specify the number of values to write- Renamed
IsoBoxReadableStreamConfigtoIsoBoxWriteViewConfig - Removed
writeVisualSampleEntryBoxexport (use specific visual sample entry writers likewriteAvc1,writeAvc3, etc. instead)
1.0.0-alpha.1 - 2025-12-27
Added
- Implement ISO Box writing (#269)
0.23.2 - 2025-12-26
Changed
- Update
@svta/cml-utilsto 1.1.0 (#279)
0.23.1 - 2025-12-22
Fixed
- Use fixed version numbers for all CML peer dependencies (#277)