Bit of an edge case since image-lut requires the frames to be remapped again so the normal redraw when paused doesn't work. Also we use update_options in the VOCTRL here.
Unified · Split
| @@ -1518,13 +1518,19 @@ static int control(struct vo *vo, uint32_t request, void *data) · 1517 unmodified lines | |||
| 1518 | return VO_TRUE; | 1518 | return VO_TRUE; |
| 1519 | 1519 | ||
| 1520 | case VOCTRL_UPDATE_RENDER_OPTS: { | 1520 | case VOCTRL_UPDATE_RENDER_OPTS: { |
| 1521 | m_config_cache_update(p->opts_cache); | ||
| 1522 | update_ra_ctx_options(vo, &p->ra_ctx->opts); | 1521 | update_ra_ctx_options(vo, &p->ra_ctx->opts); |
| 1523 | if (p->ra_ctx->fns->update_render_opts) | 1522 | if (p->ra_ctx->fns->update_render_opts) |
| 1524 | p->ra_ctx->fns->update_render_opts(p->ra_ctx); | 1523 | p->ra_ctx->fns->update_render_opts(p->ra_ctx); |
| 1525 | update_render_options(vo); | ||
| 1526 | vo->want_redraw = true; | 1524 | vo->want_redraw = true; |
| 1527 | 1525 | ||
| 1526 | // Special case for --image-lut which requires a full reset. | ||
| 1527 | int old_type = p->next_opts->image_lut.type; | ||
| 1528 | update_options(vo); | ||
| 1529 | struct user_lut image_lut = p->next_opts->image_lut; | ||
| 1530 | p->want_reset |= image_lut.opt && ((!image_lut.path && image_lut.opt) || | ||
| 1531 | (image_lut.path && strcmp(image_lut.path, image_lut.opt)) || | ||
| 1532 | (old_type != image_lut.type)); | ||
| 1533 | |||
| 1528 | // Also re-query the auto profile, in case `update_render_options` | 1534 | // Also re-query the auto profile, in case `update_render_options` |
| 1529 | // unloaded a manually specified icc profile in favor of | 1535 | // unloaded a manually specified icc profile in favor of |
| 1530 | // icc-profile-auto | 1536 | // icc-profile-auto |