Commit 658ee05f authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont
Browse files

display: try next module if conversion fails

After a display module initialises succesfully, a conversion filter
chain must be built from the source format to the display format.
Currently, this is effectively assumed to succeed. When it fails,
the display module is closed and display creation is given up entirely.

However most display plugins accept practically any source format that
is thrown at them, with little or no consideration for the possibility
of conversion chain failure.

After closing the unusable display module, with this change, the next
display module in decreasing priority is tried.
parent e9877f68
Pipeline #179884 passed with stage
in 14 minutes and 3 seconds
......@@ -677,19 +677,15 @@ vout_display_t *vout_display_New(vlc_object_t *parent,
int ret = cb(vd, &osys->display_fmt, vctx);
if (ret == VLC_SUCCESS) {
msg_Dbg(vd, "using %s module \"%s\"", "vout display",
module_get_object(mods[i]));
if (VoutDisplayCreateRender(vd) == 0) {
msg_Dbg(vd, "using %s module \"%s\"", "vout display",
module_get_object(mods[i]));
free(mods);
return vd;
}
if (vd->ops->close != NULL)
vd->ops->close(vd);
vlc_objres_clear(VLC_OBJECT(vd));
video_format_Clean(&osys->display_fmt);
break;
}
vlc_objres_clear(VLC_OBJECT(vd));
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment