Correct satellite delivery descriptor parsing.
authorTony Houghton <h@realh.co.uk>
Wed, 13 Jul 2011 18:25:08 +0000 (19:25 +0100)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Thu, 21 Jun 2012 10:37:21 +0000 (11:37 +0100)
Original code to parse satellite delivery descriptors to generate
"satellite" structures appeared to be copy & pasted from cable's code
without amending for satellite.

Also added 8PSK to dvbsrc's enum for modulation.

https://bugzilla.gnome.org/show_bug.cgi?id=654485

Conflicts:

gst/mpegdemux/gstmpegdesc.h
gst/mpegdemux/mpegtspacketizer.c

gst/mpegtsdemux/gstmpegdesc.h
gst/mpegtsdemux/mpegtspacketizer.c
sys/dvb/gstdvbsrc.c

index d773f81..2e98a87 100644 (file)
 #define DESC_DVB_SATELLITE_DELIVERY_SYSTEM_orbital_position(desc)      (desc + 6)
 #define DESC_DVB_SATELLITE_DELIVERY_SYSTEM_west_east_flag(desc)        ((desc[8] & 0x80) == 0x80)
 #define DESC_DVB_SATELLITE_DELIVERY_SYSTEM_polarization(desc)  ((desc[8] >> 5) & 0x3)
-#define DESC_DVB_SATELLITE_DELIVERY_SYSTEM_modulation(desc)    (desc[8] & 0x1F)
+#define DESC_DVB_SATELLITE_DELIVERY_SYSTEM_modulation(desc)    (desc[8] & 0x3)
 #define DESC_DVB_SATELLITE_DELIVERY_SYSTEM_symbol_rate(desc)   (desc + 9)
 #define DESC_DVB_SATELLITE_DELIVERY_SYSTEM_fec_inner(desc)     (desc[12] & 0x0F)
 
index 16cfc53..45c9fcf 100644 (file)
@@ -1086,25 +1086,20 @@ mpegts_packetizer_parse_nit (MpegTSPacketizer2 * packetizer,
         }
         switch (modulation) {
           case 0x00:
-            modulation_str = "undefined";
+            modulation_str = "auto";
             break;
           case 0x01:
-            modulation_str = "QAM16";
+            modulation_str = "QPSK";
             break;
           case 0x02:
-            modulation_str = "QAM32";
+            modulation_str = "8PSK";
             break;
           case 0x03:
-            modulation_str = "QAM64";
-            break;
-          case 0x04:
-            modulation_str = "QAM128";
-            break;
-          case 0x05:
-            modulation_str = "QAM256";
+            modulation_str = "QAM16";
             break;
           default:
-            modulation_str = "reserved";
+            modulation_str = "";
+            break;
         }
         delivery_structure = gst_structure_new ("satellite",
             "orbital", G_TYPE_FLOAT, orbital,
index a71b9f6..3a83a40 100644 (file)
@@ -155,6 +155,7 @@ gst_dvbsrc_modulation_get_type (void)
     {QAM_AUTO, "AUTO", "auto"},
     {VSB_8, "8VSB", "8vsb"},
     {VSB_16, "16VSB", "16vsb"},
+    {PSK_8, "8PSK", "8psk"},
     {0, NULL, NULL},
   };