bool foundLastSyncPattern = false;
ByteVector buffer;
-
+
while(true) {
seek(position);
buffer = readBlock(bufferSize());
if(foundLastSyncPattern && secondSynchByte(buffer[0]))
return position - 1;
-
+
for(uint i = 0; i < buffer.size() - 1; i++) {
if(uchar(buffer[i]) == 0xff && secondSynchByte(buffer[i + 1]))
return position + i;
while (position > 0) {
long size = ulong(position) < bufferSize() ? position : bufferSize();
position -= size;
-
+
seek(position);
buffer = readBlock(size);
if(buffer.size() <= 0)
break;
-
+
if(foundFirstSyncPattern && uchar(buffer[buffer.size() - 1]) == 0xff)
return position + buffer.size() - 1;
-
+
for(int i = buffer.size() - 2; i >= 0; i--) {
if(uchar(buffer[i]) == 0xff && secondSynchByte(buffer[i + 1]))
return position + i;
{ 1152, 1152 }, // Layer II
{ 1152, 576 } // Layer III
};
-
+
d->samplesPerFrame = samplesPerFrame[layerIndex][versionIndex];
// Now that we're done parsing, set this to be a valid frame.