static void update_output_caps(struct chain *p) { if (p->type != MP_OUTPUT_CHAIN_VIDEO) return; mp_autoconvert_clear(p->convert); if (p->vo) { uint8_t allowed_output_formats[IMGFMT_END - IMGFMT_START] = {0}; vo_query_formats(p->vo, allowed_output_formats); for (int n = 0; n < MP_ARRAY_SIZE(allowed_output_formats); n++) { if (allowed_output_formats[n]) mp_autoconvert_add_imgfmt(p->convert, IMGFMT_START + n, 0); } if (p->vo->hwdec_devs) mp_autoconvert_add_vo_hwdec_subfmts(p->convert, p->vo->hwdec_devs); } }
static void set_allowed_vo_formats(struct vf_chain *c, struct vo *vo) { vo_query_formats(vo, c->allowed_output_formats); }