From: Jaroslav Kysela Date: Fri, 28 Apr 2017 15:16:40 +0000 (+0200) Subject: parsers: allow bigger time diff for DVBSUB X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f82e2dd9c5d15fb0e28cae7d6259412e8e8a0521;p=thirdparty%2Ftvheadend.git parsers: allow bigger time diff for DVBSUB --- diff --git a/src/parsers/parsers.c b/src/parsers/parsers.c index 48baff55b..23465b4ba 100644 --- a/src/parsers/parsers.c +++ b/src/parsers/parsers.c @@ -1828,9 +1828,13 @@ parse_teletext(service_t *t, elementary_stream_t *st, const uint8_t *data, static void parser_deliver(service_t *t, elementary_stream_t *st, th_pkt_t *pkt) { + int64_t diff; + assert(pkt->pkt_type == st->es_type); - if (pts_diff(pkt->pkt_pcr, pkt->pkt_pts) > 2*90000) { + diff = st->es_type == SCT_DVBSUB ? 4*90000 : 2*90000; + + if (pts_diff(pkt->pkt_pcr, pkt->pkt_pts) > diff) { if (tvhlog_limit(&st->es_pcr_log, 2)) tvhwarn(LS_PARSER, "%s: PTS and PCR diff is very large (%"PRId64")", service_component_nicename(st), pts_diff(pkt->pkt_pcr, pkt->pkt_pts)); diff --git a/src/plumbing/tsfix.c b/src/plumbing/tsfix.c index a6b15cb68..866cbd7fd 100644 --- a/src/plumbing/tsfix.c +++ b/src/plumbing/tsfix.c @@ -509,7 +509,7 @@ tsfix_input_packet(tsfix_t *tf, streaming_message_t *sm) LIST_FOREACH(tfs2, &tf->tf_streams, tfs_link) if(tfs2->tfs_audio && tfs2->tfs_last_dts_in != PTS_UNSET) { diff = tsfix_ts_diff(tfs2->tfs_last_dts_in, pkt->pkt_dts); - if (diff > 3 * 90000) { + if (diff > 4 * 90000) { tvhwarn(LS_TSFIX, "The timediff for %s is big (%"PRId64"), using audio dts", streaming_component_type2txt(tfs->tfs_type), diff); tfs->tfs_parent = tfs2;