{
assert(pkt->pkt_type == st->es_type);
+ if (tvhlog_limit(&st->es_pcr_log, 2)) {
+ if (pts_diff(pkt->pkt_pcr, pkt->pkt_pts) > 2*90000) {
+ tvhwarn(LS_PARSER, "%s: PTS and PCR diff is very large (%"PRId64")",
+ service_component_nicename(st), pts_diff(pkt->pkt_pcr, pkt->pkt_pts));
+ goto end;
+ }
+ }
+
pkt->pkt_componentindex = st->es_index;
pkt_trace(LS_PARSER, pkt, "deliver");
/* Forward packet */
streaming_pad_deliver(&t->s_streaming_pad, streaming_msg_create_pkt(pkt));
+end:
/* Decrease our own reference to the packet */
pkt_ref_dec(pkt);
tvhlog_limit_reset(&st->es_cc_log);
tvhlog_limit_reset(&st->es_pes_log);
+ tvhlog_limit_reset(&st->es_pcr_log);
}
/**