diff --git a/ijkmediaplayer/jni/ijkplayer/ff_ffplay.c b/ijkmediaplayer/jni/ijkplayer/ff_ffplay.c index b234029e20a71e4e164dad2b5a59d1d29d9f767d..c38bb8cc39d9739cc82d76eaf793b284ff46503d 100644 --- a/ijkmediaplayer/jni/ijkplayer/ff_ffplay.c +++ b/ijkmediaplayer/jni/ijkplayer/ff_ffplay.c @@ -473,7 +473,7 @@ static void stream_close(FFPlayer *ffp) avfilter_unref_bufferp(&vp->picref); #endif if (vp->bmp) { - SDL_FreeYUVOverlay(vp->bmp); + SDL_VoutFreeYUVOverlay(vp->bmp); vp->bmp = NULL; } } diff --git a/ijkmediaplayer/jni/ijksdl/ijksdl_vout.c b/ijkmediaplayer/jni/ijksdl/ijksdl_vout.c index 0bfe2d11143340006e9da24ff215a3d5a762e9e8..0b8b42333757b0bad2977b85f8acfb33bd74e237 100644 --- a/ijkmediaplayer/jni/ijksdl/ijksdl_vout.c +++ b/ijkmediaplayer/jni/ijksdl/ijksdl_vout.c @@ -43,3 +43,15 @@ SDL_VoutSurface *SDL_VoutSetVideoMode(SDL_Vout *vout, int w, int h, int bpp, Uin assert(vout); return vout->set_video_mode(vout, w, h, bpp, flags); } + +void SDL_VouFreeOverlay(SDL_VoutOverlay *overlay) +{ + if (!overlay) + return; + + if (overlay->free_l) { + overlay->free_l(overlay); + } else { + free(overlay); + } +}