Unified · Split
| @@ -158,6 +158,8 @@ struct priv { · 157 unmodified lines | |||
| 158 | // Performance data of last frame | 158 | // Performance data of last frame |
| 159 | struct frame_info perf_fresh; | 159 | struct frame_info perf_fresh; |
| 160 | struct frame_info perf_redraw; | 160 | struct frame_info perf_redraw; |
| 161 | |||
| 162 | struct mp_image_params target_params; | ||
| 161 | }; | 163 | }; |
| 162 | 164 | ||
| 163 | static void update_render_options(struct vo *vo); | 165 | static void update_render_options(struct vo *vo); |
| @@ -1129,9 +1131,7 @@ static void draw_frame(struct vo *vo, struct vo_frame *frame) · 965 unmodified lines | |||
| 1129 | pl_frames_infer_mix(p->rr, &mix, &target, &ref_frame); | 1131 | pl_frames_infer_mix(p->rr, &mix, &target, &ref_frame); |
| 1130 | 1132 | ||
| 1131 | mp_mutex_lock(&vo->params_mutex); | 1133 | mp_mutex_lock(&vo->params_mutex); |
| 1132 | if (!vo->target_params) | 1134 | p->target_params = (struct mp_image_params){ |
| 1133 | vo->target_params = talloc(vo, struct mp_image_params); | ||
| 1134 | *vo->target_params = (struct mp_image_params){ | ||
| 1135 | .imgfmt_name = swframe.fbo->params.format | 1135 | .imgfmt_name = swframe.fbo->params.format |
| 1136 | ? swframe.fbo->params.format->name : NULL, | 1136 | ? swframe.fbo->params.format->name : NULL, |
| 1137 | .w = swframe.fbo->params.w, | 1137 | .w = swframe.fbo->params.w, |
| @@ -1140,6 +1140,7 @@ static void draw_frame(struct vo *vo, struct vo_frame *frame) · 2 unmodified lines | |||
| 1140 | .repr = target.repr, | 1140 | .repr = target.repr, |
| 1141 | .rotate = target.rotation, | 1141 | .rotate = target.rotation, |
| 1142 | }; | 1142 | }; |
| 1143 | vo->target_params = &p->target_params; | ||
| 1143 | 1144 | ||
| 1144 | if (vo->params) { | 1145 | if (vo->params) { |
| 1145 | vo->params->color.hdr = ref_frame.color.hdr; | 1146 | vo->params->color.hdr = ref_frame.color.hdr; |
| @@ -1231,7 +1232,9 @@ static int reconfig(struct vo *vo, struct mp_image_params *params) · 85 unmodified lines | |||
| 1231 | return -1; | 1232 | return -1; |
| 1232 | 1233 | ||
| 1233 | resize(vo); | 1234 | resize(vo); |
| 1234 | TA_FREEP(&vo->target_params); | 1235 | mp_mutex_lock(&vo->params_mutex); |
| 1236 | vo->target_params = NULL; | ||
| 1237 | mp_mutex_unlock(&vo->params_mutex); | ||
| 1235 | return 0; | 1238 | return 0; |
| 1236 | } | 1239 | } |
| 1237 | 1240 | ||