Player test vout imbalance
I don't know if it's a bug in the test case or in the core code, but something is wrong with the input resource video output reuse.
This snippet in src/input/resource.c
is basically useless:
if (vout_rsc->started)
{
assert(cfg->vout != NULL);
int ret = vout_ChangeSource(dcfg.vout, dcfg.fmt);
if (ret == 0)
{
vlc_mutex_unlock(&p_resource->lock);
return dcfg.vout;
}
}
Why is it useless? Well, there is this call right after it:
if (vout_Request(&dcfg, vctx, p_resource->p_input)) { /* ... */ }
And that will internally redo the same vout_ChangeSource()
but better, as it will fix the video format first.
If you remove the first snippet, the source player test fails due to an imbalance in the count of vout
starts and stops. Note that the source player does not test the case of vout_ChangeSource()
failing, only succeeding. So my guess is that this is a real bug that is simply not (yet) covered by the player test cases.
The video output test does check the failing scenario, which seems to work fine. But it does not count start/stop events.