2014-02-20 1 views
0

Я разбираю некоторую информацию в моем собственном исходном фильтре. Мне нужно отправить эту информацию в мой фильтр преобразования. Как я могу это сделать? Спасибо.Сообщения в DirectShow Graph

ответ

0

Если вы источник, то почему бы не просто расширить CMediaSample class с помощью собственного интерфейса?

Или второй подход заключается в том, чтобы отправить MediaType с каждым образцом, а затем сохранить дополнительные байты в блоке pbFormat.

Если вам нужно отправить информацию на выборочной основе, эти два метода являются наилучшим и самым чистым способом.

0

Стандартная общая передача сообщений для заданной задачи невелика.

  1. Вы можете подключить фильтры снаружи трубопровода и иметь их обмен сообщениями любого рода
  2. С прямой связью между этими двумя, приемник может осуществлять отправитель пользовательского интерфейса будет обнаружить и использовать
  3. же, как 2 выше , но отправитель может ходить вокруг графа, чтобы найти интерфейс интереса (перечисляя подключенные фильтры и булавки)
  4. фильтров может воспользоваться интерфейсом графа IRegisterServiceProvider разоблачить и открыть пользовательские интерфейсы/услуги, представляющие интерес
+0

Может быть, я могу использовать интерфейс IMediaEventSink и создать собственное событие с данными? Мне нужно отправить ~ 5 байт. – fandyushin

+0

'IMediaEventSink' - это не связь фильтра с фильтром. Я не вижу, как вы можете это сделать, находясь в то же время, не уступая пунктам 1-4 выше. –

0

Я выбираю использовать Mailslot. Это нормально.