mirror of
https://github.com/taglib/taglib.git
synced 2025-07-27 09:24:25 -04:00
Merge pull request #77 from TsudaKageyu/largefilesupport
Support large files over 2GB
This commit is contained in:
@ -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())
|
||||
|
@ -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 &);
|
||||
|
@ -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()) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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.
|
||||
|
Reference in New Issue
Block a user