Мне нужно кодировать поток ACM, чтобы вылететь в AAC ELD с помощью библиотеки FDK.
Моя проблема в том, что в моем случае закодированные данные AAC должны быть выровнены на 16 байтов. Т.е. длина его будет разделена на 16.
Я не уверен, как это сделать.
Я попытался добавить 0 в конец закодированных данных, пока они не будут разделены на 16, а затем отправить их в CBC, но есть некоторые декодеры, которым это не нравится.
Я должен добавить заполнение к закодированным данным ACC так, чтобы декодер ACC на другой стороне знал, что с этим делать.
Я не думаю, что библиотека AAC, которую я использую (библиотека FDK), имеет возможность добавить заполнение, поэтому я думаю, что мне нужно будет дополнять закодированные данные AAC самостоятельно?
Можете ли вы сказать мне лучший и простой способ сделать это
Вы пытались добавить 0xE0 (0b11100000) вместо нулей?
Если байт начинает кадр, его три старших бита указывают тип блока. Тип 0b111 указывает на конец кадра. Тип 0 указывает на одноканальный элемент и требует кодированного звука, поэтому вы получаете ошибку при заполнении нулями.
Других решений пока нет …