DÉTERMINER LA DURÉE D'UN FICHIER AVI

Messages postés
968
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
- - Dernière réponse : cs_max12
Messages postés
1496
Date d'inscription
dimanche 19 novembre 2000
Statut
Modérateur
Dernière intervention
7 juillet 2014
- 28 sept. 2007 à 21:03
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/44212-determiner-la-duree-d-un-fichier-avi

Afficher la suite 
cs_juju12
Messages postés
968
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4 -
Tu peux remplacer for(i=0;i<56;i++) getc(...);
par fread(pBuffer,1,56,pFile);

et (256*i==0)? par (!i)? (je comprends pas pourquoi t'as mis ca en fait)

de plus comme tous tes calculs sont statiques tu pourrais les écrire directement sans boucle for.
Digaboy
Messages postés
6
Date d'inscription
mardi 7 août 2007
Statut
Membre
Dernière intervention
27 septembre 2007
-
Merci pour ces conseils

((256*i ==0) ? 1 : 256*i) ceci me permet de décaler la valeur de 0, 8, 16 ou 24 bits. Mais la première valeur ne doit pas être décalé donc lorsque i==0 je dois conserver la valeur de valeur[i] en la multipliant par 1 au lieu de valeur[i]*256*i car ceci est égal à 0.

mais je pense que je vais, comme tu me l'a conseillé, mettre tout en dur dans mon code.
cs_juju12
Messages postés
968
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4 -
Oui c'est juste le 256*i que je trouvais bizarre pas le test.
Autre chose : tu pourrais récupérer directement un int32 au lieu d'additionner les char, du genre fread(&final_time,4,1,file)
Digaboy
Messages postés
6
Date d'inscription
mardi 7 août 2007
Statut
Membre
Dernière intervention
27 septembre 2007
-
merci bien à toi pour cette aide, je ne savais pas que l'on pouvait récupérer 4 bytes d'un coup.
SAKingdom
Messages postés
3213
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
11 -
for(i=0;i<32;i++) fgetc(test);
for(i=0;i<12;i++) fgetc(test);

Inutile de lire des caractères que l'on n'utilise pas (et encore plus de les lire un par un)

À remplacer par fseek