summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTony Houghton <h@realh.co.uk>2011-07-13 19:25:08 +0100
committerEdward Hervey <edward.hervey@collabora.co.uk>2012-06-21 11:55:48 +0200
commit07dd35ad73cae9f79f2fac28a38ef2592ebb53a1 (patch)
tree14ba1c06ba20662978066545ddb095af5e009140
parent923cc9ba2e5904440f8cf90f1d15696d16b0015c (diff)
Correct satellite delivery descriptor parsing.
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
-rw-r--r--gst/mpegdemux/gstmpegdesc.h2
-rw-r--r--gst/mpegdemux/mpegtspacketizer.c17
-rw-r--r--gst/mpegtsdemux/gstmpegdesc.h2
-rw-r--r--gst/mpegtsdemux/mpegtspacketizer.c17
-rw-r--r--sys/dvb/gstdvbsrc.c1
5 files changed, 15 insertions, 24 deletions
diff --git a/gst/mpegdemux/gstmpegdesc.h b/gst/mpegdemux/gstmpegdesc.h
index 9e1ae75c8..0493cae89 100644
--- a/gst/mpegdemux/gstmpegdesc.h
+++ b/gst/mpegdemux/gstmpegdesc.h
@@ -281,7 +281,7 @@
#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)
diff --git a/gst/mpegdemux/mpegtspacketizer.c b/gst/mpegdemux/mpegtspacketizer.c
index 089254d2f..87cd517de 100644
--- a/gst/mpegdemux/mpegtspacketizer.c
+++ b/gst/mpegdemux/mpegtspacketizer.c
@@ -878,25 +878,20 @@ mpegts_packetizer_parse_nit (MpegTSPacketizer * 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,
diff --git a/gst/mpegtsdemux/gstmpegdesc.h b/gst/mpegtsdemux/gstmpegdesc.h
index d773f81e9..2e98a8776 100644
--- a/gst/mpegtsdemux/gstmpegdesc.h
+++ b/gst/mpegtsdemux/gstmpegdesc.h
@@ -293,7 +293,7 @@
#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)
diff --git a/gst/mpegtsdemux/mpegtspacketizer.c b/gst/mpegtsdemux/mpegtspacketizer.c
index 5c04cbb89..f346b30ad 100644
--- a/gst/mpegtsdemux/mpegtspacketizer.c
+++ b/gst/mpegtsdemux/mpegtspacketizer.c
@@ -1085,25 +1085,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,
diff --git a/sys/dvb/gstdvbsrc.c b/sys/dvb/gstdvbsrc.c
index 97506d802..d59ead666 100644
--- a/sys/dvb/gstdvbsrc.c
+++ b/sys/dvb/gstdvbsrc.c
@@ -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},
};