From 4f42eb7ef9fb02139c1c8a5385972c45de6992e4 Mon Sep 17 00:00:00 2001 From: Zaheer Abbas Merali Date: Tue, 1 Apr 2008 19:53:53 +0000 Subject: 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. --- gst/mpegtsparse/mpegtspacketizer.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'gst/mpegtsparse') 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) + -- cgit v1.2.1