diff options
author | Kacper Michajłow <kasper93@gmail.com> | 2023-09-08 21:35:20 +0200 |
---|---|---|
committer | Dudemanguy <random342@airmail.cc> | 2023-09-09 00:49:19 +0000 |
commit | 385719056eba3fe9f25e2417fbdaafce07c0ac47 (patch) | |
tree | b6546cdb3d28409be2bf3df7eca6de2a407b5112 /player/screenshot.c | |
parent | 49dfa1430be6821f21141feb3e0377b650de4e5d (diff) | |
download | mpv-385719056eba3fe9f25e2417fbdaafce07c0ac47.tar.bz2 mpv-385719056eba3fe9f25e2417fbdaafce07c0ac47.tar.xz |
screenshot: support crop with --screenshot-sw
Diffstat (limited to 'player/screenshot.c')
-rw-r--r-- | player/screenshot.c | 13 |
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)) { |