summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--gst/mpegtsparse/mpegtspacketizer.c7
2 files changed, 11 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 06530a7d..aae05ca3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-04-01 Zaheer Abbas Merali <zaheerabbas at merali dot org>
+
+ * gst/mpegtsparse/mpegtspacketizer.c:
+ Cable delivery subsystem descriptors' frequency's bcd
+ is measured in 100Hz units so adjust multiplier accordingly.
+
2008-04-01 Thijs Vermeir <thijsvermeir@gmail.com>
* configure.ac:
diff --git a/gst/mpegtsparse/mpegtspacketizer.c b/gst/mpegtsparse/mpegtspacketizer.c
index 6e80f051..526a25df 100644
--- a/gst/mpegtsparse/mpegtspacketizer.c
+++ b/gst/mpegtsparse/mpegtspacketizer.c
@@ -941,8 +941,11 @@ mpegts_packetizer_parse_nit (MpegTSPacketizer * packetizer,
guint8 *frequency_bcd =
DESC_DVB_CABLE_DELIVERY_SYSTEM_frequency (delivery);
- guint32 frequency =
- 10 * ((frequency_bcd[3] & 0x0F) +
+ /* see en 300 468 section 6.2.13.1 least significant bcd digit
+ * is measured in 100Hz units so multiplier needs to be 100 to get
+ * into Hz */
+ guint32 frequency = 100 *
+ ((frequency_bcd[3] & 0x0F) +
10 * ((frequency_bcd[3] & 0xF0) >> 4) +
100 * (frequency_bcd[2] & 0x0F) +
1000 * ((frequency_bcd[2] & 0xF0) >> 4) +