From d9e1ff011ef0ebd262219df8e9ba3948afb7825f Mon Sep 17 00:00:00 2001 From: Steve Lhomme <robux4@videolabs.io> Date: Wed, 2 Aug 2017 09:33:37 +0200 Subject: [PATCH] display: no need to pass the video_format_t for CROP/ASPECT_RATIO changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It's always found in vd->source. Signed-off-by: Rémi Denis-Courmont <remi@remlab.net> --- include/vlc_vout_display.h | 4 ++-- modules/hw/mmal/vout.c | 4 +--- modules/video_output/android/display.c | 5 ++--- modules/video_output/evas.c | 5 +---- modules/video_output/kva.c | 6 ++---- modules/video_output/opengl/display.c | 3 +-- modules/video_output/sdl.c | 5 +---- modules/video_output/wayland/shm.c | 7 ++----- modules/video_output/win32/common.c | 8 +++----- modules/video_output/xcb/xvideo.c | 5 +---- src/video_output/display.c | 4 ++-- 11 files changed, 18 insertions(+), 38 deletions(-) diff --git a/include/vlc_vout_display.h b/include/vlc_vout_display.h index 38dbded17df0..f02272a3d7d5 100644 --- a/include/vlc_vout_display.h +++ b/include/vlc_vout_display.h @@ -167,13 +167,13 @@ enum { /* Ask the module to acknowledge/refuse source aspect ratio after being * requested externally */ - VOUT_DISPLAY_CHANGE_SOURCE_ASPECT, /* const video_format_t *p_source */ + VOUT_DISPLAY_CHANGE_SOURCE_ASPECT, /* Ask the module to acknowledge/refuse source crop change after being * requested externally. * The cropping requested is stored by video_format_t::i_x/y_offset and * video_format_t::i_visible_width/height */ - VOUT_DISPLAY_CHANGE_SOURCE_CROP, /* const video_format_t *p_source */ + VOUT_DISPLAY_CHANGE_SOURCE_CROP, /* Ask the module to acknowledge/refuse VR/360° viewing direction after * being requested externally */ diff --git a/modules/hw/mmal/vout.c b/modules/hw/mmal/vout.c index 4043f73d313f..24a4cf73c36d 100644 --- a/modules/hw/mmal/vout.c +++ b/modules/hw/mmal/vout.c @@ -610,7 +610,6 @@ static int vd_control(vout_display_t *vd, int query, va_list args) vout_display_sys_t *sys = vd->sys; vout_display_cfg_t cfg; const vout_display_cfg_t *tmp_cfg; - const video_format_t *tmp_fmt; int ret = VLC_EGENERIC; switch (query) { @@ -632,8 +631,7 @@ static int vd_control(vout_display_t *vd, int query, va_list args) case VOUT_DISPLAY_CHANGE_SOURCE_ASPECT: case VOUT_DISPLAY_CHANGE_SOURCE_CROP: - tmp_fmt = va_arg(args, const video_format_t *); - if (configure_display(vd, NULL, tmp_fmt) >= 0) + if (configure_display(vd, NULL, &vd->source) >= 0) ret = VLC_SUCCESS; break; diff --git a/modules/video_output/android/display.c b/modules/video_output/android/display.c index 7dce9963110f..eb4d89fbcad5 100644 --- a/modules/video_output/android/display.c +++ b/modules/video_output/android/display.c @@ -1185,13 +1185,12 @@ static int Control(vout_display_t *vd, int query, va_list args) case VOUT_DISPLAY_CHANGE_SOURCE_ASPECT: { msg_Dbg(vd, "change source crop/aspect"); - const video_format_t *source = va_arg(args, const video_format_t *); if (query == VOUT_DISPLAY_CHANGE_SOURCE_CROP) { - video_format_CopyCrop(&sys->p_window->fmt, source); + video_format_CopyCrop(&sys->p_window->fmt, &vd->source); AndroidWindow_UpdateCrop(sys, sys->p_window); } else - CopySourceAspect(&sys->p_window->fmt, source); + CopySourceAspect(&sys->p_window->fmt, &vd->source); UpdateVideoSize(sys, &sys->p_window->fmt, sys->p_window->b_use_priv); FixSubtitleFormat(sys); diff --git a/modules/video_output/evas.c b/modules/video_output/evas.c index 880c9e413a24..a6116af0a926 100644 --- a/modules/video_output/evas.c +++ b/modules/video_output/evas.c @@ -744,15 +744,12 @@ Control( vout_display_t *vd, int i_query, va_list ap ) { case VOUT_DISPLAY_CHANGE_SOURCE_ASPECT: { - const video_format_t *p_source; vout_display_place_t place; video_format_t fmt; msg_Dbg( vd, "VOUT_DISPLAY_CHANGE_SOURCE_ASPECT" ); - p_source = va_arg( ap, const video_format_t * ); - - video_format_ApplyRotation( &fmt, p_source ); + video_format_ApplyRotation( &fmt, &vd->source ); vout_display_PlacePicture( &place, &fmt, vd->cfg, false ); if( place.width != (unsigned) sys->i_width diff --git a/modules/video_output/kva.c b/modules/video_output/kva.c index eb9aed4a991d..df8803ad8879 100644 --- a/modules/video_output/kva.c +++ b/modules/video_output/kva.c @@ -466,12 +466,10 @@ static int Control( vout_display_t *vd, int query, va_list args ) case VOUT_DISPLAY_CHANGE_SOURCE_ASPECT: case VOUT_DISPLAY_CHANGE_SOURCE_CROP: { - const video_format_t *src = va_arg(args, const video_format_t *); - if( query == VOUT_DISPLAY_CHANGE_SOURCE_ASPECT ) { vout_display_place_t place; - vout_display_PlacePicture(&place, src, vd->cfg, false); + vout_display_PlacePicture(&place, &vd->source, vd->cfg, false); sys->kvas.ulAspectWidth = place.width; sys->kvas.ulAspectHeight = place.height; @@ -479,7 +477,7 @@ static int Control( vout_display_t *vd, int query, va_list args ) else { video_format_t src_rot; - video_format_ApplyRotation(&src_rot, src); + video_format_ApplyRotation(&src_rot, &vd->source); sys->kvas.rclSrcRect.xLeft = src_rot.i_x_offset; sys->kvas.rclSrcRect.yTop = src_rot.i_y_offset; diff --git a/modules/video_output/opengl/display.c b/modules/video_output/opengl/display.c index 63376f1cd8fb..e72e16005d60 100644 --- a/modules/video_output/opengl/display.c +++ b/modules/video_output/opengl/display.c @@ -234,10 +234,9 @@ static int Control (vout_display_t *vd, int query, va_list ap) case VOUT_DISPLAY_CHANGE_SOURCE_CROP: { const vout_display_cfg_t *cfg = vd->cfg; - const video_format_t *src = va_arg (ap, const video_format_t *); vout_display_place_t place; - vout_display_PlacePicture (&place, src, cfg, false); + vout_display_PlacePicture (&place, &vd->source, cfg, false); if (vlc_gl_MakeCurrent (sys->gl) != VLC_SUCCESS) return VLC_EGENERIC; vout_display_opengl_SetWindowAspectRatio(sys->vgl, (float)place.width / place.height); diff --git a/modules/video_output/sdl.c b/modules/video_output/sdl.c index 1fe55d64f314..51c935cbe038 100644 --- a/modules/video_output/sdl.c +++ b/modules/video_output/sdl.c @@ -518,20 +518,17 @@ static int Control(vout_display_t *vd, int query, va_list args) case VOUT_DISPLAY_CHANGE_DISPLAY_FILLED: case VOUT_DISPLAY_CHANGE_SOURCE_ASPECT: { const vout_display_cfg_t *cfg; - const video_format_t *source; if (query == VOUT_DISPLAY_CHANGE_SOURCE_ASPECT) { - source = va_arg(args, const video_format_t *); cfg = vd->cfg; } else { - source = &vd->source; cfg = va_arg(args, const vout_display_cfg_t *); } if (sys->overlay) { sys->display = SDL_SetVideoMode(cfg->display.width, cfg->display.height, sys->display_bpp, sys->display_flags); - vout_display_PlacePicture(&sys->place, source, cfg, !sys->overlay); + vout_display_PlacePicture(&sys->place, &vd->source, cfg, !sys->overlay); } else { vout_display_SendEventPicturesInvalid(vd); } diff --git a/modules/video_output/wayland/shm.c b/modules/video_output/wayland/shm.c index 8de51a3e3484..03e28362c113 100644 --- a/modules/video_output/wayland/shm.c +++ b/modules/video_output/wayland/shm.c @@ -294,17 +294,14 @@ static int Control(vout_display_t *vd, int query, va_list ap) case VOUT_DISPLAY_CHANGE_SOURCE_CROP: { const vout_display_cfg_t *cfg; - const video_format_t *src; if (query == VOUT_DISPLAY_CHANGE_SOURCE_ASPECT || query == VOUT_DISPLAY_CHANGE_SOURCE_CROP) { - src = va_arg(ap, const video_format_t *); cfg = vd->cfg; } else { - src = &vd->source; cfg = va_arg(ap, const vout_display_cfg_t *); } @@ -314,7 +311,7 @@ static int Control(vout_display_t *vd, int query, va_list ap) sys->x += place.width / 2; sys->y += place.height / 2; - vout_display_PlacePicture(&place, src, cfg, false); + vout_display_PlacePicture(&place, &vd->source, cfg, false); sys->x -= place.width / 2; sys->y -= place.height / 2; @@ -322,7 +319,7 @@ static int Control(vout_display_t *vd, int query, va_list ap) { video_format_t fmt; - video_format_ApplyRotation(&fmt, src); + video_format_ApplyRotation(&fmt, &vd->source); wp_viewport_set_source(sys->viewport, wl_fixed_from_int(fmt.i_x_offset), wl_fixed_from_int(fmt.i_y_offset), diff --git a/modules/video_output/win32/common.c b/modules/video_output/win32/common.c index cc6fac08a231..e73431643176 100644 --- a/modules/video_output/win32/common.c +++ b/modules/video_output/win32/common.c @@ -652,19 +652,17 @@ int CommonControl(vout_display_t *vd, int query, va_list args) switch (query) { case VOUT_DISPLAY_CHANGE_DISPLAY_FILLED: /* const vout_display_cfg_t *p_cfg */ case VOUT_DISPLAY_CHANGE_ZOOM: /* const vout_display_cfg_t *p_cfg */ - case VOUT_DISPLAY_CHANGE_SOURCE_ASPECT: /* const video_format_t *p_source */ - case VOUT_DISPLAY_CHANGE_SOURCE_CROP: { /* const video_format_t *p_source */ + case VOUT_DISPLAY_CHANGE_SOURCE_ASPECT: + case VOUT_DISPLAY_CHANGE_SOURCE_CROP: { const vout_display_cfg_t *cfg; if (query == VOUT_DISPLAY_CHANGE_SOURCE_CROP || query == VOUT_DISPLAY_CHANGE_SOURCE_ASPECT) { - const video_format_t *source = va_arg(args, const video_format_t *); cfg = vd->cfg; - UpdateRects(vd, cfg, source, true); } else { cfg = va_arg(args, const vout_display_cfg_t *); - UpdateRects(vd, cfg, NULL, true); } + UpdateRects(vd, cfg, NULL, true); return VLC_SUCCESS; } #if !VLC_WINSTORE_APP diff --git a/modules/video_output/xcb/xvideo.c b/modules/video_output/xcb/xvideo.c index 2f1801b2f328..387c768d2894 100644 --- a/modules/video_output/xcb/xvideo.c +++ b/modules/video_output/xcb/xvideo.c @@ -724,22 +724,19 @@ static int Control (vout_display_t *vd, int query, va_list ap) case VOUT_DISPLAY_CHANGE_SOURCE_CROP: { const vout_display_cfg_t *cfg; - const video_format_t *source; if (query == VOUT_DISPLAY_CHANGE_SOURCE_ASPECT || query == VOUT_DISPLAY_CHANGE_SOURCE_CROP) { - source = va_arg(ap, const video_format_t *); cfg = vd->cfg; } else { - source = &vd->source; cfg = va_arg(ap, const vout_display_cfg_t *); } vout_display_place_t place; - vout_display_PlacePicture (&place, source, cfg, false); + vout_display_PlacePicture (&place, &vd->source, cfg, false); p_sys->width = place.width; p_sys->height = place.height; diff --git a/src/video_output/display.c b/src/video_output/display.c index 3d89b9a6d09a..0e899065dd1a 100644 --- a/src/video_output/display.c +++ b/src/video_output/display.c @@ -956,7 +956,7 @@ bool vout_ManageDisplay(vout_display_t *vd, bool allow_reset_pictures) vd->source.i_sar_den = osys->source.i_sar_den; } - if (vout_display_Control(vd, VOUT_DISPLAY_CHANGE_SOURCE_ASPECT, &vd->source)) { + if (vout_display_Control(vd, VOUT_DISPLAY_CHANGE_SOURCE_ASPECT)) { /* There nothing much we can do. The only reason a vout display * does not support it is because it need the core to add black border * to the video for it. @@ -1017,7 +1017,7 @@ bool vout_ManageDisplay(vout_display_t *vd, bool allow_reset_pictures) vd->source.i_visible_height = bottom - top; video_format_Print(VLC_OBJECT(vd), "SOURCE ", &osys->source); video_format_Print(VLC_OBJECT(vd), "CROPPED", &vd->source); - if (vout_display_Control(vd, VOUT_DISPLAY_CHANGE_SOURCE_CROP, &vd->source)) { + if (vout_display_Control(vd, VOUT_DISPLAY_CHANGE_SOURCE_CROP)) { msg_Err(vd, "Failed to change source crop TODO implement crop at core"); vd->source.i_x_offset = i_x_offset; -- GitLab