On 8/1/11 7:37 PM, Ronald S. Bultje wrote:
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?


Ok
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to