(ffmpeg) Fix memory leak/struct member issue

This commit is contained in:
jdgleaver 2020-08-05 16:46:06 +01:00
parent cd329a259c
commit 0fcc5a784e
2 changed files with 9 additions and 7 deletions

View File

@ -73,11 +73,8 @@ video_buffer_t *video_buffer_create(
b->buffer[i].hw_source = av_frame_alloc();
#endif
b->buffer[i].target = av_frame_alloc();
b->buffer[i].frame_buf = (uint8_t*)av_malloc(frame_size);
avpicture_fill((AVPicture*)
b->buffer[i].target,
(const uint8_t*)b->buffer[i].frame_buf,
avpicture_alloc((AVPicture*)b->buffer[i].target,
PIX_FMT_RGB32, width, height);
if (!b->buffer[i].sws ||
@ -85,8 +82,7 @@ video_buffer_t *video_buffer_create(
#if LIBAVUTIL_VERSION_MAJOR > 55
!b->buffer[i].hw_source ||
#endif
!b->buffer[i].target ||
!b->buffer[i].frame_buf)
!b->buffer[i].target)
goto fail;
}
return b;
@ -114,8 +110,8 @@ void video_buffer_destroy(video_buffer_t *video_buffer)
av_frame_free(&video_buffer->buffer[i].hw_source);
#endif
av_frame_free(&video_buffer->buffer[i].source);
avpicture_free((AVPicture*)video_buffer->buffer[i].target);
av_frame_free(&video_buffer->buffer[i].target);
av_freep(&video_buffer->buffer[i].frame_buf);
sws_freeContext(video_buffer->buffer[i].sws);
}
}

View File

@ -6,6 +6,12 @@
#include <boolean.h>
#include <stdint.h>
#ifdef RARCH_INTERNAL
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#endif
#ifdef HAVE_SSA
#include <ass/ass.h>
#endif