2010-05-27 17 views
1

J'ai ma source [pull] fournissant des données vidéo pour DierctShow VMR9 Renderer, mais le problème est - la source est appelée pour les données 120 fois par seconde (!). Je suppose qu'il y a un paramètre quelque part dans DirectShow/Graph/VMR9 que je peux ajuster pour le rapprocher de la normale de 30 images par seconde. Quelqu'un pourrait-il m'aider?DirectShow - VMR9 Renderer/Graphique appel pour les données vidéo 120 fois par seconde

merci beaucoup!

O.

Répondre

1

Vous couchait horodatages sur les données? Le VMR complètera l'échantillon et attendra le suivant lorsque l'horodatage sera atteint.

+0

non, je ne suis pas, en fait. comment puis-je faire cela? Pouvez-vous me montrer des exemples, s'il vous plaît? merci beaucoup! –

+0

Appelez IMediaSample :: SetTime lorsque vous remplissez l'échantillon avec vos données. Définissez le premier horodatage sur 0 et l'heure d'arrêt doit correspondre à l'heure de début de l'échantillon suivant. Les unités sont 100ns. –

+0

nous avons essayé - obtenu des résultats intéressants: 1) Si je commence par 0, et chaque trame suivante sera 33 millisecondes plus tard, nous obtenons un énorme retard de pipeline de l'entrée à la sortie - nous parlons secondes ... Si nous soustraire 2 secondes - c'est-à-dire, l'horodatage de début est négatif 20000000, puis le délai est parti. 2) dans les deux cas, le rendu VMR9 se produit à 120 fois par seconde - chaque image est rendue 4 fois. bizarre, n'est-ce pas? O. –