From 4f42eb7ef9fb02139c1c8a5385972c45de6992e4 Mon Sep 17 00:00:00 2001 From: Zaheer Abbas Merali Date: Tue, 1 Apr 2008 19:53:53 +0000 Subject: [PATCH] gst/mpegtsparse/mpegtspacketizer.c: Cable delivery subsystem descriptors' frequency's bcd is measured in 100Hz units ... Original commit message from CVS: * gst/mpegtsparse/mpegtspacketizer.c: Cable delivery subsystem descriptors' frequency's bcd is measured in 100Hz units so adjust multiplier accordingly. --- ChangeLog | 6 ++++++ gst/mpegtsparse/mpegtspacketizer.c | 7 +++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 06530a7d5e..aae05ca3b2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-04-01 Zaheer Abbas Merali + + * 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 * configure.ac: diff --git a/gst/mpegtsparse/mpegtspacketizer.c b/gst/mpegtsparse/mpegtspacketizer.c index 6e80f0513c..526a25dfda 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) +