par CapJack » 22 Juil 2005 18:20
Je viens aux nouvelles.
Je vais essayer d'expliquer les choses.
Bon, j'ai téléchargé ton fichier, et ce que je peux dire, c'est que ce fichier est hors-norme : il est marqué comme MPEG-2 Layer III, alors que c'est manifestement un MPEG-1 Layer III. Il y a un problème dans les headers de trame. C'est un problème pour le calcul de la fréquence d'échantillonage. D'ailleurs, passe-le dans le média player classic : ce dernier "plante" aussi en renvoyant une durée double de la durée réelle, ce qui est possible suivant la façon dont il est calculé.
Celà étant, ça n'explique pas tout. J'ai été amené à réécrire ma routine de calcul du bitrate, en la rendant plus fine et plus robuste, pour éviter qu'elle synchronise n'importe comment. Du coup, le fichier est accepté, mais le calcul du bitrate prend un temps fou, car conformément à la table du MPEG-2, mon programme le reconnaît comme ayant une fréquence d'échantillonage de 22050 Hz, donc des trames deux fois plus petites que la taille réelle, donc obligé entre chaque trame de parcourir la moitié des données audio pour trouver la trame suivante.
Quand je remplace manuellement la fréquence d'échantillonage par 44100 Hz, le fichier est accepté aussi, mais son bitrate est alors calculé de façon pratiquement instantanée (ce qui nous ramène d'ailleurs à la question posée un moment par gowap, à propos du temps de reconnaissance des VBR)
Arrivé à ce point, j'hésite entre deux solutions : mettre en place un système de reconnaissance "intelligent" de ce genre de problème, ou ajouter une option forçant tous les mp3 à être considérés comme mpeg-1 pour accélérer le travail. J'hésite encore, mais je vous tiens au courant.