diff options
Diffstat (limited to 'video/filter/vf_gpu.c')
-rw-r--r-- | video/filter/vf_gpu.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/video/filter/vf_gpu.c b/video/filter/vf_gpu.c index 5528abaa60..e19faaef42 100644 --- a/video/filter/vf_gpu.c +++ b/video/filter/vf_gpu.c @@ -166,12 +166,14 @@ static struct mp_image *gpu_render_frame(struct mp_filter *f, struct mp_image *i bool need_reconfig = m_config_cache_update(priv->vo_opts_cache); - if (!mp_image_params_equal(&priv->img_params, &in->params)) { - priv->img_params = in->params; + if (!mp_image_params_static_equal(&priv->img_params, &in->params)) { gl_video_config(priv->renderer, &in->params); need_reconfig = true; } + if (!mp_image_params_equal(&priv->img_params, &in->params)) + priv->img_params = in->params; + if (need_reconfig) { struct mp_rect src, dst; struct mp_osd_res osd; @@ -196,6 +198,7 @@ static struct mp_image *gpu_render_frame(struct mp_filter *f, struct mp_image *i .downloadable = true, .w = w, .h = h, + .d = 1, .render_dst = true, }; @@ -211,7 +214,7 @@ static struct mp_image *gpu_render_frame(struct mp_filter *f, struct mp_image *i // (it doesn't have access to the OSD though) int flags = RENDER_FRAME_SUBS | RENDER_FRAME_VF_SUBS; - gl_video_render_frame(priv->renderer, &frame, (struct ra_fbo){priv->target}, + gl_video_render_frame(priv->renderer, &frame, &(struct ra_fbo){priv->target}, flags); res = mp_image_alloc(IMGFMT_RGB0, w, h); @@ -363,8 +366,8 @@ const struct mp_user_filter_entry vf_gpu = { .name = "gpu", .priv_size = sizeof(OPT_BASE_STRUCT), .options = (const struct m_option[]){ - OPT_INT("w", w, 0), - OPT_INT("h", h, 0), + {"w", OPT_INT(w)}, + {"h", OPT_INT(h)}, {0} }, }, |