All pastes #1644741 Raw Edit

Untitled

public text v1 · immutable
#1644741 ·published 2009-10-27 05:47 UTC
rendered paste body
Index: mpegts.c
===================================================================
--- mpegts.c	(revision 22594)
+++ mpegts.c	(working copy)
@@ -1533,7 +1533,8 @@
     pkt->destruct = av_destruct_packet;
     pkt->data = pes->buffer;
     pkt->size = pes->data_index;
-    memset(pkt->data+pkt->size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
+    if (pkt->data && pkt->size)
+        memset(pkt->data+pkt->size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
 
     pkt->stream_index = pes->st->index;
     pkt->pts = pes->pts;
@@ -1546,6 +1547,7 @@
     pes->dts = AV_NOPTS_VALUE;
     pes->buffer = NULL;
     pes->data_index = 0;
+    pes->total_size = 0;
 }
 
 static void init_stream(AVStream *st, int stream_type, int code)
@@ -1779,14 +1781,20 @@
             }
             break;
         case MPEGTS_PAYLOAD:
+if (!pes->buffer)
+{
+av_log(NULL, AV_LOG_ERROR, "MPEGTS_PAYLOAD: BUFFER IS NULL!!!!   buf_size: %d, dindex: %d, totsize: %d, buffer: %p, p: %p\n", buf_size, pes->data_index, pes->total_size, pes->buffer, p);
+}
             if (buf_size > 0) {
                 if (pes->data_index+buf_size > pes->total_size) {
+av_log(NULL, AV_LOG_ERROR, "MPEGTS_PAYLOAD: BEFORE buf_size: %d, dindex: %d, totsize: %d, buffer: %p, p: %p\n", buf_size, pes->data_index, pes->total_size, pes->buffer, p);
                     new_pes_packet(pes, ts->pkt);
                     pes->total_size = MAX_PES_PAYLOAD;
                     pes->buffer = av_malloc(pes->total_size+FF_INPUT_BUFFER_PADDING_SIZE);
                     if (!pes->buffer)
                         return AVERROR(ENOMEM);
                     ts->stop_parse = 1;
+av_log(NULL, AV_LOG_ERROR, "MPEGTS_PAYLOAD: AFTER  buf_size: %d, dindex: %d, totsize: %d, buffer: %p, p: %p\n", buf_size, pes->data_index, pes->total_size, pes->buffer, p);
                 }
                 memcpy(pes->buffer+pes->data_index, p, buf_size);
                 pes->data_index += buf_size;