From b7184fd6f77f1365ca1faacb699a9d01dec9a8d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96man?= Date: Mon, 25 Feb 2008 16:28:46 +0000 Subject: [PATCH] Allocate extra bytes to compensate for overreading in libavcodec --- buffer.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/buffer.c b/buffer.c index 9daab0f2..2188726c 100644 --- a/buffer.c +++ b/buffer.c @@ -131,7 +131,7 @@ pkt_alloc(void *data, size_t datalen, int64_t pts, int64_t dts) pkt = calloc(1, sizeof(th_pkt_t)); pkt->pkt_payloadlen = datalen; if(datalen > 0) { - pkt->pkt_payload = malloc(datalen); + pkt->pkt_payload = malloc(datalen + FF_INPUT_BUFFER_PADDING_SIZE); if(data != NULL) memcpy(pkt->pkt_payload, data, datalen); } @@ -159,7 +159,8 @@ pkt_copy(th_pkt_t *orig) pkt = malloc(sizeof(th_pkt_t)); memcpy(pkt, orig, sizeof(th_pkt_t)); - pkt->pkt_payload = malloc(pkt->pkt_payloadlen); + pkt->pkt_payload = malloc(pkt->pkt_payloadlen + + FF_INPUT_BUFFER_PADDING_SIZE); memcpy(pkt->pkt_payload, orig->pkt_payload, pkt->pkt_payloadlen); pkt->pkt_on_stream_queue = 0; @@ -229,7 +230,8 @@ int pkt_load(th_pkt_t *pkt) { if(pkt->pkt_payload == NULL && pkt->pkt_storage != NULL) { - pkt->pkt_payload = malloc(pkt->pkt_payloadlen); + pkt->pkt_payload = malloc(pkt->pkt_payloadlen + + FF_INPUT_BUFFER_PADDING_SIZE); pread(pkt->pkt_storage->ts_fd, pkt->pkt_payload, pkt->pkt_payloadlen, pkt->pkt_storage_offset); storage_mem_enq(pkt);