mirror of
https://github.com/nu774/fdkaac.git
synced 2025-01-06 20:31:04 +01:00
prepend 1 sample zero padding in case of SBR and enc_delay is odd
This is required because odd enc_delay cannot be exactly expressed in downsampled scale, and HE-AACv2 FDK encoder actually has odd enc_delay.
This commit is contained in:
parent
3b518efd31
commit
c5eec15549
10
src/main.c
10
src/main.c
@ -823,6 +823,16 @@ int main(int argc, char **argv)
|
||||
m4af_set_priming_mode(m4af, params.gapless_mode + 1);
|
||||
m4af_begin_write(m4af);
|
||||
}
|
||||
if (sbr_mode && (aacinfo.encoderDelay & 1)) {
|
||||
/*
|
||||
* Since odd delay cannot be exactly expressed in downsampled scale,
|
||||
* we push one zero frame to the encoder here, to make delay even
|
||||
*/
|
||||
int16_t zero[8] = { 0 };
|
||||
aacenc_result_t obuf = { 0 };
|
||||
aac_encode_frame(encoder, sample_format, zero, 1, &obuf);
|
||||
free(obuf.data);
|
||||
}
|
||||
frame_count = encode(¶ms, reader, encoder, aacinfo.frameLength, m4af);
|
||||
if (frame_count < 0)
|
||||
goto END;
|
||||
|
Loading…
Reference in New Issue
Block a user