summaryrefslogtreecommitdiffstats
path: root/sys/oss/gstosselement.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/oss/gstosselement.c')
-rw-r--r--sys/oss/gstosselement.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/sys/oss/gstosselement.c b/sys/oss/gstosselement.c
index 6d1e151d..9e1814a5 100644
--- a/sys/oss/gstosselement.c
+++ b/sys/oss/gstosselement.c
@@ -207,6 +207,7 @@ gst_osselement_class_probe_devices (GstOssElementClass *klass,
gboolean check)
{
static gboolean init = FALSE;
+ static GList *device_combinations;
if (!init && !check) {
gchar *dsp_base[] = { "/dev/dsp", "/dev/sound/dsp", NULL };
@@ -214,12 +215,11 @@ gst_osselement_class_probe_devices (GstOssElementClass *klass,
GstOssDeviceCombination devices[16];
gint n;
- while (klass->device_combinations) {
- GList *item = klass->device_combinations;
+ while (device_combinations) {
+ GList *item = device_combinations;
GstOssDeviceCombination *combi = item->data;
- klass->device_combinations =
- g_list_remove (klass->device_combinations, item);
+ device_combinations = g_list_remove (device_combinations, item);
g_free (combi->dsp);
g_free (combi->mixer);
@@ -261,8 +261,7 @@ gst_osselement_class_probe_devices (GstOssElementClass *klass,
combi->mixer = devices[n].mixer;
devices[n].dsp = devices[n].mixer = NULL;
- klass->device_combinations =
- g_list_append (klass->device_combinations, combi);
+ device_combinations = g_list_append (device_combinations, combi);
}
}
@@ -278,6 +277,8 @@ gst_osselement_class_probe_devices (GstOssElementClass *klass,
init = TRUE;
}
+ klass->device_combinations = device_combinations;
+
return init;
}