bitrate(0),
sampleRate(0),
channels(0),
- sampleWidth(0)
+ sampleWidth(0),
+ sampleFrames(0)
{
}
int sampleRate;
int channels;
int sampleWidth;
+ uint sampleFrames;
};
////////////////////////////////////////////////////////////////////////////////
return d->sampleWidth;
}
+uint RIFF::AIFF::Properties::sampleFrames() const
+{
+ return d->sampleFrames;
+}
+
////////////////////////////////////////////////////////////////////////////////
// private members
////////////////////////////////////////////////////////////////////////////////
void RIFF::AIFF::Properties::read(const ByteVector &data)
{
d->channels = data.mid(0, 2).toShort();
- uint sampleFrames = data.mid(2, 4).toUInt();
+ d->sampleFrames = data.mid(2, 4).toUInt();
d->sampleWidth = data.mid(6, 2).toShort();
double sampleRate = ConvertFromIeeeExtended(reinterpret_cast<unsigned char *>(data.mid(8, 10).data()));
d->sampleRate = sampleRate;
d->bitrate = (sampleRate * d->sampleWidth * d->channels) / 1000.0;
- d->length = sampleFrames / d->sampleRate;
+ d->length = d->sampleFrames / d->sampleRate;
}
sampleRate(0),
channels(0),
sampleWidth(0),
+ sampleFrames(0),
streamLength(streamLength)
{
int sampleRate;
int channels;
int sampleWidth;
+ uint sampleFrames;
uint streamLength;
};
return d->sampleWidth;
}
+uint RIFF::WAV::Properties::sampleFrames() const
+{
+ return d->sampleFrames;
+}
+
////////////////////////////////////////////////////////////////////////////////
// private members
////////////////////////////////////////////////////////////////////////////////
d->bitrate = byteRate * 8 / 1000;
d->length = byteRate > 0 ? d->streamLength / byteRate : 0;
+ d->sampleFrames = d->streamLength / (d->channels * (d->sampleWidth / 8));
}