Merge pull request #77 from TsudaKageyu/largefilesupport

Support large files over 2GB
This commit is contained in:
Lukáš Lalinský
2012-11-04 01:29:45 -07:00
52 changed files with 321 additions and 268 deletions

View File

@ -56,8 +56,8 @@ public:
Properties *properties;
ByteVector streamInfoData;
ByteVector xiphCommentData;
long streamStart;
long streamLength;
offset_t streamStart;
offset_t streamLength;
bool scanned;
bool hasXiphComment;
@ -173,7 +173,7 @@ ByteVector Ogg::FLAC::File::xiphCommentData()
return d->xiphCommentData;
}
long Ogg::FLAC::File::streamLength()
offset_t Ogg::FLAC::File::streamLength()
{
scan();
return d->streamLength;
@ -190,7 +190,7 @@ void Ogg::FLAC::File::scan()
return;
int ipacket = 0;
long overhead = 0;
offset_t overhead = 0;
ByteVector metadataHeader = packet(ipacket);
if(metadataHeader.isNull())

View File

@ -108,7 +108,7 @@ namespace TagLib {
* Returns the length of the audio-stream, used by FLAC::Properties for
* calculating the bitrate.
*/
long streamLength();
offset_t streamLength();
private:
File(const File &);

View File

@ -157,7 +157,7 @@ const Ogg::PageHeader *Ogg::File::firstPageHeader()
if(d->firstPageHeader)
return d->firstPageHeader->isValid() ? d->firstPageHeader : 0;
long firstPageHeaderOffset = find("OggS");
offset_t firstPageHeaderOffset = find("OggS");
if(firstPageHeaderOffset < 0)
return 0;
@ -171,7 +171,7 @@ const Ogg::PageHeader *Ogg::File::lastPageHeader()
if(d->lastPageHeader)
return d->lastPageHeader->isValid() ? d->lastPageHeader : 0;
long lastPageHeaderOffset = rfind("OggS");
offset_t lastPageHeaderOffset = rfind("OggS");
if(lastPageHeaderOffset < 0)
return 0;
@ -224,7 +224,7 @@ Ogg::File::File(IOStream *stream) : TagLib::File(stream)
bool Ogg::File::nextPage()
{
long nextPageOffset;
offset_t nextPageOffset;
int currentPacket;
if(d->pages.isEmpty()) {

View File

@ -35,7 +35,7 @@ using namespace TagLib;
class Ogg::Page::PagePrivate
{
public:
PagePrivate(File *f = 0, long pageOffset = -1) :
PagePrivate(File *f = 0, offset_t pageOffset = -1) :
file(f),
fileOffset(pageOffset),
packetOffset(0),
@ -50,8 +50,8 @@ public:
}
File *file;
long fileOffset;
long packetOffset;
offset_t fileOffset;
offset_t packetOffset;
int dataSize;
List<int> packetSizes;
PageHeader header;
@ -63,7 +63,7 @@ public:
// public members
////////////////////////////////////////////////////////////////////////////////
Ogg::Page::Page(Ogg::File *file, long pageOffset)
Ogg::Page::Page(Ogg::File *file, offset_t pageOffset)
{
d = new PagePrivate(file, pageOffset);
}
@ -73,7 +73,7 @@ Ogg::Page::~Page()
delete d;
}
long Ogg::Page::fileOffset() const
offset_t Ogg::Page::fileOffset() const
{
return d->fileOffset;
}

View File

@ -55,14 +55,14 @@ namespace TagLib {
/*!
* Read an Ogg page from the \a file at the position \a pageOffset.
*/
Page(File *file, long pageOffset);
Page(File *file, offset_t pageOffset);
virtual ~Page();
/*!
* Returns the page's position within the file (in bytes).
*/
long fileOffset() const;
offset_t fileOffset() const;
/*!
* Returns a pointer to the header for this page. This pointer will become

View File

@ -39,7 +39,7 @@ using namespace TagLib;
class Ogg::PageHeader::PageHeaderPrivate
{
public:
PageHeaderPrivate(File *f, long pageOffset) :
PageHeaderPrivate(File *f, offset_t pageOffset) :
file(f),
fileOffset(pageOffset),
isValid(false),
@ -55,7 +55,7 @@ public:
{}
File *file;
long fileOffset;
offset_t fileOffset;
bool isValid;
List<int> packetSizes;
bool firstPacketContinued;
@ -73,7 +73,7 @@ public:
// public members
////////////////////////////////////////////////////////////////////////////////
Ogg::PageHeader::PageHeader(Ogg::File *file, long pageOffset)
Ogg::PageHeader::PageHeader(Ogg::File *file, offset_t pageOffset)
{
d = new PageHeaderPrivate(file, pageOffset);
if(file && pageOffset >= 0)

View File

@ -52,7 +52,7 @@ namespace TagLib {
* create a page with no (and as such, invalid) data that must be set
* later.
*/
PageHeader(File *file = 0, long pageOffset = -1);
PageHeader(File *file = 0, offset_t pageOffset = -1);
/*!
* Deletes this instance of the PageHeader.