Skip to content

v4.0.0 FLAC File Support (and RIFF/Start/End tag rewrite)

Compare
Choose a tag to compare
@benrr101 benrr101 released this 03 Oct 20:44
· 69 commits to master since this release

Better late than never...

New Features / Fixes

  • Support for FLAC files (supports ID3v1, ID3v2, APE, and Xiph tagging formats)
  • Rewriting the entire RIFF implementation to support "non-standard" files better
  • Support for configuring the default tags to create when the file is read, configure using the appropriate FileTypeFileSettings class
  • Rewriting NonContainer implementation to be much cleaner

Breaking Changes

  • "Non-Container" file implementation was rewritten
  • RIFF implementation was rewritten
    • AviStream, AviStreamList, and AviStreamHeader classes combined into AviStream class
    • AviHeader added to represent the collection of AviStreams and general info about the AVI file
    • DivxTag.fromFile removed, use DivxTag.fromData and pass in chunk data
    • InfoTag.fromData replaced with InfoTag.fromList, pass a RiffList in directly
    • MovieIdTag.fromData replaced with MovieIdTag.fromList, pass a RiffList in directly
    • RiffChunk and RiffList written to be treated as IRiffChunk, RiffFile has a list of chunks it maintains and uses to determine how to read / write the file
    • ... probably some others in there. Feel free to raise issues if you're confused on how to upgrade.
  • MpegFile renamed MpegContainerFile
  • NonContainer renamed to Sandwich
  • RiffFile now has a single RiffTag that collects all the tags a RiffFile can hold
  • File.invariantStartPosition and File.invariantEndPosition removed. For "sandwich" files, the information is retained in SandwichFile.mediaStartPosition and SandwichFile.mediaEndPosition
  • Attempting to add a tag to a file that is not support will now throw an error
  • CombinedTag will now do tree traversal when performing operations, eg CombinedTag.tags will return all tags under the current instance
  • TagTypes.FlacMetadata is renamed TagTypes.FlacPictures and used to represent if a file contains FLAC style pictures. Value remains the same.