在 AVStream 中重启处理
如果满足以下任一条件,AVStream 将停止处理:
在以引脚为中心的环境中,引脚上当前没有数据可用。
在以筛选器为中心的环境中,KSPIN_DESCRIPTOR_EX 结构的Flags 成员未设置KSPIN_FLAG_FRAMES_NOT_REQUIRED_FOR_PROCESSING的至少一个引脚没有等待处理的数据。 默认情况下,不设置此标志。
无论帧可用性如何,微型驱动程序的处理调度回调例程都会返回STATUS_PENDING。 请注意,处理调度可以是 AVStrMiniFilterProcess 或 AVStrMiniPinProcess,具体取决于微型驱动程序是实现 以引脚为中心的处理 还是 以筛选器为中心的处理。
当新数据到达以前空的队列时,AVStream 将启动处理。 因此,如果微型驱动程序的处理调度在关联队列已满时返回STATUS_PENDING,则永远不会调用微型驱动程序来恢复处理。 如果微型驱动程序设置STATUS_PENDING,微型驱动程序必须调用 KsPinAttemptProcessing 或 KsFilterAttemptProcessing 才能继续处理。
如果微型驱动程序实际上不处理数据,请不要从处理调度返回STATUS_SUCCESS。 这会导致 AVStream 立即再次调用微型驱动程序,从而导致 AVStream 和处理调度之间出现无限循环。