Просто посмотрите код CTransformFilter::Receive() в проекте BaseClasses.
Когда приходит входной сэмпл, фильтр создает новый сэмпл с помощью InitializeOutputSample(), где буфер запрашивается у аллокатора выходного пина, потом новый сэмпл заполняется данными в Transform() и передается вниз (следующему фильтру). Вам нужно у себя переопределить Receive() и на каждый пришедший сэмпл создавать и посылать вниз два.