nu774 / qaac

CLI QuickTime AAC/ALAC encoder
Other
780 stars 40 forks source link

ERROR: AudioConverterFillComplexBuffer #89

Closed SiV44 closed 1 year ago

SiV44 commented 1 year ago

Hello,

While testing various encoding options, I encountered an error for Stereo 96kHz input:

ERROR: AudioConverterFillComplexBuffer(m_converter, staticInputDataProc, this, &npackets, abl, aspd): -50

This applies to --he encoding in --cvbr mode for 256 and 320 kbps ONLY, 224 kbps and below works, --cbr and --abr modes also work fine for all bitrates from 64 to 320 kbps.

Regards

nu774 commented 1 year ago

Nice find, but the error is happening inside of CoreAudio (maybe due to their bug). It seems the attached very old 32bit CoreAudioToolbox.dll manages to successfully encode with this setting, but I don't think this setting (96kHz + SBR + high bitrate) useful anyway. CoreAudioToolbox.zip

SiV44 commented 1 year ago

Thanks for sharing the core, it works. Since the core is responsible, I assume you are unable to do anything about this error and the only thing I can do is move to 32bit 7.9.8.1 for further testing? Will this change affect encoding quality?

For me it is useful, how much I will know only after all tests are completed. The LC profile is limited to 48kHz so when encoding I have to use 320 kbps so the codec doesn't cut off the highest frequencies. For 44.1kHz, theoretically there is no difference between 256-320 kbps.

Thanks to the core you provided, I know that the HE profile cuts the bandwidth to ~42.8kHz for --cvbr 224, 256 and 320 kbps.

Results for Stereo 24bit 96kHz input:

HE profile: CVBR 320 kbps = ~353 kbps (max 464 kbps) 17 MB. CVBR 256 kbps = ~288 kbps (max 325 kbps) 13.7 MB. CVBE 224 kbps = ~247 kbps (max 286 kbps) 11.9 MB.

I am surprised how efficient the HE profile is.

Regards.