diff --git a/src/rds_groups.c b/src/rds_groups.c index ebe8d80..0cf57f0 100644 --- a/src/rds_groups.c +++ b/src/rds_groups.c @@ -208,7 +208,7 @@ void get_rds_lps_group(RDSEncoder* enc, RDSGroup *group) { group->d |= enc->state[enc->program].lps_text[enc->state[enc->program].lps_state * 4 + 3]; enc->state[enc->program].lps_state++; - if (enc->state[enc->program].lps_state == enc->state[enc->program].lps_segments) enc->state[enc->program].lps_state = 0; + if (enc->state[enc->program].lps_state >= enc->state[enc->program].lps_segments) enc->state[enc->program].lps_state = 0; } void get_rds_ecc_group(RDSEncoder* enc, RDSGroup *group) { diff --git a/src/rds_setters.c b/src/rds_setters.c index d858ed0..0fea8d6 100644 --- a/src/rds_setters.c +++ b/src/rds_setters.c @@ -82,6 +82,7 @@ void set_rds_lps(RDSEncoder* enc, const char *lps) { enc->state[enc->program].lps_segments++; } } else enc->state[enc->program].lps_segments = 8; + if(enc->state[enc->program].lps_segments > 8) enc->state[enc->program].lps_segments = 8; //make sure } void set_rds_ert(RDSEncoder* enc, const char *ert) {