我使用 Delphi 6 和 DSPACK 库编写了 DirectShow Transform 过滤器。我检查了 DSPACK 基础过滤器类和属于他们的“WAV Dest”示例应用程序的代码,这是一个转换过滤器示例。据我所知,接收过滤器没有为 Transform 过滤器的源 IMediaSample 或目标 IMediaSample 参数分配内存,尽管我确实看到目标 IMediaSample 的长度可能使用 IMediaSample.SetActualLength() 进行了调整。
我只是想确保我可以依赖调用我的转换过滤器的代码已经为这两个参数分配了内存,所以我不必这样做,如果这确实是 DirectShow API 规范的一部分。否则,我假设我需要自己使用 CoTaskMemAlloc() 进行分配。有人可以在这里给我明确的答案吗?