summaryrefslogtreecommitdiffstats
path: root/player/screenshot.c
diff options
context:
space:
mode:
authorKacper Michajłow <kasper93@gmail.com>2023-09-08 21:35:20 +0200
committerDudemanguy <random342@airmail.cc>2023-09-09 00:49:19 +0000
commit385719056eba3fe9f25e2417fbdaafce07c0ac47 (patch)
treeb6546cdb3d28409be2bf3df7eca6de2a407b5112 /player/screenshot.c
parent49dfa1430be6821f21141feb3e0377b650de4e5d (diff)
downloadmpv-385719056eba3fe9f25e2417fbdaafce07c0ac47.tar.bz2
mpv-385719056eba3fe9f25e2417fbdaafce07c0ac47.tar.xz
screenshot: support crop with --screenshot-sw
Diffstat (limited to 'player/screenshot.c')
-rw-r--r--player/screenshot.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/player/screenshot.c b/player/screenshot.c
index 7956c58131..5d40d61655 100644
--- a/player/screenshot.c
+++ b/player/screenshot.c
@@ -384,6 +384,19 @@ static struct mp_image *screenshot_get(struct MPContext *mpctx, int mode,
}
if (use_sw && image && window) {
+ if (mp_image_crop_valid(&image->params) &&
+ (mp_rect_w(image->params.crop) != image->w ||
+ mp_rect_h(image->params.crop) != image->h))
+ {
+ struct mp_image *nimage = mp_image_new_ref(image);
+ if (!nimage) {
+ MP_ERR(mpctx->screenshot_ctx, "mp_image_new_ref failed!\n");
+ return NULL;
+ }
+ mp_image_crop_rc(nimage, image->params.crop);
+ talloc_free(image);
+ image = nimage;
+ }
struct mp_osd_res res = osd_get_vo_res(mpctx->video_out->osd);
struct mp_osd_res image_res = osd_res_from_image_params(&image->params);
if (!osd_res_equals(res, image_res)) {