deviceprovider: fix counting number of times started
GstDeviceProvider has a started_count
private variable counter,
and the gst_device_provider_start()
documentation emphasizes the
importance of balancing the start and stop calls.
However, when starting a provider that is already started, the current code will never increment the counter more than once.
So you start it twice, but it will have start_count 1, which is the maximum value it will ever see.
Then when you stop it twice, on the 2nd stop, after decrementing the
counter in gst_device_provider_stop()
:
else if (provider->priv->started_count < 1) {
g_critical
("Trying to stop a GstDeviceProvider %s which is already stopped",
GST_OBJECT_NAME (provider));
and the program is killed.
Fix this by incrementing the counter when starting a device provider that was already started.