summaryrefslogtreecommitdiff
path: root/libavformat/mpegts.c
diff options
context:
space:
mode:
authorAviad Rozenhek <aviadr1@gmail.com>2011-09-08 16:18:48 +0300
committerLuca Barbato <lu_zero@gentoo.org>2011-09-11 09:26:21 -0400
commit162f1fbc147bbff6e23b4df1e587cec5d5111052 (patch)
tree3ff61b5be6d8f6b680a7353dbc75b126f772ede2 /libavformat/mpegts.c
parentd162994a81a311a8dd212a50a2d2ad2b088df97f (diff)
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>
Diffstat (limited to 'libavformat/mpegts.c')
-rw-r--r--libavformat/mpegts.c12
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 */
}
}
}