Как правильно это сделать? Предположим, у меня есть поток аудиоданных и я хочу применить к нему несколько аудио фильтров перед записью на диск
Как должен выглядеть интерфейс фильтров?
Sub Process(InputStream as IO.Stream)
или
Function Process(InputStream as IO.Stream) as IO.Stream
Полагаю, мне немного неясно, как потоки должны передаваться между классами и методами. Нужно ли мне читать весь поток в методе, обрабатывать его и затем записывать в новый поток, который возвращается?
А как насчет потоков без фиксированной длины? Я не хочу читать потенциально бесконечный поток в память - я хочу, чтобы каждый фильтр обрабатывал кусок и передавал его следующему фильтру.
Может кто-нибудь указать мне правильное направление?