Skip to content
Snippets Groups Projects
Commit bb19843d authored by Steve Lhomme's avatar Steve Lhomme
Browse files

xcb/x11: apply the new input format during reset_picture

If for some reason the core decides not to call reset_pictures we should
assume things will not change.
parent a6a3860b
No related branches found
No related tags found
1 merge request!4079xcb/x11: only apply the new format when reset_picture is called
Pipeline #396491 passed with stages
in 31 minutes and 8 seconds
......@@ -190,6 +190,19 @@ static void Display (vout_display_t *vd, picture_t *pic)
static int ResetPictures(vout_display_t *vd, video_format_t *fmt)
{
vout_display_sys_t *sys = vd->sys;
video_format_t src;
vout_display_PlacePicture(&sys->place, vd->source, &vd->cfg->display);
video_format_ApplyRotation(&src, vd->source);
sys->fmt.i_width = src.i_width * sys->place.width / src.i_visible_width;
sys->fmt.i_height = src.i_height * sys->place.height / src.i_visible_height;
sys->fmt.i_visible_width = sys->place.width;
sys->fmt.i_visible_height = sys->place.height;
sys->fmt.i_x_offset = src.i_x_offset * sys->place.width / src.i_visible_width;
sys->fmt.i_y_offset = src.i_y_offset * sys->place.height / src.i_visible_height;
*fmt = sys->fmt;
return VLC_SUCCESS;
}
......@@ -213,26 +226,15 @@ static int Control(vout_display_t *vd, int query)
case VOUT_DISPLAY_CHANGE_SOURCE_ASPECT:
case VOUT_DISPLAY_CHANGE_SOURCE_CROP:
{
video_format_t src, *fmt = &sys->fmt;
vout_display_place_t *place = &sys->place;
int ret = VLC_SUCCESS;
vout_display_place_t place;
vout_display_PlacePicture(place, vd->source, &vd->cfg->display);
vout_display_PlacePicture(&place, vd->source, &vd->cfg->display);
if (place->width != sys->fmt.i_visible_width
|| place->height != sys->fmt.i_visible_height)
ret = VLC_EGENERIC;
if (place.width != sys->fmt.i_visible_width
|| place.height != sys->fmt.i_visible_height)
return VLC_EGENERIC;
video_format_ApplyRotation(&src, vd->source);
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;
return ret;
return VLC_SUCCESS;
}
default:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment