Я хочу передать libsamplerate (библиотека для понижения дискретизации аудиоданных, для которой требуется заполнить следующую структуру:
typedef struct
{ float *data_in, *data_out ;
long input_frames, output_frames ;
long input_frames_used, output_frames_gen ;
int end_of_input ;
double src_ratio ;
} SRC_DATA ;
Поля этой структуры, которые должны быть заполнены вызывающей стороной:
data_in : A pointer to the input data samples.
input_frames : The number of frames of data pointed to by data_in.
data_out : A pointer to the output data samples.
output_frames : Maximum number of frames pointer to by data_out.
src_ratio : Equal to output_sample_rate / input_sample_rate.
end_of_input : Equal to 0 if more input data is available and 1
otherwise.
Чтобы заполнить эту структуру, у меня есть data_in, но я не знаю количество кадров, поэтому не могу определить input_frames. Есть ли простой способ обрезать поток байтов PCM? Так что я могу ввести его в эту функцию также с правильным количеством кадров. (Так что этот вопрос не имеет прямого отношения к libsamplerate)
end_of_input
в структуре). Очевидно, что ваш последний звонок может иметь меньше, когда вы знаете, что находитесь в конце потока. - person marko   schedule 22.07.2013