diff options
author | Aviad Rozenhek <aviadr1@gmail.com> | 2011-09-08 16:18:48 +0300 |
---|---|---|
committer | Luca Barbato <lu_zero@gentoo.org> | 2011-09-11 09:26:21 -0400 |
commit | 162f1fbc147bbff6e23b4df1e587cec5d5111052 (patch) | |
tree | 3ff61b5be6d8f6b680a7353dbc75b126f772ede2 | |
parent | d162994a81a311a8dd212a50a2d2ad2b088df97f (diff) | |
download | ffmpeg-162f1fbc147bbff6e23b4df1e587cec5d5111052.tar.gz |
mpegts: on seek, reset the cc for all PIDs
Prevent false positive continuity counter error logs.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
-rw-r--r-- | libavformat/mpegts.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c index a72341865f..41a685c2bb 100644 --- a/libavformat/mpegts.c +++ b/libavformat/mpegts.c @@ -1410,12 +1410,14 @@ static int handle_packets(MpegTSContext *ts, int nb_packets) av_dlog("Skipping after seek\n"); /* seek detected, flush pes buffer */ for (i = 0; i < NB_PID_MAX; i++) { - if (ts->pids[i] && ts->pids[i]->type == MPEGTS_PES) { - PESContext *pes = ts->pids[i]->u.pes_filter.opaque; - av_freep(&pes->buffer); + if (ts->pids[i]) { + if (ts->pids[i]->type == MPEGTS_PES) { + PESContext *pes = ts->pids[i]->u.pes_filter.opaque; + av_freep(&pes->buffer); + pes->data_index = 0; + pes->state = MPEGTS_SKIP; /* skip until pes header */ + } ts->pids[i]->last_cc = -1; - pes->data_index = 0; - pes->state = MPEGTS_SKIP; /* skip until pes header */ } } } |