[vlc-commits] vout: wayland: refactor for next changes
vlc | branch: master | Thomas Guillem | Sun Oct 28 15:55:41 2018 +0100| [640ede9a9005d7ea0d1789b38c0da8cc545bdcab] | committer: Thomas Guillem vout: wayland: refactor for next changes vd->fmt and vd->cfg will be removed. fmt and cfg will be passed by Open() and controls. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=640ede9a9005d7ea0d1789b38c0da8cc545bdcab --- modules/video_output/wayland/shm.c | 65 +++--- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/modules/video_output/wayland/shm.c b/modules/video_output/wayland/shm.c index c05b5f4be0..648219f5f4 100644 --- a/modules/video_output/wayland/shm.c +++ b/modules/video_output/wayland/shm.c @@ -56,6 +56,8 @@ struct vout_display_sys_t int x; int y; +unsigned display_width; +unsigned display_height; bool use_buffer_transform; }; @@ -206,8 +208,7 @@ static void Prepare(vout_display_t *vd, picture_t *pic, subpicture_t *subpic, wl_buffer_set_user_data(buf, pic); wl_surface_attach(surface, buf, 0, 0); -wl_surface_damage(surface, 0, 0, - vd->cfg->display.width, vd->cfg->display.height); +wl_surface_damage(surface, 0, 0, sys->display_width, sys->display_height); wl_display_flush(display); sys->x = 0; @@ -281,24 +282,25 @@ static int Control(vout_display_t *vd, int query, va_list ap) { case VOUT_DISPLAY_RESET_PICTURES: { +const vout_display_cfg_t *cfg = va_arg(ap, const vout_display_cfg_t *); +video_format_t *fmt = va_arg(ap, video_format_t *); vout_display_place_t place; video_format_t src; - assert(sys->viewport == NULL); -vout_display_PlacePicture(, >source, vd->cfg, false); +vout_display_PlacePicture(, >source, cfg, false); video_format_ApplyRotation(, >source); -vd->fmt.i_width = src.i_width * place.width -/ src.i_visible_width; -vd->fmt.i_height = src.i_height * place.height -/ src.i_visible_height; -vd->fmt.i_visible_width = place.width; -vd->fmt.i_visible_height = place.height; -vd->fmt.i_x_offset = src.i_x_offset * place.width -/ src.i_visible_width; -vd->fmt.i_y_offset = src.i_y_offset * place.height -/ src.i_visible_height; +fmt->i_width = src.i_width * place.width +/ src.i_visible_width; +fmt->i_height = src.i_height * place.height + / src.i_visible_height; +fmt->i_visible_width = place.width; +fmt->i_visible_height = place.height; +fmt->i_x_offset = src.i_x_offset * place.width + / src.i_visible_width; +fmt->i_y_offset = src.i_y_offset * place.height + / src.i_visible_height; ResetPictures(vd); break; @@ -310,17 +312,9 @@ static int Control(vout_display_t *vd, int query, va_list ap) case VOUT_DISPLAY_CHANGE_SOURCE_ASPECT: case VOUT_DISPLAY_CHANGE_SOURCE_CROP: { -const vout_display_cfg_t *cfg; - -if (query == VOUT_DISPLAY_CHANGE_SOURCE_ASPECT - || query == VOUT_DISPLAY_CHANGE_SOURCE_CROP) -{ -cfg = vd->cfg; -} -else -{ -cfg = va_arg(ap, const vout_display_cfg_t *); -} +const vout_display_cfg_t *cfg = va_arg(ap, const vout_display_cfg_t *); +sys->display_width = cfg->display.width; +sys->display_height = cfg->display.height; if (sys->viewport != NULL) { @@ -405,6 +399,12 @@ static const struct wl_registry_listener registry_cbs = static int Open(vlc_object_t *obj) { vout_display_t *vd = (vout_display_t *)obj; +const vout_display_cfg_t *cfg = vd->cfg; +video_format_t *fmtp = >fmt; + +if (cfg->window->type != VOUT_WINDOW_TYPE_WAYLAND) +return VLC_EGENERIC; + vout_display_sys_t *sys = malloc(sizeof (*sys)); if (unlikely(sys == NULL)) return VLC_ENOMEM; @@ -417,12 +417,13 @@ static int Open(vlc_object_t *obj) sys->pool = NULL; sys->x = 0; sys->y = 0; +sys->display_width = cfg->display.width; +sys->display_height = cfg->display.height; sys->use_buffer_transform = false; /* Get window */ -sys->embed = vout_display_NewWindow(vd, VOUT_WINDOW_TYPE_WAYLAND); -if (sys->embed == NULL) -goto error; +sys->embed = cfg->window; +assert(sys->embed != NULL); struct wl_display *display = sys->embed->display.wl; @@ -466,15 +467,15 @@ static int
[vlc-commits] vout: wayland: refactor for next changes
vlc | branch: master | Thomas Guillem | Sun Oct 28 15:55:41 2018 +0100| [8abf0c611c8c39a84797797daae7e7f1613b0759] | committer: Steve Lhomme vout: wayland: refactor for next changes vd->fmt and vd->cfg will be removed. fmt and cfg will be passed by Open() and controls. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=8abf0c611c8c39a84797797daae7e7f1613b0759 --- modules/video_output/wayland/shm.c | 65 +++--- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/modules/video_output/wayland/shm.c b/modules/video_output/wayland/shm.c index c05b5f4be0..648219f5f4 100644 --- a/modules/video_output/wayland/shm.c +++ b/modules/video_output/wayland/shm.c @@ -56,6 +56,8 @@ struct vout_display_sys_t int x; int y; +unsigned display_width; +unsigned display_height; bool use_buffer_transform; }; @@ -206,8 +208,7 @@ static void Prepare(vout_display_t *vd, picture_t *pic, subpicture_t *subpic, wl_buffer_set_user_data(buf, pic); wl_surface_attach(surface, buf, 0, 0); -wl_surface_damage(surface, 0, 0, - vd->cfg->display.width, vd->cfg->display.height); +wl_surface_damage(surface, 0, 0, sys->display_width, sys->display_height); wl_display_flush(display); sys->x = 0; @@ -281,24 +282,25 @@ static int Control(vout_display_t *vd, int query, va_list ap) { case VOUT_DISPLAY_RESET_PICTURES: { +const vout_display_cfg_t *cfg = va_arg(ap, const vout_display_cfg_t *); +video_format_t *fmt = va_arg(ap, video_format_t *); vout_display_place_t place; video_format_t src; - assert(sys->viewport == NULL); -vout_display_PlacePicture(, >source, vd->cfg, false); +vout_display_PlacePicture(, >source, cfg, false); video_format_ApplyRotation(, >source); -vd->fmt.i_width = src.i_width * place.width -/ src.i_visible_width; -vd->fmt.i_height = src.i_height * place.height -/ src.i_visible_height; -vd->fmt.i_visible_width = place.width; -vd->fmt.i_visible_height = place.height; -vd->fmt.i_x_offset = src.i_x_offset * place.width -/ src.i_visible_width; -vd->fmt.i_y_offset = src.i_y_offset * place.height -/ src.i_visible_height; +fmt->i_width = src.i_width * place.width +/ src.i_visible_width; +fmt->i_height = src.i_height * place.height + / src.i_visible_height; +fmt->i_visible_width = place.width; +fmt->i_visible_height = place.height; +fmt->i_x_offset = src.i_x_offset * place.width + / src.i_visible_width; +fmt->i_y_offset = src.i_y_offset * place.height + / src.i_visible_height; ResetPictures(vd); break; @@ -310,17 +312,9 @@ static int Control(vout_display_t *vd, int query, va_list ap) case VOUT_DISPLAY_CHANGE_SOURCE_ASPECT: case VOUT_DISPLAY_CHANGE_SOURCE_CROP: { -const vout_display_cfg_t *cfg; - -if (query == VOUT_DISPLAY_CHANGE_SOURCE_ASPECT - || query == VOUT_DISPLAY_CHANGE_SOURCE_CROP) -{ -cfg = vd->cfg; -} -else -{ -cfg = va_arg(ap, const vout_display_cfg_t *); -} +const vout_display_cfg_t *cfg = va_arg(ap, const vout_display_cfg_t *); +sys->display_width = cfg->display.width; +sys->display_height = cfg->display.height; if (sys->viewport != NULL) { @@ -405,6 +399,12 @@ static const struct wl_registry_listener registry_cbs = static int Open(vlc_object_t *obj) { vout_display_t *vd = (vout_display_t *)obj; +const vout_display_cfg_t *cfg = vd->cfg; +video_format_t *fmtp = >fmt; + +if (cfg->window->type != VOUT_WINDOW_TYPE_WAYLAND) +return VLC_EGENERIC; + vout_display_sys_t *sys = malloc(sizeof (*sys)); if (unlikely(sys == NULL)) return VLC_ENOMEM; @@ -417,12 +417,13 @@ static int Open(vlc_object_t *obj) sys->pool = NULL; sys->x = 0; sys->y = 0; +sys->display_width = cfg->display.width; +sys->display_height = cfg->display.height; sys->use_buffer_transform = false; /* Get window */ -sys->embed = vout_display_NewWindow(vd, VOUT_WINDOW_TYPE_WAYLAND); -if (sys->embed == NULL) -goto error; +sys->embed = cfg->window; +assert(sys->embed != NULL); struct wl_display *display = sys->embed->display.wl; @@ -466,15 +467,15 @@ static int