diff options
author | Marton Balint <cus@passwd.hu> | 2013-10-19 01:18:41 +0200 |
---|---|---|
committer | Marton Balint <cus@passwd.hu> | 2013-10-26 12:23:54 +0200 |
commit | 2d059d8de1b4904c3a56ac99dc0badb870a50941 (patch) | |
tree | 82ed6f0d67f82e0ce681f287e1ed02d103ec1cef | |
parent | 060c42bc3dff937df04f6d6166c43ab23e077ad6 (diff) | |
download | ffmpeg-2d059d8de1b4904c3a56ac99dc0badb870a50941.tar.gz |
ffplay: factor out picture freeing code
Signed-off-by: Marton Balint <cus@passwd.hu>
-rw-r--r-- | ffplay.c | 21 |
1 files changed, 11 insertions, 10 deletions
@@ -785,6 +785,14 @@ static void blend_subrect(AVPicture *dst, const AVSubtitleRect *rect, int imgw, } } +static void free_picture(VideoPicture *vp) +{ + if (vp->bmp) { + SDL_FreeYUVOverlay(vp->bmp); + vp->bmp = NULL; + } +} + static void free_subpicture(SubPicture *sp) { avsubtitle_free(&sp->sub); @@ -1013,7 +1021,6 @@ static void video_audio_display(VideoState *s) static void stream_close(VideoState *is) { - VideoPicture *vp; int i; /* XXX: use a special url_shutdown call to abort parse cleanly */ is->abort_request = 1; @@ -1023,13 +1030,8 @@ static void stream_close(VideoState *is) packet_queue_destroy(&is->subtitleq); /* free all pictures */ - for (i = 0; i < VIDEO_PICTURE_QUEUE_SIZE; i++) { - vp = &is->pictq[i]; - if (vp->bmp) { - SDL_FreeYUVOverlay(vp->bmp); - vp->bmp = NULL; - } - } + for (i = 0; i < VIDEO_PICTURE_QUEUE_SIZE; i++) + free_picture(&is->pictq[i]); for (i = 0; i < SUBPICTURE_QUEUE_SIZE; i++) free_subpicture(&is->subpq[i]); SDL_DestroyMutex(is->pictq_mutex); @@ -1505,8 +1507,7 @@ static void alloc_picture(VideoState *is) vp = &is->pictq[is->pictq_windex]; - if (vp->bmp) - SDL_FreeYUVOverlay(vp->bmp); + free_picture(vp); video_open(is, 0, vp); |