mirror of https://github.com/nu774/fdkaac.git
Compare commits
5 Commits
1a1ee2924f
...
03c3c60191
Author | SHA1 | Date |
---|---|---|
nu774 | 03c3c60191 | |
nu774 | 59455af10a | |
nu774 | ae1f4c3afd | |
nu774 | 0ce71d066a | |
nu774 | ecddb7d633 |
16
ChangeLog
16
ChangeLog
|
@ -1,12 +1,24 @@
|
||||||
2022-07-13 nu774 <honeycomb77@gmail.com>
|
2022-08-04 nu774 <honeycomb77@gmail.com>
|
||||||
|
|
||||||
* bump [HEAD -> master]
|
* bump [HEAD -> master]
|
||||||
|
|
||||||
|
* fdk-aac.vcxproj: support vs2022
|
||||||
|
|
||||||
|
* extrapolater: don't return more samples than required
|
||||||
|
|
||||||
|
* wav/caf parser: add format checks
|
||||||
|
|
||||||
|
2022-07-13 nu774 <honeycomb77@gmail.com>
|
||||||
|
|
||||||
|
* update ChangeLog [origin/master]
|
||||||
|
|
||||||
|
* bump [v1.0.3]
|
||||||
|
|
||||||
* wav/caf parser: ensure fmt/desc chunk
|
* wav/caf parser: ensure fmt/desc chunk
|
||||||
|
|
||||||
2021-11-15 nu774 <honeycomb77@gmail.com>
|
2021-11-15 nu774 <honeycomb77@gmail.com>
|
||||||
|
|
||||||
* vcxproj: support Visual Studio 2022 [origin/master]
|
* vcxproj: support Visual Studio 2022
|
||||||
|
|
||||||
2021-04-23 nu774 <honeycomb77@gmail.com>
|
2021-04-23 nu774 <honeycomb77@gmail.com>
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
<RootNamespace>fdk-aac</RootNamespace>
|
<RootNamespace>fdk-aac</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
|
<PlatformToolset Condition="'$(PlatformToolset)' == '' and '$(MSBuildToolsVersion)' == '17.0'">v143</PlatformToolset>
|
||||||
<PlatformToolset Condition="'$(PlatformToolset)' == '' and '$(MSBuildToolsVersion)' == '16.0'">v142</PlatformToolset>
|
<PlatformToolset Condition="'$(PlatformToolset)' == '' and '$(MSBuildToolsVersion)' == '16.0'">v142</PlatformToolset>
|
||||||
<PlatformToolset Condition="'$(PlatformToolset)' == '' and '$(MSBuildToolsVersion)' == '15.0'">v141_xp</PlatformToolset>
|
<PlatformToolset Condition="'$(PlatformToolset)' == '' and '$(MSBuildToolsVersion)' == '15.0'">v141_xp</PlatformToolset>
|
||||||
<PlatformToolset Condition="'$(PlatformToolset)' == '' and '$(MSBuildToolsVersion)' == '14.0'">v140_xp</PlatformToolset>
|
<PlatformToolset Condition="'$(PlatformToolset)' == '' and '$(MSBuildToolsVersion)' == '14.0'">v140_xp</PlatformToolset>
|
||||||
|
|
|
@ -75,8 +75,10 @@ int caf_desc(caf_reader_t *reader, int64_t chunk_size)
|
||||||
ENSURE(mFormatID == M4AF_FOURCC('l','p','c','m'));
|
ENSURE(mFormatID == M4AF_FOURCC('l','p','c','m'));
|
||||||
ENSURE(mSampleRate && mBytesPerPacket &&
|
ENSURE(mSampleRate && mBytesPerPacket &&
|
||||||
mChannelsPerFrame >= 1 && mChannelsPerFrame <= 8 &&
|
mChannelsPerFrame >= 1 && mChannelsPerFrame <= 8 &&
|
||||||
mBitsPerChannel && mFramesPerPacket == 1 &&
|
mBitsPerChannel > 0 && mBitsPerChannel < 256 &&
|
||||||
|
mFramesPerPacket == 1 &&
|
||||||
mBytesPerPacket % mChannelsPerFrame == 0 &&
|
mBytesPerPacket % mChannelsPerFrame == 0 &&
|
||||||
|
mBytesPerPacket < 256 &&
|
||||||
mBytesPerPacket >= mChannelsPerFrame * ((mBitsPerChannel + 7) / 8));
|
mBytesPerPacket >= mChannelsPerFrame * ((mBitsPerChannel + 7) / 8));
|
||||||
|
|
||||||
desc->sample_rate = mSampleRate;
|
desc->sample_rate = mSampleRate;
|
||||||
|
|
|
@ -144,17 +144,22 @@ static int process1(extrapolater_t *self, void *buffer, unsigned nframes)
|
||||||
assert(bp->count <= nframes);
|
assert(bp->count <= nframes);
|
||||||
memcpy(buffer, bp->data, bp->count * sfmt->bytes_per_frame);
|
memcpy(buffer, bp->data, bp->count * sfmt->bytes_per_frame);
|
||||||
if (!fetch(self, nframes)) {
|
if (!fetch(self, nframes)) {
|
||||||
|
// got EOF
|
||||||
buffer_t *bbp = &self->buffer[self->nbuffer];
|
buffer_t *bbp = &self->buffer[self->nbuffer];
|
||||||
if (bp->count < 2 * LPC_ORDER) {
|
if (bp->count < 2 * LPC_ORDER) {
|
||||||
|
// final frame is too short, so we join with the pre-final frame
|
||||||
size_t total = bp->count + bbp->count;
|
size_t total = bp->count + bbp->count;
|
||||||
if (bbp->count &&
|
if (bbp->count &&
|
||||||
realloc_buffer(bbp, total * sfmt->bytes_per_frame) == 0 &&
|
realloc_buffer(bbp, total * sfmt->bytes_per_frame) == 0 &&
|
||||||
realloc_buffer(bp, total * sfmt->bytes_per_frame) == 0)
|
realloc_buffer(bp, total * sfmt->bytes_per_frame) == 0)
|
||||||
{
|
{
|
||||||
memcpy(bbp->data + bbp->count * sfmt->channels_per_frame,
|
memcpy(bbp->data + bbp->count * sfmt->channels_per_frame,
|
||||||
bp->data, bp->count * sfmt->bytes_per_frame);
|
bp->data,
|
||||||
memcpy(bp->data, bbp->data, total * sfmt->bytes_per_frame);
|
bp->count * sfmt->bytes_per_frame);
|
||||||
bp->count = total;
|
memcpy(bp->data,
|
||||||
|
bbp->data + bp->count * sfmt->channels_per_frame,
|
||||||
|
bbp->count * sfmt->bytes_per_frame);
|
||||||
|
bp->count = bbp->count;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (bp->count >= 2 * LPC_ORDER)
|
if (bp->count >= 2 * LPC_ORDER)
|
||||||
|
|
|
@ -113,8 +113,10 @@ int wav_fmt(wav_reader_t *reader, uint32_t size)
|
||||||
wValidBitsPerSample = wBitsPerSample;
|
wValidBitsPerSample = wBitsPerSample;
|
||||||
|
|
||||||
ENSURE(wFormatTag == 1 || wFormatTag == 3 || wFormatTag == 0xfffe);
|
ENSURE(wFormatTag == 1 || wFormatTag == 3 || wFormatTag == 0xfffe);
|
||||||
ENSURE(nChannels && nSamplesPerSec && nAvgBytesPerSec &&
|
ENSURE(nChannels > 0 && nChannels <= 8 &&
|
||||||
nBlockAlign && wBitsPerSample && !(wBitsPerSample & 7) &&
|
nSamplesPerSec && nAvgBytesPerSec &&
|
||||||
|
nBlockAlign && nBlockAlign < 256 &&
|
||||||
|
wBitsPerSample && wBitsPerSample < 256 && !(wBitsPerSample & 7) &&
|
||||||
nBlockAlign == nChannels * wBitsPerSample / 8);
|
nBlockAlign == nChannels * wBitsPerSample / 8);
|
||||||
|
|
||||||
if (wFormatTag == 3)
|
if (wFormatTag == 3)
|
||||||
|
|
Loading…
Reference in New Issue