]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
parsers: allow higher PTS/PCR drift, fixes #4507
authorJaroslav Kysela <perex@perex.cz>
Sun, 3 Sep 2017 13:38:14 +0000 (15:38 +0200)
committerJaroslav Kysela <perex@perex.cz>
Sun, 3 Sep 2017 13:38:14 +0000 (15:38 +0200)
src/parsers/parsers.c
src/service.c

index 16b98a207679a477a10b5934fb05278e4d106ed6..cfb29e3c93aa358c490db536edbe47a4551131bf 100644 (file)
@@ -1843,7 +1843,7 @@ parser_deliver(service_t *t, elementary_stream_t *st, th_pkt_t *pkt)
     goto deliver;
   }
 
-  diff = st->es_type == SCT_DVBSUB ? 6*90000 : 4*90000;
+  diff = st->es_type == SCT_DVBSUB ? 8*90000 : 6*90000;
   d = pts_diff(pkt->pkt_pcr, (pkt->pkt_dts + 30000) & PTS_MASK);
 
   if (d > diff || d == PTS_UNSET) {
index f1690bba5149d3f16c34e15fe60993e98583e7d7..3fc7b26c2bf8d40c5b37d9e6e798a3aabbfc2d04 100644 (file)
@@ -707,13 +707,12 @@ service_start(service_t *t, int instance, int weight, int flags,
 
   pthread_mutex_lock(&t->s_stream_mutex);
   service_build_filter(t);
+  if (service_has_no_audio(t, 1))
+    t->s_pcr_boundary = 6*90000;
   pthread_mutex_unlock(&t->s_stream_mutex);
 
   descrambler_caid_changed(t);
 
-  if (service_has_no_audio(t, 1))
-    t->s_pcr_boundary = 4*90000;
-
   if((r = t->s_start_feed(t, instance, weight, flags)))
     return r;