Decoupage DWORD

Résolu
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 - 8 sept. 2005 à 23:03
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 9 sept. 2005 à 01:32
Bonsoir tous :p

Enfaite vala mon problème actuel :p



Je récupère le Header d'un fichier MP3, donc qui tiens dans un DWORD ( 32 bits )

Mais le blème c'est que je voudrais accéder aux différents bits :o

Je sais pas trop comment m'y prendre :o



Ptete par décalage non ? c'est bizarre Help me lol :p

if(!Meilleur("Joky")) return ERREUR;

8 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 sept. 2005 à 23:12
avec le & (AND) pour masquer les autres bits.

ciao...
BruNews, MVP VC++
3
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
8 sept. 2005 à 23:14
ah ouai pas bête merci :p
if(!Meilleur("Joky")) return ERREUR;<
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
9 sept. 2005 à 00:25
C'est re moi :) lol

Donc en faite j'ai un autre soucis d'incompréhension :)

Je récupère bien le DWORD en question et il ressemble à ça :)



0x3334449 -> %11001100110100010001001001

Vous remarquerez qu'il manque 6 0 devants mais bon pas d'importance :)

Et donc dans la structure d'un Header d'un fichier Mp3, le découpage se fait :

bits name comments

--------------------------------------------------

11 sync 0xFFF

2 version 1=mpeg1.0, 0=mpeg2.0

2
lay
4-lay = layerI, II or III

1 error protection 0=yes, 1=no

4 bitrate_index see table below

2 sampling_freq see table below

1 padding

1 extension see table below

2 mode see table below

2 mode_ext used with "joint stereo" mode

1 copyright 0=no 1=yes

1 original 0=no 1=yes

2 emphasis see table below

--------------------------------------------------

Mais le blème c'est que les infos de Winamp et les résultats que
j'obtiens sont différents :o. Donc je voudrais savoir si on pour "sync"
les 11 bits sont-ils ceux de poids faibles ou ceux de poids fort ?
J'comprend pas trop lol :)
if(!Meilleur("Joky")) return ERREUR;
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 sept. 2005 à 00:46
doit être écrit dans la doc, non ?
A vue de nez je dirais bits bas car c'est écrit 0xFFF, mais sait-on jamais.

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
9 sept. 2005 à 00:54
Ah en effet j'avais pris la doc la plus basique qu'il soit lol :)

J'ai trouver mieu :)

Donc la réponse :

Sign, Length
(bits), Position
(bits), Description,

----

A, 11, (31-21), Frame sync (all bits set)

Ca veut dire que c'est du poids fort ça non lol ? :)
if(!Meilleur("Joky")) return ERREUR;<
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 sept. 2005 à 01:17
Mais j'y comprends rien à ce tableau, d'hab on écrit l'ordre des bits de la droite (le bit 0) vers la gauche, ici ça ne peut pas correspondre.

ciao...
BruNews, MVP VC++
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
9 sept. 2005 à 01:25
Here is "graphical" presentation of the header content. The
letters are used to indicate the different fields. In the table, you can see
the details about the content of each field.




<tt>
AAAAAAAA AAABBCCD EEEEFFGH IIJJKLMM


</tt>







Sign, Length
(bits), Position
(bits), Description,

----

A, 11, (31-21), Frame sync (all bits set),

----

B, 2, (20,19), MPEG Audio version

00 - MPEG Version 2.5

01 - reserved

10 - MPEG Version 2

11 - MPEG Version 1,

----

C, 2, (18,17), Layer description

00 - reserved

01 - Layer III

10 - Layer II

11 - Layer I

J'ai mis que le début sinon ça aurait été trop lourd lol

Donc apparement quand j'ai un nombre tel que



00000011001100110100010001001001

Et bien j'ai :

00000011001 -> Frame Sync

10 -> MPEG-2

01 -> Layer 3

Mais Winamp me dit que c'est du MPEG 1.0 lol

Trop bizarre

C'est ptete Winamp qui se plante enfin je sais pas j'verrais plus tard :D
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 sept. 2005 à 01:32
Ben voila un vrai tableau avec les positions.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous