Releases: n10v/id3v2
Releases · n10v/id3v2
2.1.4
2.1.3
2.1.2
⚠️ Breaking changes relative to v1
From now on there can be only one attached picture frames (APICs) with same picture type and description. Before it was only one with same description. See issue (#65) and PR (#66). Thanks @tillt for investigation and solution!
🚀 New feature
Support CHAP frames #62 (thanks @takaishi for implementation)
2.0.0
1.2.0
🚀 New feature
🐛 Bug fixes
🏃♀️ Performance
- Improve performance for ISO encoding #61
name old time/op new time/op delta WriteISO-4 21.7µs ± 1% 9.3µs ± 1% -57.01% (p=0.001 n=7+7) name old alloc/op new alloc/op delta WriteISO-4 47.2kB ± 0% 5.2kB ± 0% -88.93% (p=0.001 n=7+7) name old allocs/op new allocs/op delta WriteISO-4 71.0 ± 0% 41.0 ± 0% -42.25% (p=0.001 n=7+7)
1.1.3
1.1.2
🐛 Bug fixes
- Fixed UTF16 decoding and encoding #51 (thanks @tillt)
- Fixed handling of duplicated frames #42 (thanks @AlexisWilke)
- Check frame overflow #39 (thanks @eternal-flame-AD)
- Fixed decoding and encoding of termination bytes #33 (thanks @ericmurmur and @jypelle)
🏠 Internal
- Use Go modules #50
- Add and fix tests 0a57fbf c0bd2d0 88f2646#diff-7d6d396947c2d955d4662722bcb4e86f
1.1.1
// DefaultEncoding returns default encoding of tag.
// Default encoding is used in methods (e.g. SetArtist, SetAlbum ...) for
// setting text frames without the explicit providing of encoding.
func (tag *Tag) DefaultEncoding() Encoding {
return tag.defaultEncoding
}
// SetDefaultEncoding sets default encoding for tag.
// Default encoding is used in methods (e.g. SetArtist, SetAlbum ...) for
// setting text frames without explicit providing encoding.
func (tag *Tag) SetDefaultEncoding(encoding Encoding) {
tag.defaultEncoding = encoding
}
- Add
AddTextFrame
method 7e43476
// AddTextFrame creates the text frame with provided encoding and text
// and adds to tag.
func (tag *Tag) AddTextFrame(id string, encoding Encoding, text string) {
tag.AddFrame(id, TextFrame{Encoding: encoding, Text: text})
}
1.1.0
- Add support for TXXX and UFID frames. Thanks to @robertgzr for PR! #37
- Performance compared to v1.0.2:
name old time/op new time/op delta
ParseAllFrames-4 75.5µs ± 1% 77.4µs ± 5% +2.52% (p=0.008 n=6+7)
ParseAllFramesISO-4 76.4µs ± 0% 77.2µs ± 1% +1.13% (p=0.002 n=6+6)
ParseArtistAndTitle-4 2.39µs ±16% 2.30µs ±21% ~ (p=0.364 n=7+7)
Write-4 6.76µs ± 0% 6.77µs ± 1% ~ (p=0.902 n=7+7)
WriteISO-4 9.43µs ± 1% 9.45µs ± 0% ~ (p=0.535 n=7+7)
name old alloc/op new alloc/op delta
ParseAllFrames-4 263kB ± 0% 263kB ± 0% ~ (p=0.333 n=7+7)
ParseAllFramesISO-4 264kB ± 0% 264kB ± 0% ~ (p=0.512 n=7+7)
ParseArtistAndTitle-4 732B ± 1% 728B ± 1% ~ (p=0.523 n=7+7)
Write-4 2.55kB ± 0% 2.55kB ± 0% ~ (all equal)
WriteISO-4 6.39kB ± 0% 6.39kB ± 0% ~ (p=0.140 n=6+7)
name old allocs/op new allocs/op delta
ParseAllFrames-4 61.0 ± 0% 61.0 ± 0% ~ (all equal)
ParseAllFramesISO-4 66.4 ± 1% 66.6 ± 1% ~ (p=1.000 n=7+7)
ParseArtistAndTitle-4 14.3 ±12% 13.9 ±15% ~ (p=0.592 n=7+7)
Write-4 35.0 ± 0% 35.0 ± 0% ~ (all equal)
WriteISO-4 50.0 ± 0% 50.0 ± 0% ~ (all equal)