Я вообще ничинающий, поэтому прошу ногами не пинать

.
Проблема такая: в памяти, в разных буферах, есть куча мелких по размеру мультимедийных данных (wav, mp3, midi, видео разных форматов), задача состоит в том, чтобы проиграть их, используя DirectShow, без предварительного сохранения в виде файлов на диск.
Искал поиском -- не нашёл простого способа. Нашёл пару аналогичных вопросов, либо висящих без ответов, либо ответы меня не устраивают.
Самые близкие темы:
http://www.rsdn.ru/Forum/?mid=1163386Автор: Stanky
Дата: 10.05.05
,
http://www.rsdn.ru/Forum/Message.aspx?mid=868196#868196Автор: al
Дата: 26.10.04
-- к сожалению, здесь в итоге предлагается строить решение на основе примера [DXSDK]\samples\Multimedia\DirectShow\Filters\Async\Memfile.
Насколько я понимаю, асинхронность для меня не принципиальна, а в данном примере она занимает центральную часть, и оттого всё выглядит слишком сложно... Неужели нельзя сделать проигрывание (рендеринг) данных из памяти более
простым способом?
Казалось бы, не должно быть особой разницы, где лежат данные: в пямяти, или в файле. Казалось бы, наоборот, базовый механизм должен быть расчитан на работу с памятью, а подгружение данных из файла в эту память -- вообще левая (по отношению к DirectShow) работа.
Здесь (
http://www.rsdn.ru/Forum/?mid=2049070Автор: SAnatoly
Дата: 09.08.06
) SAnatoly говорит, что использовал класс фильтра наследник CSource, выходной пин наследник CSourceStream. Но, к сожалению, здесь не приводится нужный код... Я не понимаю простой вещи: как передать буфер с данными, не заморачиваясь с разрезанием данных на самплы и пр. Всё, что нужно, это максимально просто (по реализации) скормить данные source-фильтру, и затем попросить граф-билдер зарендерить это дело. С передачей типов медиа-данных, думаю, разберусь сам (они заранее известны).
Пожалуйста, отзовитесь, кто знает и имел опыт. Спасибо.