Hi, On Mon, Aug 1, 2011 at 9:27 AM, Luca Barbato <[email protected]> wrote: > From: Zohar Kelrich <[email protected]> > > Signed-off-by: Zohar Kelrich <[email protected]> > Signed-off-by: Luca Barbato <[email protected]> > --- > libavformat/mpegts.c | 9 +++++++++ > 1 files changed, 9 insertions(+), 0 deletions(-) > > diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c > index f3b76aa..4685d74 100644 > --- a/libavformat/mpegts.c > +++ b/libavformat/mpegts.c > @@ -164,6 +164,7 @@ typedef struct PESContext { > enum MpegTSState state; > /* used to get the format */ > int data_index; > + int flags; /**< copied to the AVPacket flags */ > int total_size; > int pes_header_size; > int extended_stream_id; > @@ -635,12 +636,14 @@ static void new_pes_packet(PESContext *pes, AVPacket > *pkt) > pkt->dts = pes->dts; > /* store position of first TS packet of this PES packet */ > pkt->pos = pes->ts_packet_pos; > + pkt->flags = pes->flags; > > /* reset pts values */ > pes->pts = AV_NOPTS_VALUE; > pes->dts = AV_NOPTS_VALUE; > pes->buffer = NULL; > pes->data_index = 0; > + pes->flags = 0; > } > > /* return non zero if a packet could be constructed */ > @@ -808,6 +811,7 @@ static int mpegts_push_data(MpegTSFilter *filter, > // pes packet size is < ts size packet and pes data is > padded with 0xff > // not sure if this is legal in ts but see issue #2392 > buf_size = pes->total_size; > + pes->flags |= AV_PKT_FLAG_CORRUPT; > } > memcpy(pes->buffer+pes->data_index, p, buf_size); > pes->data_index += buf_size; > @@ -1283,6 +1287,11 @@ static int handle_packet(MpegTSContext *ts, const > uint8_t *packet) > || expected_cc == cc; > > tss->last_cc = cc; > + if (!cc_ok) { > + av_log(NULL, AV_LOG_WARNING, "Continuity Check Failed\n"); > + if(tss->type == MPEGTS_PES) > + ((PESContext*)(tss->u.pes_filter.opaque))->flags |= > AV_PKT_FLAG_CORRUPT; > + }
I really don't like this kind of magic. Can't you assign a PESContext variable so that this line is a little bit more sane? Otherwise OK. Ronald _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
