diff options
author | Tony Houghton <h@realh.co.uk> | 2011-07-13 19:25:08 +0100 |
---|---|---|
committer | Edward Hervey <edward.hervey@collabora.co.uk> | 2012-06-21 11:55:48 +0200 |
commit | 07dd35ad73cae9f79f2fac28a38ef2592ebb53a1 (patch) | |
tree | 14ba1c06ba20662978066545ddb095af5e009140 | |
parent | 923cc9ba2e5904440f8cf90f1d15696d16b0015c (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.h | 2 | ||||
-rw-r--r-- | gst/mpegdemux/mpegtspacketizer.c | 17 | ||||
-rw-r--r-- | gst/mpegtsdemux/gstmpegdesc.h | 2 | ||||
-rw-r--r-- | gst/mpegtsdemux/mpegtspacketizer.c | 17 | ||||
-rw-r--r-- | sys/dvb/gstdvbsrc.c | 1 |
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}, }; |