sync w/F-13 branch

This commit is contained in:
Rex Dieter 2010-04-12 17:32:19 +00:00
parent 4ff6ac8e82
commit 886bb70239
5 changed files with 8 additions and 143 deletions

View File

@ -1 +1 @@
taglib-1.6.1.tar.gz
taglib-1.6.2.tar.gz

View File

@ -1 +1 @@
db0502b3c3448ff1f1f9b090c1daa5f7 taglib-1.6.1.tar.gz
7c936a07acfc53b2beda4151a0f66336 taglib-1.6.2.tar.gz

View File

@ -1,30 +0,0 @@
diff -Nur taglib-1.6.1-orig/taglib/fileref.cpp taglib-1.6.1/taglib/fileref.cpp
--- taglib-1.6.1-orig/taglib/fileref.cpp 2009-10-24 14:45:58.000000000 +0200
+++ taglib-1.6.1/taglib/fileref.cpp 2009-11-06 13:16:51.055129147 +0100
@@ -227,6 +227,7 @@
File *file = new Ogg::FLAC::File(fileName, readAudioProperties, audioPropertiesStyle);
if (file->isValid())
return file;
+ delete file;
return new Ogg::Vorbis::File(fileName, readAudioProperties, audioPropertiesStyle);
}
if(ext == "FLAC")
diff -Nur taglib-1.6.1-orig/taglib/flac/flacfile.cpp taglib-1.6.1/taglib/flac/flacfile.cpp
--- taglib-1.6.1-orig/taglib/flac/flacfile.cpp 2009-07-12 23:53:18.000000000 +0200
+++ taglib-1.6.1/taglib/flac/flacfile.cpp 2009-11-06 13:16:42.613128986 +0100
@@ -416,8 +416,13 @@
// Found the vorbis-comment
if(blockType == VorbisComment) {
- d->xiphCommentData = readBlock(length);
- d->hasXiphComment = true;
+ if(!d->hasXiphComment) {
+ d->xiphCommentData = readBlock(length);
+ d->hasXiphComment = true;
+ }
+ else {
+ debug("FLAC::File::scan() -- multiple Vorbis Comment blocks found, using the first one");
+ }
}
nextBlockOffset += length + 4;

View File

