Внедрение кадра
По умолчанию в AVStream запрашивающий объект получает пустые кадры из распределителя и помещает их в очередь. Затем мини-driver заполняет кадры путем обработки, ориентированной на закрепление или фильтрацией. Кадры перемещаются по транспорту к следующему объекту в канале, в конечном итоге завершая канал и возвращаясь запросу. AvStream затем повторно использует кадры.
Мини-drivers могут переопределить это поведение по умолчанию с помощью режима внедрения. В режиме внедрения мини-driver отвечает за размещение кадров в канале. Кадры распространяются по каналу по умолчанию. Когда кадры возвращаются к объекту AVStream, на котором они запущены, AVStream вызывает подпрограмму AVStrMiniFrameReturn.
В этой подпрограмме мини-driver может, например, освободить кадр, завершить работу, ожидая возврата кадра, или повторно заполнить и повторно выполнить переопределение кадра.
Чтобы задать режим внедрения, мини-driver вызывает KsPinRegisterFrameReturnCallback и предоставляет указатель на его подпрограмму AVStrMiniFrameReturn .
Не вызывайте KsPinRegisterFrameReturnCallback, если фильтр не находится в состоянии остановки.
Чтобы внедрить кадры в канал, вызовите KsPinSubmitFrame или KsPinSubmitFrameMdl.
На схеме ниже показан набор фильтров AVStream, состоящий из исходного фильтра, неуместного фильтра преобразования и фильтра отрисовки с исходными кадрами внедрения.