diff --git a/cores/libretro-ffmpeg/video_buffer.c b/cores/libretro-ffmpeg/video_buffer.c index 603a5e89ad..bc767f1150 100644 --- a/cores/libretro-ffmpeg/video_buffer.c +++ b/cores/libretro-ffmpeg/video_buffer.c @@ -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); } } diff --git a/cores/libretro-ffmpeg/video_buffer.h b/cores/libretro-ffmpeg/video_buffer.h index c5ea2093a5..179f7bc2b9 100644 --- a/cores/libretro-ffmpeg/video_buffer.h +++ b/cores/libretro-ffmpeg/video_buffer.h @@ -6,6 +6,12 @@ #include #include +#ifdef RARCH_INTERNAL +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#endif + #ifdef HAVE_SSA #include #endif