Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
USBCAMD2 commence à diffuser en continu sur le canal isochrone en demandant deux transferts de 32 paquets. Chaque paquet a une taille maximale qui correspond à la taille maximale dans le paramètre de remplacement sélectionné.
Note La diffusion en continu dans le pipeline isochrone est indépendante de la diffusion en continu de Microsoft DirectShow.
Les demandes de transfert isochronous à double mémoire tampon sont soumises en permanence à USBCAMD2 et s’arrêtent uniquement lorsque l’une des deux conditions suivantes se produit :
Un état d'arrêt du flux DirectShow est émis (KSSTATE_STOP).
Le minidriver de caméra demande USBCAMD2 d’arrêter le streaming isochronous en passant l’indicateur USBCAMD_STOP_STREAMING dans le paramètre PipeStateFlags dans un appel à USBCAMD_SetIsoPipeState.
Pendant que la diffusion en continu est en cours, USBCAMD2 et le minidriver de caméra répètent le processus suivant jusqu’à ce que la diffusion s’arrête :
USBCAMD2 appelle la fonction de rappel CamProcessUSBPacketEx du minidriver de la caméra (à IRQL = DISPATCH_LEVEL) pour chaque paquet que USBCAMD2 reçoit du pilote de bus USB. Le minidriver de la caméra doit définir les indicateurs d’erreur appropriés dans le cas de conditions d’erreur. Le minidriver doit également définir un nouvel indicateur de trame vidéo si le début d’une nouvelle image vidéo est détecté à l’aide du paramètre FrameComplete de CamProcessUSBPacketEx.
Une fois que le mini-pilote de caméra a déterminé qu’une image vidéo est terminée, USBCAMD2 appelle la fonction de rappel CamProcessRawVideoFrameEx du mini-pilote de caméra (à partir du contexte d’un thread de travail) pour traiter l'image vidéo s’il est nécessaire d’effectuer une conversion de l'espace de couleur ou une décompression. USBCAMD2 retourne une trame brute terminée au pilote de classe stream.sys pour être traitée par le mini-pilote de la caméra à IRQL = PASSIVE_LEVEL. S’il existe des données d’image insuffisantes ou si une erreur s’est produite lors de la décompression en raison de données incorrectes, par exemple, le paramètre BytesReturned sur CamProcessRawVideoFrameEx doit être défini sur 0.