v4.0.0 FLAC File Support (and RIFF/Start/End tag rewrite)
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
FileTypeFileSettingsclass - Rewriting
NonContainerimplementation to be much cleaner
Breaking Changes
- "Non-Container" file implementation was rewritten
- RIFF implementation was rewritten
AviStream,AviStreamList, andAviStreamHeaderclasses combined intoAviStreamclassAviHeaderadded to represent the collection ofAviStreamsand general info about the AVI fileDivxTag.fromFileremoved, useDivxTag.fromDataand pass in chunk dataInfoTag.fromDatareplaced withInfoTag.fromList, pass aRiffListin directlyMovieIdTag.fromDatareplaced withMovieIdTag.fromList, pass aRiffListin directlyRiffChunkandRiffListwritten to be treated asIRiffChunk,RiffFilehas 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.
MpegFilerenamedMpegContainerFileNonContainerrenamed toSandwichRiffFilenow has a singleRiffTagthat collects all the tags aRiffFilecan holdFile.invariantStartPositionandFile.invariantEndPositionremoved. For "sandwich" files, the information is retained inSandwichFile.mediaStartPositionandSandwichFile.mediaEndPosition- Attempting to add a tag to a file that is not support will now throw an error
CombinedTagwill now do tree traversal when performing operations, egCombinedTag.tagswill return all tags under the current instanceTagTypes.FlacMetadatais renamedTagTypes.FlacPicturesand used to represent if a file contains FLAC style pictures. Value remains the same.