Я использую 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()
с последовательными порциями данных, и последующие данные происходят правильно, просто время от времени такой результат можно увидеть.
Спасибо за помощь,