cimcim
Messages postés31Date d'inscriptionmardi 11 janvier 2005StatutMembreDernière intervention29 juillet 2010
-
11 déc. 2006 à 14:15
cimcim
Messages postés31Date d'inscriptionmardi 11 janvier 2005StatutMembreDernière intervention29 juillet 2010
-
11 déc. 2006 à 17:29
Bonjour à tous...
Je suis en train d'écrire un décodeur de table sdt (api dvb), mais j'ai un souci lors de l'affectation de ma structure...
En gros, ma structure ressemble à ça :
typedef struct {
u_char table_id : 8;
u_char section_syntax_indicator : 1;
u_char : 3;
u_char section_length_hi : 4;
u_char section_length_lo : 8;
u_char transport_stream_id_hi : 8;
u_char transport_stream_id_lo : 8;
u_char : 2;
u_char version_number : 5;
u_char current_next_indicator : 1;
u_char section_number : 8;
u_char last_section_number : 8;
u_char original_network_id_hi : 8;
u_char original_network_id_lo : 8;
u_char : 8;
} sdt_t;
Et, lorsque je la créé, je l'affecte au passage avec ce que j'ai dans
un buffer (char * buf)... (lecture directe dans le demuxer, ce que j'ai
dans mon buffer correspond à ce que j'attend).
création/affectation :
sdt_t enteteSDT = {buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7], buf[8], buf[9], buf[10]};
Seulement voila... Tout se passe bien (compil, linkage et tout), mais mon buf[1] ne passe pas...
En gros, buf[0] est bien mis dans table_id, buf[1] disparait, et mon
1er octet de buf[2] se retrouve dans section_syntax_indicator...
Je suis obligé d'affecter ma structure en envoyant 2 fois buf[1], mais je ne vois pas pourquoi...
Pour info, buf[1] contient "f2" (en hexa), et il ne me semble pas que ça soit une valeur spéciale (genre \r, \n ou autre).
Ce qui est en bleu est du copié/collé de ma source.. Si il faut d'autres morceaux, merci de me le dire.