summaryrefslogtreecommitdiffstats
path: root/video/filter/vf_gpu.c
diff options
context:
space:
mode:
Diffstat (limited to 'video/filter/vf_gpu.c')
-rw-r--r--video/filter/vf_gpu.c13
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}
},
},