2011-06-15 4 views
3

Dans notre application C# .NET, nous avons deux graphiques de filtre DirectShow montrant chacun un périphérique vidéo et un périphérique audio. Chaque fois que les filtres fonctionnent, l'heure du système est ralentie d'environ 4 à 6 secondes par minute ... Les graphiques ne codent rien, ils affichent simplement ce qui vient des sources.DirectShow provoque le temps de ralentir dans l'application .NET

Cela arrive juste dans l'application et non dans GraphEdit.

Qu'est-ce qui pourrait causer un tel comportement? et que pouvons-nous faire contre?

+0

Assez peu probable que cela affecte réellement l'horloge du système. Ne comptez pas sur les minuteurs que vous définissez pour, disons, une seconde à feu * exactement * après une seconde. Cela prend toujours plus, plus longtemps si votre programme est particulièrement occupé. –

+0

le problème apparaît également sur l'horloge Windows (celle visible dans la barre des tâches). De plus, il affecte également l'horloge graphique DirectShow, ce qui conduit à des fichiers multimédia avec un mauvais timing lors de la capture d'une vidéo. – hanneswurstes

Répondre

6

Je pense que cela doit être un bogue dans l'un des pilotes, le faisant retarder suffisamment les interruptions et assez souvent pour que certaines interruptions de minuterie soient abandonnées. Rien d'autre dans DirectShow ne pourrait affecter l'horloge du système comme ceci.

G

+0

cela semble être la réponse la plus proche, bien que nous utilisions simplement des pilotes Windows qui devraient connaître la bonne gestion des interruptions ... – hanneswurstes

+1

DirectShow bascule la fréquence d'interruption de l'horloge à environ 10 fois le taux d'interruption normal (ou au moins utilisé pour). J'imagine que cela pourrait facilement montrer des problèmes qui ne sont pas apparents lorsque le taux d'interruption de l'horloge est plus faible. –

0

Exécutez-vous votre application sur une machine virtuelle? J'ai déjà eu un problème similaire (pas directement avec DirectShow) et après beaucoup de recherches, nous avons découvert que le problème était lié aux machines virtuelles - le temps peut ralentir dans certaines circonstances.

+0

non .. nous l'exécutons sur un Core i5 (2ème génération), en utilisant Windows 7 x86 enterprise – hanneswurstes

Questions connexes