mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-25 03:01:03 +00:00
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.
This commit is contained in:
parent
20ee2db955
commit
e0c9b04538
1 changed files with 1 additions and 0 deletions
|
@ -454,6 +454,7 @@ gst_device_provider_start (GstDeviceProvider * provider)
|
|||
g_mutex_lock (&provider->priv->start_lock);
|
||||
|
||||
if (provider->priv->started_count > 0) {
|
||||
provider->priv->started_count++;
|
||||
ret = TRUE;
|
||||
goto started;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue