diff options
author | sfan5 <sfan5@live.de> | 2024-03-11 20:40:24 +0100 |
---|---|---|
committer | sfan5 <sfan5@live.de> | 2024-03-16 13:27:34 +0100 |
commit | bc8038cffd2b2181f19fa9b07a99b61eba1fe6a1 (patch) | |
tree | 6abe36b4c52134bf5dc4278329e1dae2b13fb517 | |
parent | 2893b7d0f51094bfee0cc27f3bebba8de0fd8018 (diff) | |
download | mpv-bc8038cffd2b2181f19fa9b07a99b61eba1fe6a1.tar.bz2 mpv-bc8038cffd2b2181f19fa9b07a99b61eba1fe6a1.tar.xz |
vo_{drm,wlshm,x11}: add support for video-target-params
-rw-r--r-- | video/out/vo_drm.c | 3 | ||||
-rw-r--r-- | video/out/vo_wlshm.c | 5 | ||||
-rw-r--r-- | video/out/vo_x11.c | 4 |
3 files changed, 12 insertions, 0 deletions
diff --git a/video/out/vo_drm.c b/video/out/vo_drm.c index 25ba06b683..db1981eb7a 100644 --- a/video/out/vo_drm.c +++ b/video/out/vo_drm.c @@ -215,6 +215,9 @@ static int reconfig(struct vo *vo, struct mp_image_params *params) if (mp_sws_reinit(p->sws) < 0) return -1; + mp_mutex_lock(&vo->params_mutex); + vo->target_params = &p->sws->dst; // essentially constant, so this is okay + mp_mutex_unlock(&vo->params_mutex); vo->want_redraw = true; return 0; } diff --git a/video/out/vo_wlshm.c b/video/out/vo_wlshm.c index 0a64e6ccb2..d2aa11d0ad 100644 --- a/video/out/vo_wlshm.c +++ b/video/out/vo_wlshm.c @@ -195,6 +195,7 @@ static int resize(struct vo *vo) vo->dwidth = width; vo->dheight = height; vo_get_src_dst_rects(vo, &p->src, &p->dst, &p->osd); + p->sws->dst = (struct mp_image_params) { .imgfmt = MP_SELECT_LE_BE(IMGFMT_BGR0, IMGFMT_0RGB), .w = width, @@ -203,6 +204,10 @@ static int resize(struct vo *vo) .p_h = 1, }; mp_image_params_guess_csp(&p->sws->dst); + mp_mutex_lock(&vo->params_mutex); + vo->target_params = &p->sws->dst; + mp_mutex_unlock(&vo->params_mutex); + while (p->free_buffers) { buf = p->free_buffers; p->free_buffers = buf->next; diff --git a/video/out/vo_x11.c b/video/out/vo_x11.c index fa9315726d..b637b59e23 100644 --- a/video/out/vo_x11.c +++ b/video/out/vo_x11.c @@ -266,6 +266,10 @@ static bool resize(struct vo *vo) if (mp_sws_reinit(p->sws) < 0) return false; + + mp_mutex_lock(&vo->params_mutex); + vo->target_params = &p->sws->dst; + mp_mutex_unlock(&vo->params_mutex); } vo->want_redraw = true; |