summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--video/out/vo_vdpau.c19
-rw-r--r--video/out/x11_common.c3
2 files changed, 11 insertions, 11 deletions
diff --git a/video/out/vo_vdpau.c b/video/out/vo_vdpau.c
index e6acc4067e..c8836a8639 100644
--- a/video/out/vo_vdpau.c
+++ b/video/out/vo_vdpau.c
@@ -234,6 +234,13 @@ static void forget_frames(struct vo *vo, bool seek_reset)
vc->dropped_frame = false;
}
+static int s_size(int s, int disp)
+{
+ disp = MPMAX(1, disp);
+ s += s / 2;
+ return s >= disp ? s : disp;
+}
+
static void resize(struct vo *vo)
{
struct vdpctx *vc = vo->priv;
@@ -259,16 +266,8 @@ static void resize(struct vo *vo)
if (vc->output_surface_width < vo->dwidth
|| vc->output_surface_height < vo->dheight) {
- if (vc->output_surface_width < vo->dwidth) {
- vc->output_surface_width += vc->output_surface_width >> 1;
- vc->output_surface_width = FFMAX(vc->output_surface_width,
- vo->dwidth);
- }
- if (vc->output_surface_height < vo->dheight) {
- vc->output_surface_height += vc->output_surface_height >> 1;
- vc->output_surface_height = FFMAX(vc->output_surface_height,
- vo->dheight);
- }
+ vc->output_surface_width = s_size(vc->output_surface_width, vo->dwidth);
+ vc->output_surface_height = s_size(vc->output_surface_height, vo->dheight);
// Creation of output_surfaces
for (int i = 0; i < vc->num_output_surfaces; i++)
if (vc->output_surfaces[i] != VDP_INVALID_HANDLE) {
diff --git a/video/out/x11_common.c b/video/out/x11_common.c
index 1c3ccb95e0..d0f86af3aa 100644
--- a/video/out/x11_common.c
+++ b/video/out/x11_common.c
@@ -1339,6 +1339,7 @@ void vo_x11_config_vo_window(struct vo *vo, XVisualInfo *vis, int flags,
vo_x11_create_window(vo, vis, rc);
vo_x11_classhint(vo, x11->window, classname);
x11->window_hidden = true;
+ x11->winrc = geo.win;
}
if (flags & VOFLAG_HIDDEN)
@@ -1453,7 +1454,7 @@ static void vo_x11_update_geometry(struct vo *vo)
int dummy_int;
Window dummy_win;
Window win = vo->opts->WinID > 0 ? vo->opts->WinID : x11->window;
- if (x11->window_hidden || !win)
+ if (!win)
return;
XGetGeometry(x11->display, win, &dummy_win, &dummy_int, &dummy_int,
&w, &h, &dummy_int, &dummy_uint);