Bonjour,
Je suis en train d'écrire un splitter mpg2.
il splitte les données audio et vidéo et les délivre au filtre suivant.
Si je construis un graph, intègre mon filtre, rajoute les différents codecs puis les renderer au bout de ses codecs, ca fonctionne très bien. Vidéo et Audio sont synchronisés sans problèmes.
Déjà pour en arriver la, il m’a fallu pas mal d’heure….
La clock du graph est l'audio renderer.
Maintenant, si je stop mon graph, change la source mpe2 puis relance le graph, les ennuis commencent et mon problème est situé autour de la clock.
Je vois bien que la fonction fillbuffer() de ma pin vidéo est appelé en permanence, mais pas celle de l'audio.
Si par exemple, je regarde le premier flux mpeg2 pendant 10 secondes, lors du 2ème flux mpeg2, je vais commencer à être appelé dans fillbuffer() qu'au bout de 10seconde sur la pin audio
Pour conséquence, je n’ai que la partie vidéo d’affiché pendant 10 seconde, puis l’audio arrive, ca cafouille, puis la vidéo et l’audio se retrouve synchro.
C’est comme si le graph considérait la seconde fois que j’ai déjà fournit les donnée audio sur les 10 premières secondes.
Comment réinitialiser le graph pour que je retrouve un fonctionnement identique a la création du graph ?
Voila, si quelqu’un pouvait me donner un petit coup de pouce.
Merci.
Syleo



Répondre avec citation



Partager