From 3941ad41dc97bea2a87c3a9e165a251eb551c54f Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Sun, 2 Jun 2013 13:32:01 +0200 Subject: [PATCH 1/6] rds-ctl: fix percentage handling. The block_cnt can be 0, and in that case the percentage becomes -nan. Fix this. Signed-off-by: Hans Verkuil --- utils/rds-ctl/rds-ctl.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/utils/rds-ctl/rds-ctl.cpp b/utils/rds-ctl/rds-ctl.cpp index de76d9f..191cfee 100644 --- a/utils/rds-ctl/rds-ctl.cpp +++ b/utils/rds-ctl/rds-ctl.cpp @@ -523,16 +523,23 @@ static void print_rds_statistics(const struct v4l2_rds_statistics *statistics) printf("received blocks / received groups: %u / %u\n", statistics->block_cnt, statistics->group_cnt); - float block_error_percentage = - ((float)statistics->block_error_cnt / statistics->block_cnt) * 100.0; + float block_error_percentage = 0; + + if (statistics->block_cnt) + block_error_percentage = + ((float)statistics->block_error_cnt / statistics->block_cnt) * 100.0; printf("block errors / group errors: %u (%3.2f%%) / %u \n", statistics->block_error_cnt, block_error_percentage, statistics->group_error_cnt); - float block_corrected_percentage = - ((float)statistics->block_corrected_cnt / statistics->block_cnt) * 100.0; + + float block_corrected_percentage = 0; + + if (statistics->block_cnt) + block_corrected_percentage = ( + (float)statistics->block_corrected_cnt / statistics->block_cnt) * 100.0; printf("corrected blocks: %u (%3.2f%%)\n", statistics->block_corrected_cnt, block_corrected_percentage); - for(int i=0; i<16; i++) + for (int i = 0; i < 16; i++) printf("Group %02d: %u\n", i, statistics->group_type_cnt[i]); } -- 1.8.2.1