Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
mpegts input: mpegts_input_recv_packets - add retry, fixes #2470
  • Loading branch information
perexg committed Mar 18, 2016
1 parent fc32a92 commit 4c75447
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions src/input/mpegts/mpegts_input.c
Expand Up @@ -1044,13 +1044,17 @@ mpegts_input_recv_packets
( mpegts_input_t *mi, mpegts_mux_instance_t *mmi, sbuf_t *sb,
int flags, mpegts_pcr_t *pcr )
{
int len2 = 0, off = 0;
int len, len2, off;
mpegts_packet_t *mp;
uint8_t *tsb = sb->sb_data;
int len = sb->sb_ptr;
uint8_t *tsb;
#define MIN_TS_PKT 100
#define MIN_TS_SYN (5*188)

retry:
len2 = 0;
off = 0;
tsb = sb->sb_data;
len = sb->sb_ptr;
if (len < (MIN_TS_PKT * 188) && (flags & MPEGTS_DATA_CC_RESTART) == 0) {
/* For slow streams, check also against the clock */
if (monocmpfastsec(mclk(), mi->mi_last_dispatch))
Expand Down Expand Up @@ -1126,9 +1130,11 @@ mpegts_input_recv_packets

/* Adjust buffer */
end:
if (len && (flags & MPEGTS_DATA_CC_RESTART) == 0)
if (len && (flags & MPEGTS_DATA_CC_RESTART) == 0) {
sbuf_cut(sb, off); // cut off the bottom
else
if (sb->sb_ptr >= MIN_TS_PKT * 188)
goto retry;
} else
sb->sb_ptr = 0; // clear
}

Expand Down

0 comments on commit 4c75447

Please sign in to comment.