Я не смотрел на код SDL, но я думаю, что «куски» предназначены для небольших звуковых сэмплов и кэшируются в памяти, декодируются полностью во время потоковой передачи «музыки» (не кешируются). в памяти во всей ее полноте, но декодируется и буферизируется по мере необходимости, при условии, что она будет, по большей части, воспроизводиться с самого начала и непрерывно с этой точки, иногда, возможно, с некоторым возвратом к началу)
Так что причина в памяти. Вы не хотите декодировать, скажем, 4 минуты 16-битной стереофонической песни в память, так как она будет съедать 44100 Гц * 2 байта * 2 канала * 4 минуты * 60 секунд / мин == 42336000 байт, если вы попытаетесь это сделать, когда вы сможете декодировать и буферизуйте меньшие кусочки.
OTOH, если у вас есть ~ 10 МБ ОЗУ в минуту музыки, чтобы тратить ее впустую, и вам нужен процессор, который будет использоваться при декодировании на лету ... вы, вероятно, можете использовать куски.