[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdesupport/taglib/ogg/flac
From: Allan Sandfeld Jensen <kde () carewolf ! com>
Date: 2005-03-18 0:02:32
Message-ID: 20050318000232.44AE916F45 () office ! kde ! org
[Download RAW message or body]
CVS commit by carewolf:
Support the new OggFLAC 1.0 standard from FLAC 1.1.2
M +26 -6 oggflacfile.cpp 1.5
--- kdesupport/taglib/ogg/flac/oggflacfile.cpp #1.4:1.5
@@ -1,4 +1,4 @@
/***************************************************************************
- copyright : (C) 2004 by Allan Sandfeld Jensen
+ copyright : (C) 2004-2005 by Allan Sandfeld Jensen
email : kde@carewolf.org
***************************************************************************/
@@ -179,14 +179,31 @@ void Ogg::FLAC::File::scan()
return;
- int ipacket = 1;
+ int ipacket = 0;
long overhead = 0;
- ByteVector metadataHeader = packet(ipacket);
+ ByteVector metadataHeader = packet(ipacket++);
+ if(metadataHeader.isNull())
+ return;
+
+ ByteVector header;
+
+ if (!metadataHeader.startsWith("fLaC")) {
+ // FLAC 1.1.2+
+ if (metadataHeader.startsWith("\x7fFLAC")) return;
+
+ if (metadataHeader[5] != 1) return; // not version 1
+
+ metadataHeader = metadataHeader.mid(13);
+ }
+ else {
+ // FLAC 1.1.0 & 1.1.1
+ metadataHeader = packet(ipacket++);
if(metadataHeader.isNull())
return;
- ByteVector header = metadataHeader.mid(0,4);
+ }
+ header = metadataHeader.mid(0,4);
// Header format (from spec):
// <1> Last-metadata-block flag
@@ -216,5 +233,8 @@ void Ogg::FLAC::File::scan()
while(!lastBlock) {
- metadataHeader = packet(++ipacket);
+ metadataHeader = packet(ipacket++);
+
+ if(metadataHeader.isNull())
+ return;
header = metadataHeader.mid(0, 4);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic