From d58afc04154623303ed7fb883d7ed31a8a9f9fdf Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Sun, 5 Apr 2015 20:42:31 +0200 Subject: [PATCH] mpegts: improve streaming latency for low-bandwidth subscriptions --- src/input/mpegts.h | 1 + src/input/mpegts/tsdemux.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/input/mpegts.h b/src/input/mpegts.h index 28bf74f8..66eda6d0 100644 --- a/src/input/mpegts.h +++ b/src/input/mpegts.h @@ -521,6 +521,7 @@ struct mpegts_service * in order to recude load. */ sbuf_t s_tsbuf; + time_t s_tsbuf_last; /** * Average continuity errors diff --git a/src/input/mpegts/tsdemux.c b/src/input/mpegts/tsdemux.c index a5c04610..44750bd9 100644 --- a/src/input/mpegts/tsdemux.c +++ b/src/input/mpegts/tsdemux.c @@ -273,9 +273,11 @@ ts_remux(mpegts_service_t *t, const uint8_t *src, int len, int error) if (error) sb->sb_err++; - if(sb->sb_ptr < TS_REMUX_BUFSIZE) + if(dispatch_clock == t->s_tsbuf_last && sb->sb_ptr < TS_REMUX_BUFSIZE) return; + t->s_tsbuf_last = dispatch_clock; + pb = pktbuf_alloc(sb->sb_data, sb->sb_ptr); pb->pb_err = sb->sb_err;