diff --git a/cores/libretro-ffmpeg/ffmpeg_core.c b/cores/libretro-ffmpeg/ffmpeg_core.c index 7f7f1a13a8..32d41c6356 100644 --- a/cores/libretro-ffmpeg/ffmpeg_core.c +++ b/cores/libretro-ffmpeg/ffmpeg_core.c @@ -631,8 +631,12 @@ void CORE_PREFIX(retro_run)(void) { #ifndef HAVE_OPENGLES glBindBuffer(GL_PIXEL_UNPACK_BUFFER, frames[1].pbo); +#ifdef __MACH__ + data = (uint32_t*)glMapBuffer(GL_PIXEL_UNPACK_BUFFER, GL_WRITE_ONLY); +#else data = (uint32_t*)glMapBufferRange(GL_PIXEL_UNPACK_BUFFER, - 0, media.width * media.height, GL_MAP_WRITE_BIT | GL_MAP_INVALIDATE_BUFFER_BIT); + 0, media.width * media.height * sizeof(uint32_t), GL_MAP_WRITE_BIT | GL_MAP_INVALIDATE_BUFFER_BIT); +#endif #endif fifo_read(video_decode_fifo, data, media.width * media.height * sizeof(uint32_t));