Skip to content

Kelimion/odin-file-formats

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

File Formats

Odin implementations of various file formats (WIP).

ISO Base Media File Format (BMFF)

The base container format used for MP4, HEIF, JPEG 2000, and other formats.

Implemented from ISO/IEC Standard 14496, Part 12, fifth edition 2015-12-15 specification.

See also: Library of Congress archivist's information about the format.

Status

  • open opens a file and returns a handle.
  • close closes the file and cleans up anything allocated on behalf of the user.
  • parse parses the opened file.
  • print prints the parse tree.
  • Various convenience functions to convert things to Odin-native types.
  • Initial test harness.

TODO

  • Add parse options, e.g. parse / don't parse the mdat box, etc.
  • Add handlers for more box types.
  • Add more box constraints, e.g. type foo_ may appear only in bar_, zero or more times.
  • Add a writer.

Extensible Binary Meta Language (EBML)

The base container format used for Matroska and WebM.

Implemented from RFC 8794 and the Matroska specification.

Status

  • open opens a file and returns a handle.
  • close closes the file and cleans up anything allocated on behalf of the user.
  • parse parses the opened file.
  • print prints the parse tree.
  • Various convenience functions to convert things to Odin-native types.
  • Initial test harness.

TODO

  • Add parse options, e.g. parse / skip clusters, etc.
  • Add more element constraints, e.g. type foo_ may appear only in bar_, zero or more times.
  • Add a writer.
  • Add tables and enums for tags and codecs.

Other file formats

TBD.

Revisions

2025-05-16

Jeroen van Rijn [email protected]:

  • BMFF + EBML: Compile with all the -vet vlags
  • BMFF + EBML: Remove placeholder test framework

2021-11

Jeroen van Rijn [email protected]:

  • BMFF + EBML: Initial implementations

About

Odin Implementations of various file formats.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •