From TagLib#
ChangeLog since 2.0
See also: Pre 2.0 ChangeLog
2008-01-10 Brian Nickel <brian.nickel@gmail.com>
* NEWS: Updated for new release.
* configure.ac: Now 2.0.3.0
2008-01-09 Brian Nickel <brian.nickel@gmail.com>
This commit does the following:
- Finishes XML documentation.
- Makes ASF tags enumerable.
- Allows saving RelativeVolumeFrames in 2.2 and 2.3 via
semi-standard XRV and XRVA names.
- Prevents duplicates when genres are stored in "(0)Blues"
format.
* src/TagLib/Id3v2/Tag.cs:
* src/TagLib/Id3v2/Footer.cs:
* src/TagLib/Id3v2/FrameFactory.cs:
* src/TagLib/Id3v2/Header.cs:
* src/TagLib/Id3v2/Frames/UnsynchronisedLyricsFrame.cs:
* src/TagLib/Id3v2/Frames/CommentsFrame.cs:
* src/TagLib/Id3v2/Frames/SynchronizedLyricsFrame.cs:
* src/TagLib/Id3v2/Frames/AttachedPictureFrame.cs:
* src/TagLib/Id3v2/Frames/UniqueFileIdentifierFrame.cs:
* src/TagLib/Id3v2/Frames/TermsOfUseFrame.cs:
* src/TagLib/Id3v2/Frames/GeneralEncapsulatedObjectFrame.cs:
* src/TagLib/Id3v2/Frames/UnknownFrame.cs:
* src/TagLib/Id3v2/Frame.cs:
* src/TagLib/ListBase.cs:
* src/TagLib/Ogg/Codecs/Theora.cs:
* src/TagLib/Ogg/Codecs/Vorbis.cs:
* src/TagLib/Ogg/Codec.cs:
* src/TagLib/Ogg/Bitstream.cs: Finish documentation.
* src/TagLib/Asf/Tag.cs:
* src/TagLib/Asf/ExtendedContentDescriptionObject.cs:
* src/TagLib/Asf/MetadataLibraryObject.cs: Make enumerable. (Thanks to
sambeckett for pointing out this missing feature.)
* src/TagLib/Id3v2/Frames/TextIdentificationFrame.cs: If genre index is
followed by genre text, don't store it twice. (Thanks to sukhjinder for
the bug report.)
* src/TagLib/Id3v2/Frames/RelativeVolumeFrame.cs:
* src/TagLib/Id3v2/FrameHeader.cs:
* tests/fixtures/TagLib.Tests.TaggingFormats/Id3V2Test.cs: Save RVA2 as
XRVA and XRV in older versions.
* configure.ac: Now 2.0.2.22.
2008-01-03 Brian Nickel <brian.nickel@gmail.com>
* src/Makefile.am: Generate taglib-sharp.dll.xml instead.
* docs/Package.en.xml.in: Contains missing documentation and rules for
XmlInjector.exe.
* docs/XmlInjector.cs: A new XML manager which can remove, replace, and
insert nodes into an XML document based on XPath queries.
* docs/Makefile.am: Build XML from the slashdoc and use XmlInjector.exe
to insert missing parts into documentation as well as modify monodoc.xml
* docs/Package.en.xml: Depreciated by docs/Package.en.xml.in.
* docs/MonodocNodeConfig.cs: Depreciated by docs/XmlInjector.cs.
* configure.ac: Generate docs/Package.en.xml from
docs/Package.en.xml.in
2008-01-02 Brian Nickel <brian.nickel@gmail.com>
* src/Makefile.am: Generate taglib-sharp-docs.xml when building docs.
* docs/en/: Deleted. Will be replaced with autogeneration after this
update.
* docs/Makefile.am: Add docs/Packages.en.xml do DIST_EXTRA
* docs/Package.en.xml: Contains values not in slashdocs.
2008-01-02 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/CombinedTag.cs:
* src/TagLib/ByteVectorList.cs:
* src/TagLib/Id3v1/Tag.cs:
* src/TagLib/Id3v1/StringHandler.cs:
* src/TagLib/Riff/List.cs:
* src/TagLib/Riff/File.cs:
* src/TagLib/Riff/BitmapInfoHeader.cs:
* src/TagLib/Riff/AviHeaderList.cs:
* src/TagLib/Riff/DivXTag.cs:
* src/TagLib/Riff/ListTag.cs:
* src/TagLib/Riff/InfoTag.cs:
* src/TagLib/Riff/MovieIdTag.cs:
* src/TagLib/Riff/WaveFormatEx.cs:
* src/TagLib/Genres.cs:
* src/TagLib/Id3v2/Tag.cs:
* src/TagLib/Id3v2/Frames/TextIdentificationFrame.cs:
* src/TagLib/Id3v2/ExtendedHeader.cs:
* src/TagLib/Mpeg/File.cs:
* src/TagLib/Mpeg/VideoHeader.cs:
* src/TagLib/Mpeg/AudioFile.cs:
* src/TagLib/Mpeg/AudioHeader.cs:
* src/TagLib/ByteVector.cs:
* src/TagLib/SupportedMimeType.cs:
* src/TagLib/Flac/Picture.cs:
* src/TagLib/Flac/File.cs:
* src/TagLib/Flac/StreamHeader.cs:
* src/TagLib/Ape/Tag.cs:
* src/TagLib/Ape/Footer.cs:
* src/TagLib/Ape/File.cs:
* src/TagLib/ListBase.cs:
* src/TagLib/Mpeg4/Boxes/FullBox.cs:
* src/TagLib/Mpeg4/Boxes/IsoChunkLargeOffsetBox.cs:
* src/TagLib/Mpeg4/Boxes/IsoHandlerBox.cs:
* src/TagLib/Mpeg4/Boxes/IsoChunkOffsetBox.cs:
* src/TagLib/Mpeg4/Boxes/IsoMetaBox.cs:
* src/TagLib/Mpeg4/FileParser.cs:
* src/TagLib/Mpeg4/AppleTag.cs:
* src/TagLib/Mpeg4/File.cs:
* src/TagLib/Mpeg4/BoxHeader.cs:
* src/TagLib/Mpeg4/Box.cs:
* src/TagLib/Picture.cs:
* src/TagLib/Tag.cs:
* src/TagLib/Mpc/File.cs:
* src/TagLib/Mpc/StreamHeader.cs:
* src/TagLib/File.cs:
* src/TagLib/WavPack/File.cs:
* src/TagLib/WavPack/StreamHeader.cs:
* src/TagLib/NonContainer/Tag.cs:
* src/TagLib/NonContainer/File.cs:
* src/TagLib/NonContainer/EndTag.cs:
* src/TagLib/NonContainer/StartTag.cs:
* src/TagLib/Asf/Tag.cs:
* src/TagLib/Asf/HeaderExtensionObject.cs:
* src/TagLib/Asf/File.cs:
* src/TagLib/Asf/HeaderObject.cs:
* src/TagLib/Asf/FilePropertiesObject.cs:
* src/TagLib/Asf/ExtendedContentDescriptionObject.cs:
* src/TagLib/Asf/UnknownObject.cs:
* src/TagLib/Asf/MetadataLibraryObject.cs:
* src/TagLib/Asf/PaddingObject.cs:
* src/TagLib/Asf/StreamPropertiesObject.cs:
* src/TagLib/Asf/ContentDescriptionObject.cs:
* src/TagLib/Asf/Object.cs:
* src/TagLib/Ogg/XiphComment.cs:
* src/TagLib/Ogg/Page.cs:
* src/TagLib/Ogg/File.cs:
* src/TagLib/Ogg/Paginator.cs:
* src/TagLib/Ogg/PageHeader.cs:
* src/TagLib/Ogg/GroupedComment.cs: More docs, corrected some typos.
2008-01-01 Brian Nickel <brian.nickel@gmail.com>
I'm working to finish up the xmldocs so I can get rid of the aging docs
directory.
* src/TagLib/Riff/List.cs:
* src/TagLib/Riff/AviStream.cs:
* src/TagLib/Riff/File.cs:
* src/TagLib/Riff/BitmapInfoHeader.cs:
* src/TagLib/Riff/AviHeaderList.cs:
* src/TagLib/Riff/DivXTag.cs:
* src/TagLib/Riff/ListTag.cs:
* src/TagLib/Riff/InfoTag.cs:
* src/TagLib/Riff/MovieIdTag.cs:
* src/TagLib/Riff/WaveFormatEx.cs:
* src/TagLib/Id3v2/Tag.cs:
* src/TagLib/Id3v2/Frames/UnsynchronisedLyricsFrame.cs:
* src/TagLib/Id3v2/Frames/RelativeVolumeFrame.cs:
* src/TagLib/Id3v2/Frames/CommentsFrame.cs:
* src/TagLib/Id3v2/Frames/SynchronizedLyricsFrame.cs:
* src/TagLib/Id3v2/Frames/PopularimeterFrame.cs:
* src/TagLib/Id3v2/Frames/AttachedPictureFrame.cs:
* src/TagLib/Id3v2/Frames/UniqueFileIdentifierFrame.cs:
* src/TagLib/Id3v2/Frames/PrivateFrame.cs:
* src/TagLib/Id3v2/Frames/MusicCdIdentifierFrame.cs:
* src/TagLib/Id3v2/Frames/TermsOfUseFrame.cs:
* src/TagLib/Id3v2/Frames/GeneralEncapsulatedObjectFrame.cs:
* src/TagLib/Id3v2/Frames/TextIdentificationFrame.cs:
* src/TagLib/Id3v2/Frames/PlayCountFrame.cs:
* src/TagLib/Id3v2/ExtendedHeader.cs:
* src/TagLib/Id3v2/Frame.cs:
* src/TagLib/ByteVector.cs:
* src/TagLib/Flac/BlockHeader.cs:
* src/TagLib/Ape/Tag.cs:
* src/TagLib/Ape/Item.cs:
* src/TagLib/Picture.cs:
* src/TagLib/Ogg/XiphComment.cs: A little documentation and
reformatting.
* examples/BatchSet.cs: Add support for setting the ID3v2 version.
2007-12-30 Brian Nickel <brian.nickel@gmail.com>
This commit does the following:
- Makes Id3v2 skip iTunes settings-style comments.
- Makes ; the separator for multivalue fields in Mpeg4, rather
than storing in multiple boxes.
- Cleans up Mpeg4 genre logic.
- Uses System.Globalization to choose the default language in
Id3v2.
- Moves the comment written when Id3v2.Tag.Comment to be the
first COMM in the frame so it is the first one recognized by
other programs.
* src/TagLib/Id3v2/Tag.cs: Move the written comment to be the first
COMM frame if it isn't. Make " " the fallback comment per instructions
on id3.org. Get the default language from CultureInfo.CurrentCulture
.ThreeLetterISOLanguageName.
* src/TagLib/Id3v2/Frames/CommentsFrame.cs: Skip iTunes comments if
they are set. There's no need for gibberish to show up as the comment.
* src/TagLib/Mpeg4/AppleTag.cs: Instead of adding multiple data boxes
for multi-string values, use `;' as a separator. It wasn't working out
in iTunes. (TagLib# can still read the tags is wrote earlier just fine.)
Use `@gnr' or `gnre', but don't attempt a weird mix of both at the same
time.
* tests/tests.mdp: Automatic changes by MonoDevelop 0.18.
* configure.ac: Now 2.0.2.21.
2007-12-29 Brian Nickel <brian.nickel@gmail.com>
This commit introduces some powerful new tests. They add more intensive
checking of saving and rendering and have lead to the preemptive
correction of several bugs.
* tests/tests.mdp:
* tests/fixtures/Helpers.cs:
* tests/fixtures/TagLib.FormatTests/FlacFormatTest.cs:
* tests/fixtures/TagLib.FormatTests/Id3V1FormatTest.cs:
* tests/fixtures/TagLib.FormatTests/Id3V2FormatTest.cs:
* tests/fixtures/TagLib.FormatTests/IFormatTest.cs:
* tests/fixtures/TagLib.FormatTests/AsfFormatTest.cs:
* tests/fixtures/TagLib.FormatTests/Id3BothFormatTest.cs:
* tests/fixtures/TagLib.FormatTests/OggFormatTest.cs:
* tests/fixtures/TagLib.FormatTests/MpcFormatTest.cs:
* tests/fixtures/TagLib.FormatTests/M4aFormatTest.cs:
* tests/fixtures/TagLib.Tests.FileFormats/FlacFormatTest.cs:
* tests/fixtures/TagLib.Tests.FileFormats/Id3V1FormatTest.cs:
* tests/fixtures/TagLib.Tests.FileFormats/Id3V2FormatTest.cs:
* tests/fixtures/TagLib.Tests.FileFormats/IFormatTest.cs:
* tests/fixtures/TagLib.Tests.FileFormats/AsfFormatTest.cs:
* tests/fixtures/TagLib.Tests.FileFormats/StandardTests.cs:
* tests/fixtures/TagLib.Tests.FileFormats/Id3BothFormatTest.cs:
* tests/fixtures/TagLib.Tests.FileFormats/OggFormatTest.cs:
* tests/fixtures/TagLib.Tests.FileFormats/MpcFormatTest.cs:
* tests/fixtures/TagLib.Tests.FileFormats/M4aFormatTest.cs:
* tests/fixtures/TagLib.Tests.TaggingFormats/Mpeg4Test.cs:
* tests/fixtures/TagLib.Tests.TaggingFormats/ApeTest.cs:
* tests/fixtures/TagLib.Tests.TaggingFormats/Id3V1Test.cs:
* tests/fixtures/TagLib.Tests.TaggingFormats/Id3V2Test.cs:
* tests/fixtures/TagLib.Tests.TaggingFormats/InfoTagTest.cs:
* tests/fixtures/TagLib.Tests.TaggingFormats/XiphTest.cs:
* tests/fixtures/TagLib.Tests.TaggingFormats/MovieIdTagTest.cs:
* tests/fixtures/TagLib.Tests.TaggingFormats/AsfTest.cs:
* tests/fixtures/TagLib.Tests.TaggingFormats/DivXTest.cs: Replaced unit
tests with new versions.
2007-12-29 Brian Nickel <brian.nickel@gmail.com>
This commit does the following:
- Fixes support for IsCompilation when saving as ID3v2.2.
- Makes Id3v2.Tag clonable.
- Fixes the project files.
- Fixes cloning UserTextInformationFrame.
- CHANGES THE DEFAULT ID3v2 VERSION TO 3. While this may result
in some boos from people who consider ID3v2.4 to be the perfect
tagging format (myself included), the number of applications
that hiccup on ID3v2.4 is too astounding. This will not cause
tags already encoded at 2.4 to be reencoded at 2.3, but if new
tags are added to the file, they will be 2.3.
* src/TagLib/Id3v2/Tag.cs: Make Tag cloneable. Make default version 3.
* src/TagLib/Id3v2/FrameHeader.cs: Add version 2 mapping for TCMP so
IsComposer is saved in Id3v2.2.
* src/TagLib/Id3v2/Frames/TextIdentificationFrame.cs: If the frame
is a User*, create a User* when cloning.
* src/TagLib/Id3v2/ExtendedHeader.cs: Make cloneable.
* src/TagLib/Id3v2/FrameTypes.cs:
* src/TagLib/Mpeg4/BoxTypes.cs: Add description of why these classes
exist, why they are internal, and why they aren't necessary for third
party programmers.
* src/taglib-sharp.mdp:
* taglib-sharp.csproj: Add VBRIHeader.cs
2007-12-28 Brian Nickel <brian.nickel@gmail.com>
This commit does the following:
- Adds IsCompilation to Id3v2.
- Adds support for deep CopyTo with Id3v2.
- Fixes support for deep CopyTo with Ape.
- Adds support for Fraunhofer VBRI headers in MPEG audio.
- Fixes a bug in reading XiphComments.
- Other trivial changes.
* src/TagLib/Id3v2/Tag.cs: Added IsCompilation and CopyTo.
* src/TagLib/Id3v2/FrameTypes.cs: Added TCMP.
* src/TagLib/Id3v2/Frames/UnsynchronisedLyricsFrame.cs:
* src/TagLib/Id3v2/Frames/RelativeVolumeFrame.cs:
* src/TagLib/Id3v2/Frames/CommentsFrame.cs:
* src/TagLib/Id3v2/Frames/SynchronizedLyricsFrame.cs:
* src/TagLib/Id3v2/Frames/PopularimeterFrame.cs:
* src/TagLib/Id3v2/Frames/AttachedPictureFrame.cs:
* src/TagLib/Id3v2/Frames/UniqueFileIdentifierFrame.cs:
* src/TagLib/Id3v2/Frames/PrivateFrame.cs:
* src/TagLib/Id3v2/Frames/MusicCdIdentifierFrame.cs:
* src/TagLib/Id3v2/Frames/TermsOfUseFrame.cs:
* src/TagLib/Id3v2/Frames/GeneralEncapsulatedObjectFrame.cs:
* src/TagLib/Id3v2/Frames/TextIdentificationFrame.cs:
* src/TagLib/Id3v2/Frames/PlayCountFrame.cs:
* src/TagLib/Id3v2/Frame.cs: Made clonable.
* src/TagLib/TagLib.sources:
* src/TagLib/Mpeg/VBRIHeader.cs:
* src/TagLib/Mpeg/AudioHeader.cs: Added support for Fraunhofer VBRI
header. This improves coverage of VBR files. (Thanks to hwahrmann for
proposing and authoring the changes.)
* src/TagLib/Ape/Tag.cs: Fixed CopyTo to actually override
TagLib.Tag.CopyTo.
* src/TagLib/Ape/Item.cs: Trivial formatting.
* src/TagLib/Picture.cs: Try to make ObsoleteAttributes a bit clearer.
* src/TagLib/Debugger.cs: Much nicer DumpHex.
* src/TagLib/Ogg/XiphComment.cs: Don't fail when a bad comment (one
without a = is encountered, just ignore that field. (Thanks to hwahrmann
for the bug report and authoring the changes.)
* examples/BatchSet.cs: Allow setting pictures.
* configure.ac: Now 2.0.2.20.
2007-12-27 Brian Nickel <brian.nickel@gmail.com>
This commit does the following:
- Adds support for .divx extension. (Just an AVI)
- Adds Tag.CopyTo to obsolete Tag.Duplicate. The difference is
that Tag.CopyTo is overridable, so tags and implement their
own, better, copying.
- Several small bugfixes correcting Mpeg4.Tag.IsCompilation,
GIF images, reading Mpeg4 pictures without flags, and
NonContainer.EndTag reading small files.
- COMPLETE REWORK of OGG pagination to handle multipage comments
and saving that results in the creation of new pages. This
fixes a bug posted by kurros on the forum and Banshee bug
#502628.
* src/TagLib/Riff/File.cs: Recognize the .divx extension. (Thanks to
sukhjinder for the feature request and jocker for confirming the fix.)
Use Tag.CopyTo instead of Tag.Duplicate.
* src/TagLib/Flac/File.cs: Use Tag.CopyTo instead of Tag.Duplicate.
* src/TagLib/Ape/Tag.cs: Add first real implementation of Tag.CopyTo.
* src/TagLib/Ape/Item.cs: Make clonable.
* src/TagLib/Mpeg4/AppleTag.cs: Don't check for image format flags, just
use data to identify the image type. iTunes apparently doesn't use the
flags anymore. (Thanks to DavidT@Imerge for the bug report.) Use 1 byte
rather than 4 to store the compilation setting. (Thanks to DavidT@Imerge
for the fix.)
* src/TagLib/Picture.cs: Was setting mime-type to "image/png" for GIF.
* src/TagLib/Tag.cs: Mark Tag.Duplicate as obsolete and replace with
overridable Tag.CopyTo. This will provide the option for better copying
from one tag to another if their types match rather than just doing the
simply copy available in Tag.Duplicate. See Ape.Tag for an
implemenation. More coming soon.
* src/TagLib/NonContainer/File.cs: Don't read tags at the end of the
file if the tags at the start of the file are the entire file. (No
double dipping.)
* src/TagLib/NonContainer/EndTag.cs: Don't crash if start < 128 when
reading. (Thanks to jonx for the bug report.) Use Tag.CopyTo instead of
Tag.Duplicate.
* src/TagLib/NonContainer/StartTag.cs: Use Tag.CopyTo instead of
Tag.Duplicate.
* src/TagLib/Ogg/File.cs: Use changes in Page and Paginator classes to
handle situations where the number of pages in the stream changes.
* src/TagLib/Ogg/Page.cs: Add method for updating all Ogg pages after a
certain position with new page numbers. This is necessary if new pages
are inserted to avoid corrupting the file. Part of sweeping changes to
Ogg support.
* src/TagLib/Ogg/Paginator.cs: Instead of just saving a single page,
properly paginate using a single page for the first packet in the file.
Optimally, produce the same number of pages as were in the file before,
but allow for creating more pages if the situation warrents it.
* src/TagLib/Ogg/PageHeader.cs: Add a constructor which clones a header
but offsets page sequence by a specified number.
* src/TagLib/Ogg/Bitstream.cs: Fix typo that was preventing multi-page
packets from reading correctly. What a difference a negation makes.
* configure.ac: Now 2.0.2.19.
2007-12-25 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Riff/File.cs:
* src/TagLib/Flac/File.cs:
* src/TagLib/Mpeg4/File.cs:
* src/TagLib/NonContainer/File.cs:
* src/TagLib/Asf/File.cs:
* src/TagLib/Ogg/File.cs: Wrap constructors and save operations in
try/finally to ensure the streams get closed. (Thanks to oliphant for
the bug report.)
2007-12-25 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Id3v1/Tag.cs: Added constructor to create from data. Added
documentation. Fixed properties to produce correct output when empty.
Removed broken IsEmpty property.
* src/TagLib/Riff/List.cs: Make sure fields are cleared when SetValue
is called with any type of empty result.
* src/TagLib/Riff/DivXTag.cs: Added constructor to create from data.
Added documentation. Fixed properties to produce correct output when
empty. Make Clear() clear `title'. Resize fields after encoding rather
than before to avoid possible sizing problems.
* src/TagLib/Riff/MovieIdTag.cs: Read genre from correct position.
* src/TagLib/Riff/WaveFormatEx.cs: Reformat and complete codec
descriptions.
* src/TagLib/Id3v2/Tag.cs: Add constructor to create from data. Fixed
properties to produce correct output when empty.
* src/TagLib/Id3v2/Frames/UnsynchronisedLyricsFrame.cs: Correct file
header.
* src/TagLib/Id3v2/Frames/SynchronizedLyricsFrame.cs: Use alignment when
searching for delimiter to avoid breakage with UTF16BE.
* src/TagLib/Id3v2/Frames/UniqueFileIdentifierFrame.cs: Tidy up a bit.
Add constructor with only owner as argument.
* src/TagLib/Id3v2/Frames/PrivateFrame.cs: Throw NotImplementedException
when version is less than 3, rather than just outputting an empty tag.
* src/TagLib/Id3v2/Frames/GeneralEncapsulatedObjectFrame.cs: Add size
of delimiter rather than 1 to avoid breakage with UTF16.
* src/TagLib/Id3v2/Frames/TextIdentificationFrame.cs: Use delimiter
rather than single byte in a rejection method to avoid breakage. Have
genres produce "/" separated values after first non-indexable value is
encountered. eg. {"Blues", "Country", "Foobar", "Jazz"} becomes
"(0)(2)Foobar/Jazz". This format is completely recoverable. Add
constructor for User* which accepts just a description.
* src/TagLib/Mpeg/AudioHeader.cs: Correct some documentation.
* src/TagLib/ByteVector.cs: Pass generated BOM to StringTypeToEncoding
to make sure the correct encoding is used.
* src/TagLib/Flac/File.cs: Correct documentation typo.
* src/TagLib/Ape/Tag.cs: Add support for one of each type of picture
rather than just one front cover. Allow parsing of years not 4 digits
in length.
* src/TagLib/Mpeg4/FileParser.cs: Prevent a crash if there isn't
sufficient data for reading the first block in parsers. Fix typo which
caused UtdaTree to not be filled, resulting in written tags not being
readable.
* src/TagLib/Mpeg4/AppleTag.cs: Allow parsing of years not 4 digits
in length. Correctly clear zeroed values.
* src/TagLib/Tag.cs: Use semicolons, rather than commas in Joined* to
reflect behavior of WMP.
* src/TagLib/Picture.cs: Fix documentation typo.
* src/TagLib/WavPack/StreamHeader.cs: Add some docs.
* src/TagLib/Asf/Tag.cs: Remove "WM/GenreID" when a new genre is stored.
* src/TagLib/Asf/ExtendedContentDescriptionObject.cs: Loop through names
rather than descriptors first when getting descriptors. That way the
first matching name is chosen rather than the first descriptor of any
name.
* src/TagLib/Asf/ContentDescriptor.cs: Fix rendering bug that broke
storing values.
* configure.ac: Now 2.0.2.18.
2007-10-02 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Riff/List.cs:
* src/TagLib/Riff/DivXTag.cs:
* src/TagLib/Id3v2/Frames/UnsynchronisedLyricsFrame.cs:
* src/TagLib/Id3v2/Frames/RelativeVolumeFrame.cs:
* src/TagLib/Id3v2/Frames/CommentsFrame.cs:
* src/TagLib/Id3v2/Frames/SynchronizedLyricsFrame.cs:
* src/TagLib/Id3v2/Frames/AttachedPictureFrame.cs:
* src/TagLib/Id3v2/Frames/TermsOfUseFrame.cs:
* src/TagLib/Id3v2/Frames/GeneralEncapsulatedObjectFrame.cs:
* src/TagLib/Id3v2/Frames/TextIdentificationFrame.cs:
* src/TagLib/Flac/Picture.cs:
* src/TagLib/Ape/Tag.cs:
* src/TagLib/Ape/Item.cs:
* src/TagLib/Mpeg4/Boxes/IsoHandlerBox.cs:
* src/TagLib/Ogg/XiphComment.cs: Use ToString (StringType,int,int)
instead of ToString(StringType)
* src/TagLib/Mpeg/AudioHeader.cs: Remove AudioHeader.position as it is
no longer needed.
* src/TagLib/ByteVector.cs: Use ToString(StringType,int,int) in
ToStrings, mark ToString(StringType,int) as obsolete, add
ToString(StringType,int,int), add documentation. Relax exception
exception checking in ToString as it was causing unnecessary exceptions
when reading some zero byte strings. (Thanks to sambeckett for the bug
report.)
* src/TagLib/Asf/Tag.cs: Use ContentDescriptionObject.Copyright instead
of an extended content descriptor. (Thanks to Dakuja for the bug
report.)
* src/TagLib/Id3v2/Frames/PopularimeterFrame.cs: Add nil separator when
rendering. Was causing tag to be unreadable. (Thanks to cody for the bug
report.)
* configure.ac: Now 2.0.2.17.
2007-09-20 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/ByteVector.cs: Fix overflow problem introduced last
release. (Thanks to hwahrmann for the bug report.)
* src/TagLib/Asf/HeaderObject.cs: Switch the order of play_duration and
send_duration. Standard implementation is backwards from the
specification. (Thanks to hwahrmann for the bug report.)
* src/TagLib/Asf/FilePropertiesObject.cs: Subtract preroll from
duration. (Thanks to hwahrmann for the bug report.)
* configure.ac: Now 2.0.2.16.
2007-09-18 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Riff/BitmapInfoHeader.cs: Reformat.
* src/TagLib/Id3v2/FrameHeader.cs: Remove 'using System.Collections'
* src/TagLib/Mpeg/AudioHeader.cs: Don't double-count position when
counting frames. (Thanks to hwahrmann for the bug report.)
* src/TagLib/ByteVector.cs: Add UseBrokenLatin1Behavior to emulate bad
behavior of many taggers. When true, TagLib# will read Latin1 strings as
the system default encoding.
* src/TagLib/Asf/ContentDescriptionObject.cs:
* src/TagLib/Ape/Tag.cs: Documented.
* src/TagLib/Riff/File.cs:
* src/TagLib/Mpeg4/Boxes/IsoHandlerBox.cs:
* src/TagLib/Asf/DescriptionRecord.cs:
* src/TagLib/Asf/ContentDescriptor.cs:
* src/TagLib/ReadOnlyByteVector.cs: Use ToString(StringType).
* configure.ac: Now 2.0.2.15.
2007-09-17 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Id3v2/Tag.cs: New logic for SetFrameText was backwards,
causing frames to disappear. (Thanks to hwahrmann for the bug report.)
* src/TagLib/Id3v2/FrameHeader.cs: Fix the reading of version 2 and 3
headers. They weren't being converted to the new headers. Add
FrameFlags.None.
* src/TagLib/Id3v2/Header.cs: Add HeaderFlags.None.
* configure.ac: Now 2.0.2.14.
2007-09-16 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Id3v2/SynchData.cs:
* src/TagLib/Id3v2/FrameTypes.cs:
* src/TagLib/Id3v2/FrameHeader.cs:
* src/TagLib/Id3v2/Header.cs:
* src/TagLib/ByteVector.cs:
* src/TagLib/Ape/StreamHeader.cs: Documentation.
2007-09-05 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Flac/Block.cs: Completed docs.
* src/TagLib/Id3v2/Tag.cs: GetItemAsUInt32 was fubar and always
returning zero. (Thanks to renzska for the bug report.) Always set the
encoding to the default when setting the contents of a frame. This
should hopefully prevent bad encoding. (Thanks to evgeni for the bug
report.)
* src/TagLib/Ape/Tag.cs: GetItemAsUInt32 was fubar and always returning
zero.
* configure.ac: Now 2.0.2.13.
2007-09-04 Brian Nickel <brian.nickel@gmail.com>
Only 713 public members away from doing away with MonoDoc.
* src/TagLib/Flac/File.cs: Completed docs.
* src/TagLib/ByteVectorList.cs:
* src/TagLib/Id3v1/Tag.cs:
* src/TagLib/Id3v1/StringHandler.cs:
* src/TagLib/Riff/List.cs:
* src/TagLib/Riff/AviStream.cs:
* src/TagLib/Riff/File.cs:
* src/TagLib/Riff/BitmapInfoHeader.cs:
* src/TagLib/Riff/AviHeaderList.cs:
* src/TagLib/Riff/DivXTag.cs:
* src/TagLib/Riff/ListTag.cs:
* src/TagLib/Riff/InfoTag.cs:
* src/TagLib/Riff/MovieIdTag.cs:
* src/TagLib/Riff/WaveFormatEx.cs:
* src/TagLib/Genres.cs:
* src/TagLib/Id3v2/Tag.cs:
* src/TagLib/Id3v2/Footer.cs:
* src/TagLib/Id3v2/SynchData.cs:
* src/TagLib/Id3v2/FrameTypes.cs:
* src/TagLib/Id3v2/FrameFactory.cs:
* src/TagLib/Id3v2/FrameHeader.cs:
* src/TagLib/Id3v2/Header.cs:
* src/TagLib/Id3v2/Frames/UnsynchronisedLyricsFrame.cs:
* src/TagLib/Id3v2/Frames/RelativeVolumeFrame.cs:
* src/TagLib/Id3v2/Frames/CommentsFrame.cs:
* src/TagLib/Id3v2/Frames/SynchronizedLyricsFrame.cs:
* src/TagLib/Id3v2/Frames/AttachedPictureFrame.cs:
* src/TagLib/Id3v2/Frames/UniqueFileIdentifierFrame.cs:
* src/TagLib/Id3v2/Frames/TermsOfUseFrame.cs:
* src/TagLib/Id3v2/Frames/GeneralEncapsulatedObjectFrame.cs:
* src/TagLib/Id3v2/Frames/TextIdentificationFrame.cs:
* src/TagLib/Id3v2/Frames/UnknownFrame.cs:
* src/TagLib/Id3v2/ExtendedHeader.cs:
* src/TagLib/Id3v2/Frame.cs:
* src/TagLib/ByteVector.cs:
* src/TagLib/Properties.cs:
* src/TagLib/SupportedMimeType.cs:
* src/TagLib/Flac/Picture.cs:
* src/TagLib/Flac/BlockHeader.cs:
* src/TagLib/Flac/StreamHeader.cs:
* src/TagLib/Flac/Block.cs:
* src/TagLib/Ape/Tag.cs:
* src/TagLib/Ape/Footer.cs:
* src/TagLib/StringList.cs:
* src/TagLib/FileTypes.cs:
* src/TagLib/ListBase.cs:
* src/TagLib/Mpeg4/Boxes/IsoSampleTableBox.cs:
* src/TagLib/Mpeg4/Boxes/AppleItemListBox.cs:
* src/TagLib/Mpeg4/Boxes/IsoUserDataBox.cs:
* src/TagLib/Mpeg4/Boxes/IsoAudioSampleEntry.cs:
* src/TagLib/Mpeg4/Boxes/AppleAnnotationBox.cs:
* src/TagLib/Mpeg4/Boxes/IsoSampleDescriptionBox.cs:
* src/TagLib/Mpeg4/Boxes/IsoMetaBox.cs:
* src/TagLib/Mpeg4/FileParser.cs:
* src/TagLib/Mpeg4/AppleTag.cs:
* src/TagLib/Mpeg4/Box.cs:
* src/TagLib/Picture.cs:
* src/TagLib/Tag.cs:
* src/TagLib/File.cs:
* src/TagLib/Debugger.cs:
* src/TagLib/Asf/Tag.cs:
* src/TagLib/Asf/HeaderExtensionObject.cs:
* src/TagLib/Asf/HeaderObject.cs:
* src/TagLib/Asf/File.cs:
* src/TagLib/Asf/ExtendedContentDescriptionObject.cs:
* src/TagLib/Asf/Guid.cs:
* src/TagLib/Asf/MetadataLibraryObject.cs:
* src/TagLib/Ogg/XiphComment.cs:
* src/TagLib/Ogg/Page.cs:
* src/TagLib/Ogg/Codecs/Theora.cs:
* src/TagLib/Ogg/Codecs/Vorbis.cs:
* src/TagLib/Ogg/Codec.cs:
* src/TagLib/Ogg/File.cs:
* src/TagLib/Ogg/Paginator.cs:
* src/TagLib/Ogg/PageHeader.cs:
* src/TagLib/Ogg/GroupedComment.cs:
* src/TagLib/Ogg/Bitstream.cs:
* src/AssemblyInfo.cs.in: Replaced headers and use cref="T:...`1"
instead of "...{T}" until gmcs is fixed. This reduces warnings to
strictly CS1591.
2007-09-03 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Id3v2/Tag.cs: Renamed private method. Tidied up Read.
* src/TagLib/Ape/Item.cs: Fixed some documentation.
* src/TagLib/Ape/Tag.cs:
* src/TagLib/Ape/Footer.cs:
* src/TagLib/Asf/Tag.cs:
* src/TagLib/Asf/HeaderExtensionObject.cs:
* src/TagLib/Asf/File.cs:
* src/TagLib/Asf/HeaderObject.cs:
* src/TagLib/Asf/DescriptionRecord.cs:
* src/TagLib/Asf/FilePropertiesObject.cs:
* src/TagLib/Asf/ExtendedContentDescriptionObject.cs:
* src/TagLib/Asf/UnknownObject.cs:
* src/TagLib/Asf/Guid.cs:
* src/TagLib/Asf/MetadataLibraryObject.cs:
* src/TagLib/Asf/PaddingObject.cs:
* src/TagLib/Asf/StreamPropertiesObject.cs:
* src/TagLib/Asf/ContentDescriptionObject.cs:
* src/TagLib/Asf/Object.cs:
* src/TagLib/Asf/ContentDescriptor.cs: Completed docs.
2007-08-31 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Ape/File.cs:
* src/TagLib/Ape/StreamHeader.cs:
* src/TagLib/FileTypes.cs: Added support for reading APE files. (Thanks
to hwahrmann for authoring the classes.)
* src/TagLib/Id3v2/Tag.cs: Fixed docs.
* src/TagLib/Ape/Item.cs: Completed docs.
* src/TagLib/Id3v2/Frames/RelativeVolumeFrame.cs: Prevent
ArgumentOutOfRangeException when a corrupt frame is encountered. (Thanks
to jms for the bug report.)
* src/TagLib/Id3v1/Tag.cs:
* src/TagLib/Riff/List.cs:
* src/TagLib/Riff/DivXTag.cs:
* src/TagLib/Riff/ListTag.cs:
* src/TagLib/Riff/InfoTag.cs:
* src/TagLib/Riff/MovieIdTag.cs:
* src/TagLib/ByteVector.cs:
* src/TagLib/Properties.cs:
* src/TagLib/Ape/Tag.cs:
* src/TagLib/Mpeg4/AppleTag.cs:
* src/TagLib/Tag.cs:
* src/TagLib/Asf/Tag.cs:
* src/TagLib/Ogg/XiphComment.cs: Removed StringCollection usage (and
replaced some collections with arrays.
* src/TagLib/TagLib.sources:
* src/taglib-sharp.mdp:
* taglib-sharp.csproj: Added files.
* configure.ac: Now 2.0.2.12.
2007-08-28 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Ape/Tag.cs: Stop parsing when a corrupt item is detected.
* src/TagLib/Ape/Item.cs: UTF-8 encoded length != string.Length. Was
messing up with Chinese titles. (Thanks to jms for the bug report.)
* src/TagLib/CombinedTag.cs: Fix header.
* src/TagLib/Id3v2/Tag.cs: Document, add generic GetFrames()
* src/TagLib/Id3v2/Frames/TextIdentificationFrame.cs:
* src/TagLib/Id3v2/Frame.cs:
* src/TagLib/Mpeg/File.cs: Document.
* src/TagLib/Mpeg/VideoHeader.cs: Fix copyright info.
* src/TagLib/Mpeg/AudioFile.cs: Fix some typos.
* src/TagLib/Properties.cs:
* src/TagLib/SupportedMimeType.cs:
* src/TagLib/StringList.cs:
* src/TagLib/FileTypes.cs:
* src/TagLib/Mpeg4/Boxes/IsoSampleTableBox.cs:
* src/TagLib/Mpeg4/Boxes/AppleItemListBox.cs:
* src/TagLib/Mpeg4/Boxes/IsoUserDataBox.cs:
* src/TagLib/Mpeg4/Boxes/IsoAudioSampleEntry.cs:
* src/TagLib/Mpeg4/Boxes/IsoVisualSampleEntry.cs:
* src/TagLib/Mpeg4/Boxes/AppleAnnotationBox.cs:
* src/TagLib/Mpeg4/Boxes/IsoSampleDescriptionBox.cs:
* src/TagLib/Mpeg4/Boxes/IsoMetaBox.cs:
* src/TagLib/Mpeg4/FileParser.cs:
* src/TagLib/Mpeg4/AppleTag.cs:
* src/TagLib/Mpeg4/Box.cs: Fixed generics documentation.
* src/TagLib/Mpeg4/File.cs: Accidentally marked constructors as
protected when copy/pasting code from NonContainer.File. (Thanks to
hwahrmann for the bug report.)
* configure.ac: Now 2.0.2.11.
2007-08-24 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Mpeg/AudioHeader.cs: Restore copyright notice.
* src/TagLib/ICodec.cs: Wording Change.
* src/TagLib/Mpeg/XingHeader.cs:
* src/TagLib/Mpeg/VideoHeader.cs:
* src/TagLib/Mpeg/AudioFile.cs:
* src/TagLib/Mpeg4/Boxes/FullBox.cs:
* src/TagLib/Mpeg4/Boxes/IsoMovieHeaderBox.cs:
* src/TagLib/Mpeg4/Boxes/IsoSampleTableBox.cs:
* src/TagLib/Mpeg4/Boxes/IsoSampleEntry.cs:
* src/TagLib/Mpeg4/Boxes/IsoChunkLargeOffsetBox.cs:
* src/TagLib/Mpeg4/Boxes/AppleAdditionalInfoBox.cs:
* src/TagLib/Mpeg4/Boxes/IsoFreeSpaceBox.cs:
* src/TagLib/Mpeg4/Boxes/AppleItemListBox.cs:
* src/TagLib/Mpeg4/Boxes/IsoUserDataBox.cs:
* src/TagLib/Mpeg4/Boxes/IsoAudioSampleEntry.cs:
* src/TagLib/Mpeg4/Boxes/IsoHandlerBox.cs:
* src/TagLib/Mpeg4/Boxes/AppleElementaryStreamDescriptor.cs:
* src/TagLib/Mpeg4/Boxes/IsoVisualSampleEntry.cs:
* src/TagLib/Mpeg4/Boxes/IsoChunkOffsetBox.cs:
* src/TagLib/Mpeg4/Boxes/AppleDataBox.cs:
* src/TagLib/Mpeg4/Boxes/AppleAnnotationBox.cs:
* src/TagLib/Mpeg4/Boxes/UnknownBox.cs:
* src/TagLib/Mpeg4/Boxes/IsoSampleDescriptionBox.cs:
* src/TagLib/Mpeg4/Boxes/IsoMetaBox.cs:
* src/TagLib/Mpeg4/FileParser.cs:
* src/TagLib/Mpeg4/AppleTag.cs:
* src/TagLib/Mpeg4/BoxTypes.cs:
* src/TagLib/Mpeg4/File.cs:
* src/TagLib/Mpeg4/BoxFactory.cs:
* src/TagLib/Mpeg4/BoxHeader.cs:
* src/TagLib/Mpeg4/Box.cs: Document completely.
2007-08-19 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Mpeg4/Boxes/IsoVisualSampleEntry.cs:
* src/TagLib/Mpeg4/Boxes/UnknownBox.cs: Document completely.
* src/TagLib/Mpeg4/AppleTag.cs: Committed too soon. File didn't compile.
* src/TagLib/Mpeg4/BoxFactory.cs: Forgot a bunch of end tags.
* src/TagLib/Mpeg4/Box.cs: Fix doc typo.
* src/TagLib/Mpc/StreamHeader.cs:
* src/TagLib/WavPack/StreamHeader.cs: Slight change in wording.
2007-08-19 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Id3v2/Frames/PopularimeterFrame.cs: Fix an exception when
saving a PopularimeterFrame with a play count of 0.
* src/taglib-sharp.mdp: Remove BoxList.cs. It hasn't been used in
forever and is an empty file.
* src/TagLib/Mpeg4/FileParser.cs: Started documentation.
* src/TagLib/Mpeg4/BoxTypes.cs:
* src/TagLib/Mpeg4/File.cs:
* src/TagLib/Mpeg4/BoxFactory.cs:
* src/TagLib/Mpeg4/BoxHeader.cs:
* src/TagLib/Mpeg4/BoxList.cs:
* src/TagLib/Mpeg4/Box.cs:
* src/TagLib/Mpc/File.cs:
* src/TagLib/WavPack/File.cs: Completed documentation.
* src/TagLib/Mpc/StreamHeader.cs:
* src/TagLib/WavPack/StreamHeader.cs: Completed documentation, except
for IEquitable overrides.
* src/TagLib/Mpeg4/AppleTag.cs: Completed documentation, except for
IEnumerable overrides.
* configure.ac: Now 2.0.2.10.
2007-08-19 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/File.cs: Fix some typos in documentation.
* src/TagLib/NonContainer/Tag.cs:
* src/TagLib/NonContainer/File.cs:
* src/TagLib/NonContainer/EndTag.cs:
* src/TagLib/NonContainer/StartTag.cs: Document completely.
2007-08-17 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Mpeg/AudioHeader.cs: Go back to setting XingHeader early,
there are just too many things that depend on `this'. (Thanks to jmurphy
for the bug report.)
* src/TagLib/Ape/Tag.cs: Support APEv2 cover pictures. (Thanks to
renzska for the feature request.)
* src/TagLib/Picture.cs: Add new constructors, obsolete CreateFromFile
and CreateFromPath, detect GIF and BMP files.
* src/TagLib/NonContainer/EndTag.cs: Check that the footer contains
sane values.
* configure.ac: Now 2.0.2.9. Remove pkgconfig check for Mono. It isn't
really needed.
2007-08-16 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Asf/Tag.cs:
* src/TagLib/Asf/File.cs:
* src/TagLib/Asf/HeaderObject.cs:
* src/TagLib/Asf/DescriptionRecord.cs:
* src/TagLib/Asf/MetadataLibraryObject.cs:
* src/TagLib/Asf/ContentDescriptor.cs: Added support for the ASF
Metadata Library Object. This object supports content descriptors as big
as uint.MaxValue as opposed to ushort.MaxValue. Tag.Pictures now reads
from this source as well, and large pictures are now written to it. They
were previously ignored. (Thanks to renzska for the bug report.)
* src/TagLib/TagLib.sources:
* src/taglib-sharp.mdp:
* taglib-sharp.csproj: Added new files.
* configure.ac: Now 2.0.2.8
2007-08-16 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Mpeg/AudioHeader.cs: Use non-property checks in public
constructor, assigning the XingHeader after sanity tests was causing
compiler problems on MS .NET. (Thanks to jmurphy for the bug report.)
* configure.ac: Now 2.0.2.7
2007-08-14 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Mpeg/XingHeader.cs: Add XingHeader.FileIdentifier to speed
things up.
* src/TagLib/Mpeg/AudioHeader.cs: Fully document, reformat and add a
check for the Xing identifier before calling the constructor to avoid an
unnecessary exception/try/catch.
* src/TagLib/ICodec.cs: Correct some documentation.
* src/TagLib/Properties.cs:
* src/TagLib/SupportedMimeType.cs:
* src/TagLib/StringList.cs:
* src/TagLib/FileTypes.cs: Correct for documentation compiler warning.
* taglib-sharp.csproj: Added PopularimeterFrame.cs
* configure.ac: Now 2.0.2.6
2007-08-12 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Id3v2/FrameTypes.cs: Added POPM
* src/TagLib/Id3v2/FrameFactory.cs: Added PopularimeterFrame
* src/TagLib/Id3v2/Frames/PopularimeterFrame.cs: NEW. Supports ID3v2
POPM (4.17) frame. (Thanks to renzska for the feature request.)
* src/TagLib/Id3v2/Frames/PlayCountFrame.cs: Removed 'using
System.Collections;
* src/TagLib/TagLib.sources:
* src/taglib-sharp.mdp: Added PopularimeterFrame.cs
* configure.ac: Now 2.0.2.5
2007-08-12 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Riff/List.cs: Reordered operations. Was incrementing a
value after it would have made a difference.
* src/TagLib/Id3v2/Tag.cs: Added static UseNumericGenres which can be
set to false to prevent genres from being stored as ID3v1 indices.
(Thanks to craig for the feature request.)
* src/TagLib/Id3v2/Frames/TextIdentificationFrame.cs: Use a
StringBuilder instead of + operations when formatting genres.
* src/TagLib/Mpeg4/Boxes/IsoHandlerBox.cs: Check that a negative length
is not being passed to Mid if '\0' is not found.
* src/TagLib/Mpeg4/BoxTypes.cs: Add Mdat.
* src/TagLib/Riff/File.cs:
* src/TagLib/Mpeg4/FileParser.cs:
* src/TagLib/Mpeg4/File.cs:
* src/TagLib/NonContainer/File.cs:
* src/TagLib/Asf/File.cs:
* src/TagLib/Ogg/File.cs:
* src/TagLib/File.cs: Added InvariantStartPosition and
InvariantEndPosition describing the invariant/media section of the file
that should be uneffected by TagLib# write operations. (Thanks to AgentS
and kajic for their feature requests.)
* configure.ac: Now 2.0.2.4
2007-08-02 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Id3v2/Frame.cs: Files were throwing ArgumentOutOfRange
exceptions after the changes on 2007-07-29. It now checks that the
ByteVector contains enough bytes and if not throws a
CorruptFileException. (Caught in TagLib.Id3v2.Tag)
* src/TagLib/Mpeg/AudioFile.cs: Limit scanning to only the first 0x4000
bytes of the audio stream to avoid reading bad files forever. I got no
false negatives at 0x1000 so I'm hoping this is enough. If not, I can
throttle it up more. (Thanks to its-me for the bug report.)
* configure.ac: Now 2.0.2.3
2007-07-29 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/CombinedTag.cs: Fully documented and replaced the protected
constructor with a public one, as it wasn't protecting anything and
causing a compiler error in Orcas. (Thanks to jmurphy for the bug
report.)
* src/TagLib/ByteVectorList.cs: Reformatted code. I had beautiful
documentation, but MonoDevelop crashed. :(
* src/TagLib/ByteVector.cs: Started documenting and adding some
exceptions rather than letting them occur in the underlying methods.
* src/TagLib/ListBase.cs: Reformatted code.
* src/TagLib/File.cs: Added total documentation.
* src/TagLib/Debugger.cs: Reformatted code.
* src/Makefile.am:
* Makefile.am: Added MonoDevelop files to EXTRA_DIST. (Thanks to jopsen
for pointing this out.)
* configure.ac: Now 2.0.2.2
2007-07-22 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Id3v2/Tag.cs:
* src/TagLib/Ape/Tag.cs:
* src/TagLib/Ogg/XiphComment.cs: Parse beats per minute as floating
point numbers, round them, and then convert them to uints. Values were
showing up as 0 if a decimal point was present. (Thanks to nokturnal for
the bug report.)
* src/TagLib/ByteVector.cs: Switch back from "_data" to "data"
* src/TagLib/ICodec.cs: Minor reorganization.
* src/TagLib/Genres.cs:
* src/TagLib/Properties.cs:
* src/TagLib/SupportedMimeType.cs:
* src/TagLib/StringList.cs:
* src/TagLib/FileTypes.cs:
* src/TagLib/Tag.cs:
* src/TagLib/Picture.cs:
* src/TagLib/File.cs:
* src/TagLib/ReadOnlyByteVector.cs: Documentation.
* configure.ac: Now 2.0.2.1
2007-07-03 Brian Nickel <brian.nickel@gmail.com>
+-------------+
| VERSON BUMP |
| 2.0.2 |
+-------------+
* src/TagLib/Id3v2/Frames/MusicCdIdentifierFrame.cs: Fix docs.
* src/TagLib/File.cs: Some doc work.
* src/AssemblyInfo.cs.in: Conditionally sign the assembly.
* src/AssemblyInfo-windows.cs: DELETED. AssemblyInfo.cs.in is all that's
necessary.
* src/Makefile.am: Add distwin target
* windows-files/TagLibSharpDocs.chm: Added.
* configure.ac: Don't use svn revision because it is greater than
ushort.MaxValue.
* Makefile.am: Add distwin target.
* NEWS: Updated for new release.
* src/taglib-sharp.mdp:
* taglib-sharp.csproj: Use AssemblyInfo.cs.
2007-06-27 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Id3v2/Frames/AttachedPictureFrame.cs: Fixed reading problem
with UTF-16 encoded descriptions. (Thanks to renzska for the bug
report.)
* src/TagLib/Id3v2/Frames/RelativeVolumeFrame.cs:
* src/TagLib/Id3v2/Frames/CommentsFrame.cs:
* src/TagLib/Id3v2/Frames/GeneralEncapsulatedObjectFrame.cs: Use Mono
coding guidelines.
* src/TagLib/Asf/File.cs: Added ReadObject and detection of
HeaderExtensionObject.
* src/TagLib/TagLib.sources: Added HeaderExtensionObject.cs
* src/TagLib/Asf/HeaderExtensionObject.cs: ADDED. This will be used to
store large objects in the future (pictures bigger than 64k).
* src/TagLib/Asf/Guid.cs: Added GUID's for HeaderExtensionObject.
* src/AssemblyInfo.cs.in: Cleaned up.
* src/AssemblyInfo-windows.cs: Cleaned up.
* src/taglib-sharp.mdp: Added HeaderExtensionObject.cs
* configure.ac: Removed extra line.
* taglib-sharp.csproj: Added HeaderExtensionObject.cs
2007-06-26 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Id3v2/Frames/CommentsFrame.cs: Readd ToString.
* src/TagLib/Mpeg/XingHeader.cs: Don't throw an exception just because
the header doesn't contain everything we want.
* src/TagLib/Mpeg/AudioHeader.cs: Prevent infinite loop. (Thanks to
sambeckett for the bug report.) Add "VBR" to the description if a Xing
header is present.
* tests/fixtures/TagLib.FormatTests/FlacFormatTest.cs:
* tests/fixtures/TagLib.FormatTests/Id3V1FormatTest.cs:
* tests/fixtures/TagLib.FormatTests/Id3V2FormatTest.cs:
* tests/fixtures/TagLib.FormatTests/AsfFormatTest.cs:
* tests/fixtures/TagLib.FormatTests/Id3BothFormatTest.cs:
* tests/fixtures/TagLib.FormatTests/OggFormatTest.cs:
* tests/fixtures/TagLib.FormatTests/MpcFormatTest.cs:
* tests/fixtures/TagLib.FormatTests/M4aFormatTest.cs: Use Performers
instead of Artists.
2007-06-26 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/CorruptFileException.cs:
* src/TagLib/Id3v2/Frames/CommentsFrame.cs:
* src/TagLib/Id3v2/Frames/AttachedPictureFrame.cs:
* src/TagLib/Id3v2/Frames/PrivateFrame.cs:
* src/TagLib/Id3v2/Frames/MusicCdIdentifierFrame.cs:
* src/TagLib/Id3v2/Frames/PlayCountFrame.cs:
* src/TagLib/UnsupportedFormatException.cs: Added XML documentation.
* src/TagLib/Tag.cs: Started XML documentation. Artists was pointing
nowhere. Pointed at Performers.
* src/TagLib/ByteVector.cs: ByteVector.Find was not returning -1 if
searching at (data.Count == pattern.Count + offset). Caused extra '\0'
to appear in comment frames. (Thanks to gozza11 for the bug report.)
* src/taglib-sharp.mdp:
* configure.ac: Work with "make distcheck"
* Makefile.am: Include "svn-version" in dist.
2007-06-25 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Id3v2/Frames/PrivateFrame.cs: Set to this.data instead of
data in constructor. Thanks to pipes for the bug report.)
* configure.ac: Make the fourth part of the assembly version equal to
the SVN revision.
2007-06-24 Brian Nickel <brian.nickel@gmail.com>
+-------------+
| VERSON BUMP |
| 2.0.1 |
+-------------+
* src/AssemblyInfo.cs.in:
* configure.ac:
* src/Makefile.am:
* src/policy.2.0.taglib-sharp.config.in: Install a policy in GAC so
assemblies compiled against older versions use 2.0.1.0.
* src/AssemblyInfo-windows.cs: Version bump.
* NEWS: Information on new release.
2007-06-24 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Id3v2/Tag.cs: Fixed bug in commit from 2007-06-20.
TPE2 and TPE1 were being swapped when they were stored. (Thanks to
jmurphy for the but report.)
2007-06-24 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Id3v2/Frames/CommentsFrame.cs: Split the string into 3
pieces instead of 2. This way nil delimiters and badly formatted strings
don't mess up the value. (Thanks to gozza11 for the but report.)
2007-06-22 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Id3v2/Tag.cs: Remove picture frames if Picture is set to
null or an empty array. (Thanks to wilson for the but report.)
2007-06-20 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Mpeg4/AppleTag.cs:
* src/TagLib/Asf/Tag.cs: Don't return Performers if AlbumArtists is not
found. This, provided with the second to last commit should resolve
inconsistancies in the behaviour. (Thanks to JustinC for the bug
report, otherwise that travesty that is the previous implementation may
have gone on forever.)
* src/TagLib/Tag.cs: Fix typos.
2007-06-20 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Id3v2/Frames/UnsynchronisedLyricsFrame.cs:
* src/TagLib/Id3v2/Frames/RelativeVolumeFrame.cs:
* src/TagLib/Id3v2/Frames/CommentsFrame.cs:
* src/TagLib/Id3v2/Frames/SynchronizedLyricsFrame.cs:
* src/TagLib/Id3v2/Frames/AttachedPictureFrame.cs:
* src/TagLib/Id3v2/Frames/UniqueFileIdentifierFrame.cs:
* src/TagLib/Id3v2/Frames/PrivateFrame.cs:
* src/TagLib/Id3v2/Frames/GeneralEncapsulatedObjectFrame.cs:
* src/TagLib/Id3v2/Frames/TextIdentificationFrame.cs: Use
ByteVector.TextDelimiter instead of Frame.TextDelimiter.
* src/TagLib/Id3v2/Frame.cs: Mark TextDelimiter as obsolete.
* src/TagLib/ByteVector.cs: Add TextDelimiter method.
* src/TagLib/Asf/Tag.cs: Discard new pictures if their rendered size is
greater than 64KB to avoid corrupting files. (Thanks to renzska for the
bug report.)
2007-06-20 Brian Nickel <brian.nickel@gmail.com>
* src/TagLib/Id3v1/Tag.cs: Rework to match Picard specs.
* src/TagLib/Riff/DivXTag.cs: Rework to match Picard specs.
* src/TagLib/Riff/MovieIdTag.cs: Rework to match Picard specs.
* src/TagLib/Id3v2/Tag.cs: Rework to match Picard specs.
* src/TagLib/Ape/Tag.cs: Rework to match Picard specs.
* src/TagLib/Ogg/XiphComment.cs: Rework to match Picard specs.
* src/TagLib/Tag.cs: Added JoinedAlbumArtists and FirstAlbumArtist.
Changed JoinedArtists and FirstArtist to point to Performers (marked as
obsolete), and added Artists which points to Performers (also obsolete).
This should aleviate confusion.
2007-06-12 Brian Nickel
* src/TagLib/Mpeg4/File.cs: Fix support for writing files that don't
have UTDA tags. (Thanks to renzska for the bug report.)
* src/TagLib/Mpeg4/Box.cs: Fix support for clearing boxes. (Thanks to
maciej for the bug report.) Calculate padding size based on DataSize
rather than header.DataSize. Fixes problem where 4 bytes are added on
every save. (Discovered in bug report by lindea.)
* src/TagLib/Riff/WaveFormatEx.cs: Recognize WMA Lossless. (Thanks to
JustinC for the patch.)
* ALSO: Thanks to JustinC for reminding me to credit people for their
contributions. With the countless audio and video files in existence,
TagLib# would be far less complete and considerably buggier if not for
everyone's contributions. Thank you!