vo_direct3d: support video-target-params

The backbuffer format is available.
This commit is contained in:
nanahi 2024-03-24 09:28:22 -04:00 committed by sfan5
parent 76541db2a7
commit 3f17b18a33
1 changed files with 13 additions and 0 deletions

View File

@ -102,6 +102,7 @@ typedef struct d3d_priv {
struct mp_osd_res osd_res; struct mp_osd_res osd_res;
int image_format; /**< mplayer image format */ int image_format; /**< mplayer image format */
struct mp_image_params params; struct mp_image_params params;
struct mp_image_params dst_params;
D3DFORMAT movie_src_fmt; /**< Movie colorspace format (depends on D3DFORMAT movie_src_fmt; /**< Movie colorspace format (depends on
the movie's codec) */ the movie's codec) */
@ -896,6 +897,18 @@ static int reconfig(struct vo *vo, struct mp_image_params *params)
if (!resize_d3d(priv)) if (!resize_d3d(priv))
return VO_ERROR; return VO_ERROR;
priv->dst_params = *params;
for (const struct fmt_entry *cur = &fmt_table[0]; cur->mplayer_fmt; ++cur) {
if (cur->fourcc == priv->desktop_fmt) {
priv->dst_params.imgfmt = cur->mplayer_fmt;
break;
}
}
mp_image_params_guess_csp(&priv->dst_params);
mp_mutex_lock(&vo->params_mutex);
vo->target_params = &priv->dst_params;
mp_mutex_unlock(&vo->params_mutex);
return 0; /* Success */ return 0; /* Success */
} }