Función KsPinGetTrailingEdgeStreamPointer (ks.h)
La función KsPinGetTrailingEdgeStreamPointer adquiere el puntero de flujo perimetral final para la cola asociada al pin especificado.
Sintaxis
KSDDKAPI PKSSTREAM_POINTER KsPinGetTrailingEdgeStreamPointer(
[in] PKSPIN Pin,
[in] KSSTREAM_POINTER_STATE State
);
Parámetros
[in] Pin
Puntero a la estructura de KSPIN para cuya cola se va a devolver el puntero de flujo perimetral final.
[in] State
Este parámetro especifica el estado en el que se va a adquirir el puntero de flujo perimetral final. Puede ser uno de los siguientes:
KSSTREAM_POINTER_STATE_UNLOCKED
Adquiera el puntero de flujo de borde inicial independientemente de si hace referencia a una trama de datos o no.
No se puede realizar ningún intento de acceder a los datos asociados al puntero hasta que el puntero esté bloqueado. Tenga en cuenta también que los fotogramas asociados a un puntero de secuencia desbloqueado se pueden cancelar.
KSSTREAM_POINTER_STATE_LOCKED
Adquiera y bloquee el puntero de flujo de borde inicial. Si no hay ninguna trama de datos asociada al puntero de flujo, devuelva NULL. Si se devuelve un punterono null, es un puntero de flujo bloqueado y tiene una trama de datos asociada. Los marcos asociados a un puntero de flujo bloqueado no se pueden cancelar.
Valor devuelto
KsPinGetTrailingEdgeStreamPointer devuelve un puntero a una estructura de KSSTREAM_POINTER que representa el puntero de flujo perimetral final o null. Un valor devuelto de NULL puede indicar que no hay ningún borde final para la cola asociada al pin. En este caso, el descriptor de patillas probablemente no especifique que la patilla debe tener un borde final distinto. Como alternativa, NULL puede indicar que no hay ninguna cola asociada con el pin. En este caso, el pin en cuestión no usa el mecanismo de transporte estándar. Un valor devuelto de NULL también puede indicar que se produjo un error al intentar bloquear el borde final. En otras palabras, no hay ninguna trama de datos asociada actualmente con el borde inicial.
Observaciones
El puntero de flujo de borde final es un puntero especial en el flujo de datos que existe si y solo si el descriptor de patillas para el pin especifica un borde final distinto. Si este puntero existe, apunta a los datos más antiguos de la cola a menos que un KsStreamPointerAdvanceXxx o una llamada KsStreamPointerUnlock. Los datos más antiguos pueden existir en la cola también si existen punteros de flujo clonados para fotogramas anteriores a los que apunta el borde final.
Los marcos de datos que residen en la ventana entre el puntero de flujo de borde inicial y el puntero de flujo perimetral final tienen al menos un recuento de referencias y, por tanto, no abandonarán la cola y se completarán hasta que salgan de la ventana como resultado del avance del borde final. Tenga en cuenta que los marcos entre el borde inicial y el borde final se no bloqueados de forma predeterminada y, por lo tanto, se pueden cancelar.
KsPinGetTrailingEdgeStreamPointer es principalmente de uso en filtros centrados en patillas. Para obtener más información, consulte Pin-Centric Procesamiento de y procesamiento de Filter-Centric.
KsPinGetTrailingEdgeStreamPointer no funcionará a menos que el descriptor de patilla del pin especifique que la cola debe tener un borde final distinto estableciendo la marca KSPIN_FLAG_DISTINCT_TRAILING_EDGE.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Disponible en Microsoft Windows XP y sistemas operativos posteriores y DirectX 8.0 y versiones posteriores de DirectX. |
de la plataforma de destino de | Universal |
encabezado de | ks.h (incluya Ks.h) |
biblioteca de | Ks.lib |
irQL | <=DISPATCH_LEVEL |
Consulte también
KsPinGetLeadingEdgeStreamPointer