libsamplerate: обработка иногда производит образцы, не используя ни одного из входных данных - PullRequest
0 голосов
/ 06 февраля 2020

Я использую libsamplerate в программе на C ++, и она отлично работает. Но иногда, когда я проверяю результат src_process, я вижу, что он использовал 0 входных кадров, но генерировал некоторый вывод. И ошибки нет.

После src_process():

src_data.input_frames -> 1024
src_data.input_frames_used -> 0
src_data.output_frames_gen -> 1024
src_process_error -> 0

Как это может быть? src_data.input_frames_used и src_data.output_frames_gen оба инициализируются внутри src_process(), поэтому это не предыдущее значение (также do c четко определяет его: "Поля input_frames_used и output_frames_gen устанавливаются преобразователем в сообщить вызывающей стороне количество кадров, потребляемых из массива data_in, и количество кадров, сгенерированных в массиве data_out соответственно. Эти значения предназначены только для текущего вызова src_process. ").

Я думал, что это могло бы иметь Обрабатывал ли ранее данные, хранящиеся в объекте SRC_STATE, возможно ли это? Должны ли выходные данные считаться недействительными и отбрасываться?
Я выполняю последовательный вызов src_process() с последовательными порциями данных, и последующие данные происходят правильно, просто время от времени такой результат можно увидеть.

Спасибо за помощь,

...