@ -1,101 +0,0 @@
--- taglib-1.6.1/taglib/asf/asftag.cpp 2009-09-08 09:26:12.000000000 +0200
+++ taglib-20100126/taglib/asf/asftag.cpp 2009-12-13 19:12:03.000000000 +0100
@@ -105,8 +105,13 @@
unsigned int
ASF::Tag::track() const
{
- if(d->attributeListMap.contains("WM/TrackNumber"))
- return d->attributeListMap["WM/TrackNumber"][0].toString().toInt();
+ if(d->attributeListMap.contains("WM/TrackNumber")) {
+ const ASF::Attribute attr = d->attributeListMap["WM/TrackNumber"][0];
+ if(attr.type() == ASF::Attribute::DWordType)
+ return attr.toUInt();
+ else
+ return attr.toString().toInt();
+ }
if(d->attributeListMap.contains("WM/Track"))
return d->attributeListMap["WM/Track"][0].toUInt();
return 0;
--- taglib-1.6.1/taglib/mpeg/id3v2/id3v2synchdata.cpp 2008-02-06 06:00:24.000000000 +0100
+++ taglib-20100126/taglib/mpeg/id3v2/id3v2synchdata.cpp 2009-12-01 19:12:04.000000000 +0100
@@ -33,10 +33,28 @@
TagLib::uint SynchData::toUInt(const ByteVector &data)
{
uint sum = 0;
+ bool notSynchSafe = false;
int last = data.size() > 4 ? 3 : data.size() - 1;
- for(int i = 0; i <= last; i++)
+ for(int i = 0; i <= last; i++) {
+ if(data[i] & 0x80) {
+ notSynchSafe = true;
+ break;
+ }
+
sum |= (data[i] & 0x7f) << ((last - i) * 7);
+ }
+
+ if(notSynchSafe) {
+ /*
+ * Invalid data; assume this was created by some buggy software that just
+ * put normal integers here rather than syncsafe ones, and try it that
+ * way.
+ */
+ sum = 0;
+ for(int i = 0; i <= last; i++)
+ sum |= data[i] << ((last - i) * 8);
+ }
return sum;
}
--- taglib-1.6.1/taglib/mp4/mp4file.cpp 2009-10-31 09:59:40.000000000 +0100
+++ taglib-20100126/taglib/mp4/mp4file.cpp 2009-12-15 19:12:03.000000000 +0100
@@ -113,6 +113,13 @@
return;
}
+ // must have a moov atom, otherwise consider it invalid
+ MP4::Atom *moov = d->atoms->find("moov");
+ if(!moov) {
+ setValid(false);
+ return;
+ }
+
d->tag = new Tag(this, d->atoms);
if(readProperties) {
d->properties = new Properties(this, d->atoms, audioPropertiesStyle);
--- taglib-1.6.1/taglib/mp4/mp4tag.cpp 2009-10-29 16:53:20.000000000 +0100
+++ taglib-20100126/taglib/mp4/mp4tag.cpp 2010-01-24 19:12:02.000000000 +0100
@@ -42,12 +42,12 @@
public:
TagPrivate() : file(0), atoms(0) {}
~TagPrivate() {}
- File *file;
+ TagLib::File *file;
Atoms *atoms;
ItemListMap items;
};
-MP4::Tag::Tag(File *file, MP4::Atoms *atoms)
+MP4::Tag::Tag(TagLib::File *file, MP4::Atoms *atoms)
{
d = new TagPrivate;
d->file = file;
@@ -270,7 +270,7 @@
ByteVector::fromShort(item.toIntPair().first) +
ByteVector::fromShort(item.toIntPair().second) +
ByteVector(2, '\0'));
- return renderData(name, 0x15, data);
+ return renderData(name, 0x00, data);
}
ByteVector
@@ -280,7 +280,7 @@
data.append(ByteVector(2, '\0') +
ByteVector::fromShort(item.toIntPair().first) +
ByteVector::fromShort(item.toIntPair().second));
- return renderData(name, 0x15, data);
+ return renderData(name, 0x00, data);
}
ByteVector

View File

@ -11,8 +11,8 @@
%global apidocdir __api-doc_fedora
Name: taglib
Version: 1.6.1
Release: 3%{?dist}
Version: 1.6.2
Release: 1%{?dist}
Summary: Audio Meta-Data Library
Group: System Environment/Libraries
@ -30,9 +30,6 @@ Patch1: taglib-1.5b1-multilib.patch
# try 2, kiss omit -L%_libdir
Patch2: taglib-1.5rc1-multilib.patch
Patch3: taglib-1.6.1-20091103.patch
Patch4: taglib-1.6.1-20100126.patch
BuildRequires: cmake
BuildRequires: pkgconfig
BuildRequires: zlib-devel
@ -56,10 +53,9 @@ Speex, WavPack, TrueAudio files, as well as APE Tags.
%package doc
Summary: API Documentation for %{name}
Group: Documentation
%if 0%{?fedora} > 9
%if 0%{?fedora} > 9 || 0%{?rhel} > 5
BuildArch: noarch
%endif
%description doc
This is API documentation generated from the TagLib source code.
%endif
@ -85,9 +81,6 @@ Files needed when building software with %{name}.
## omit for now
%patch2 -p1 -b .multilib
%patch3 -p1 -b .20091103
%patch4 -p1 -b .20100126
%build
mkdir -p %{_target_platform}
@ -159,6 +152,9 @@ rm -rf %{buildroot}
%changelog
* Fri Apr 09 2010 Rex Dieter <rdieter@fedoraproject.org> - 1.6.2-1
- taglib-1.6.2
* Tue Jan 26 2010 Michael Schwendt <mschwendt@fedoraproject.org> - 1.6.1-3
- Update with four post-1.6.1 fixes from 20100126
(r1056922, r1062026, r1062426, r1078611).