From 0051f72b78d86135f5a4c38cfd07314d9cdc0a7b Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Wed, 11 Jun 2014 19:02:21 +0200 Subject: [PATCH] tsdemux: do not show continuity error in first seconds of streaming Most hardware stabilizes things after tuning and these messages are irritating. --- src/input/mpegts/tsdemux.c | 8 +++++--- src/service.c | 1 + src/service.h | 5 +++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/input/mpegts/tsdemux.c b/src/input/mpegts/tsdemux.c index 621a4bfe..ef403c8b 100644 --- a/src/input/mpegts/tsdemux.c +++ b/src/input/mpegts/tsdemux.c @@ -69,9 +69,11 @@ ts_recv_packet0 if(tsb[3] & 0x10) { cc = tsb[3] & 0xf; if(st->es_cc != -1 && cc != st->es_cc) { - /* Incorrect CC */ - limitedlog(&st->es_loglimit_cc, "TS", service_component_nicename(st), - "Continuity counter error"); + /* Let the hardware to stabilize */ + if (t->s_start_time + 1 < dispatch_clock) + /* Incorrect CC */ + limitedlog(&st->es_loglimit_cc, "TS", service_component_nicename(st), + "Continuity counter error"); avgstat_add(&t->s_cc_errors, 1, dispatch_clock); avgstat_add(&st->es_cc_errors, 1, dispatch_clock); diff --git a/src/service.c b/src/service.c index 01e26cb5..5a59de13 100644 --- a/src/service.c +++ b/src/service.c @@ -489,6 +489,7 @@ service_start(service_t *t, int instance) assert(t->s_status != SERVICE_RUNNING); t->s_streaming_status = 0; t->s_scrambled_seen = 0; + t->s_start_time = dispatch_clock; service_build_filter(t); diff --git a/src/service.h b/src/service.h index 977d2912..5e9e446e 100644 --- a/src/service.h +++ b/src/service.h @@ -335,6 +335,11 @@ typedef struct service { * will be set to TRANSPORT_STATUS_NO_INPUT */ gtimer_t s_receive_timer; + /** + * Stream start time + */ + time_t s_start_time; + /********************************************************* *