vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Mon Dec 10 20:56:24 2018 +0200| [7e0623f8dd6f09c3f255a14ac35620fee5b6df62] | committer: Rémi Denis-Courmont
fb: create the picture during initialization > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=7e0623f8dd6f09c3f255a14ac35620fee5b6df62 --- modules/video_output/fb.c | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/modules/video_output/fb.c b/modules/video_output/fb.c index 524e3b63fd..b7e828e115 100644 --- a/modules/video_output/fb.c +++ b/modules/video_output/fb.c @@ -320,7 +320,7 @@ static void Close(vout_display_t *vd) if (sys->pool) picture_pool_Release(sys->pool); - if (!sys->is_hw_accel && sys->picture) + else if (sys->picture != NULL) picture_Release(sys->picture); CloseDisplay(vd); @@ -337,19 +337,6 @@ static picture_pool_t *Pool(vout_display_t *vd, unsigned count) vout_display_sys_t *sys = vd->sys; if (!sys->pool) { - if (!sys->picture) { - picture_resource_t rsc; - - memset(&rsc, 0, sizeof(rsc)); - rsc.p[0].p_pixels = sys->video_ptr; - rsc.p[0].i_lines = sys->var_info.yres; - rsc.p[0].i_pitch = sys->line_length; - - sys->picture = picture_NewFromResource(&vd->fmt, &rsc); - if (!sys->picture) - return NULL; - } - if (sys->is_hw_accel) sys->pool = picture_pool_New(1, &sys->picture); else @@ -624,6 +611,22 @@ static int OpenDisplay(vout_display_t *vd, bool force_resolution) return VLC_EGENERIC; } + picture_resource_t rsc = { + .p = { + [0] = { + .i_lines = sys->var_info.yres, + .i_pitch = fix_info.line_length, + }, + }, + }; + + sys->picture = picture_NewFromResource(&vd->fmt, &rsc); + if (unlikely(sys->picture == NULL)) { + munmap(rsc.p[0].p_pixels, sys->video_size); + ioctl(sys->fd, FBIOPUT_VSCREENINFO, &sys->old_info); + return VLC_ENOMEM; + } + ClearScreen(sys); msg_Dbg(vd, _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
