Могу ли я с уверенностью предположить, что в образце назначения, полученном моим DirectShow Transform Filter, уже будет выделена память? - PullRequest
0 голосов
/ 17 ноября 2011

Я написал фильтр DirectShow Transform, используя Delphi 6 и библиотеку DSPACK.Я рассмотрел базовые классы фильтров DSPACK и код, принадлежащий их образцу приложения «WAV Dest», которое является примером фильтра Transform.Насколько я могу судить, принимающий фильтр не выделяет память ни для исходного IMediaSample фильтра Transform, ни для целевых параметров IMediaSample, хотя я вижу, что длина целевого IMediaSample может быть скорректирована с помощью IMediaSample.SetActualLength ().

Я просто хочу убедиться, что могу положиться на код, вызывающий мой фильтр Transform, который уже выделил память для этих двух параметров, поэтому мне не нужно этого делать, если это действительно является частью спецификации DirectShow API.В противном случае, я предполагаю, что мне нужно было бы сделать это распределение самостоятельно, используя CoTaskMemAlloc ().Может ли кто-нибудь дать мне окончательный ответ здесь?

1 Ответ

1 голос
/ 17 ноября 2011

Образцы и распределители . Ожидается, что фильтры будут предварительно распределять буферы путем согласования распределителя с выводом однорангового соединения, и само выделение происходит, когда распределитель фиксируется.

У вас просто нет возможности присвоить себе CoTaskMemAlloc, как вы предложили.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...