vlc | branch: master | Thomas Guillem <[email protected]> | Tue Nov 25 16:17:20 2014 +0100| [1b8c3ae1dd87e17a9e502077ab36ac26cbd4bb98] | committer: Jean-Baptiste Kempf
android_window: don't release sub_pic in vd->control Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=1b8c3ae1dd87e17a9e502077ab36ac26cbd4bb98 --- modules/video_output/android/android_window.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/modules/video_output/android/android_window.c b/modules/video_output/android/android_window.c index cd24e7b..1c39bcd 100644 --- a/modules/video_output/android/android_window.c +++ b/modules/video_output/android/android_window.c @@ -115,6 +115,7 @@ struct vout_display_sys_t android_window *p_window; android_window *p_sub_window; + bool b_sub_invalid; filter_t *p_spu_blend; picture_t *p_sub_pic; @@ -195,6 +196,7 @@ static void FixSubtitleFormat(vout_display_sys_t *sys) } p_fmt->i_x_offset = 0; p_fmt->i_y_offset = 0; + sys->b_sub_invalid = true; } #define ALIGN_16_PIXELS( x ) ( ( ( x ) + 15 ) / 16 * 16 ) @@ -826,6 +828,18 @@ static void Display(vout_display_t *vd, picture_t *picture, picture_Release(picture); if (subpicture) { + if (sys->b_sub_invalid) { + sys->b_sub_invalid = false; + if (sys->p_sub_pic) { + picture_Release(sys->p_sub_pic); + sys->p_sub_pic = NULL; + } + if (sys->p_spu_blend) { + filter_DeleteBlend(sys->p_spu_blend); + sys->p_spu_blend = NULL; + } + } + if (!sys->p_sub_pic && SetupWindowSubtitleSurface(sys) == 0) sys->p_sub_pic = PictureAlloc(sys, &sys->p_sub_window->fmt); @@ -903,15 +917,6 @@ static int Control(vout_display_t *vd, int query, va_list args) UpdateWindowSize(&sys->p_window->fmt, sys->p_window->b_use_priv); FixSubtitleFormat(sys); - if (sys->p_sub_pic) { - picture_Release(sys->p_sub_pic); - sys->p_sub_pic = NULL; - } - if (sys->p_spu_blend) { - filter_DeleteBlend(sys->p_spu_blend); - sys->p_spu_blend = NULL; - } - return VLC_SUCCESS; } default: _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
