On Wed, 12 Nov 2008, Alex Betis wrote: > > +if (tn.modulation & 0x04) { > > + printf(" DVB-S2"); > > + if ((tn.modulation & 0x03) == 0x01) printf (" QPSK"); > > + if ((tn.modulation & 0x03) == 0x02) printf (" 8PSK"); > I must be missing something... How this code is aligned to the following > modulation enumeration? > QPSK enumeration has value 0, 8PSK value 9. I don't think it is; it's based on parsing the NIT tables. Now that I look more at my code, this part of which was hacked many months ago and which has since passed from my conscious memory (damn you, beer, solution to and cause of all my problems), the following code snippets appear to be needed for context. Sorry, I honestly can't remember what I needed to hack into dvb-apps/scan to get this, and what was already present but unused... @@ -143,6 +150,7 @@ unsigned int wrong_frequency : 1; /* DVB-T with other_frequency_flag */ int n_other_f; uint32_t *other_f; /* DVB-T freqeuency-list descriptor */ + int modulation; /* XXX HACK */ }; @@ -433,6 +449,7 @@ buf[10], buf[11], buf[12] & 0xf0); + t->modulation = buf[8] & 0x07; t->polarisation = (buf[8] >> 5) & 0x03; t->param.inversion = spectral_inversion; Sorry for the omission. Even though I did sleep twelve hours last night, it hasn't made up for only sleeping two to three hours nightly for the past weeks... Unfortunately, a hex dump of the NIT data isn't so easy to follow, but here's a short example of how `dvbsnoop' spews out data for one select transponder from the tables: Frequency: 19234969 (= 12.58099 GHz) Orbital_position: 402 (= 19.2) West_East_flag: 1 (0x01) [= EAST] Polarisation: 1 (0x01) [= linear - vertical] Kind: 1 (0x01) [= DVB-S2] Roll Off Faktor: 0 (0x00) [= Alpha 0.35] Modulation_type: 2 (0x02) [= 8PSK] Symbol_rate: 2228224 (= 22.0000) FEC_inner: 2 (0x02) [= 2/3 conv. code rate] baryr bouwsma _______________________________________________ linux-dvb mailing list linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb