From cb148c7139c566361b6fcfdef73212ed620fa4eb Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sun, 24 Aug 2014 11:44:29 -0700 Subject: [PATCH] Use a single allocation for a video fragment --- limelight-common/VideoDepacketizer.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/limelight-common/VideoDepacketizer.c b/limelight-common/VideoDepacketizer.c index 19a58e0..7af9a8b 100644 --- a/limelight-common/VideoDepacketizer.c +++ b/limelight-common/VideoDepacketizer.c @@ -39,7 +39,6 @@ static void cleanupAvcFrameState(void) { while (nalChainHead != NULL) { lastEntry = nalChainHead; nalChainHead = lastEntry->next; - free(lastEntry->data); free(lastEntry); } @@ -58,7 +57,6 @@ void destroyVideoDepacketizer(void) { entry = LbqDestroyLinkedBlockingQueue(&decodeUnitQueue); while (entry != NULL) { nextEntry = entry->flink; - free(entry->data); free(entry); entry = nextEntry; } @@ -168,7 +166,6 @@ void freeDecodeUnit(PDECODE_UNIT decodeUnit) { while (decodeUnit->bufferList != NULL) { lastEntry = decodeUnit->bufferList; decodeUnit->bufferList = lastEntry->next; - free(lastEntry->data); free(lastEntry); } @@ -176,15 +173,11 @@ void freeDecodeUnit(PDECODE_UNIT decodeUnit) { } static void queueFragment(char *data, int offset, int length) { - PLENTRY entry = (PLENTRY) malloc(sizeof(*entry)); + PLENTRY entry = (PLENTRY) malloc(sizeof(*entry) + length); if (entry != NULL) { entry->next = NULL; entry->length = length; - entry->data = (char*) malloc(entry->length); - if (entry->data == NULL) { - free(entry); - return; - } + entry->data = (char*) (entry + 1); memcpy(entry->data, &data[offset], entry->length);