mmdevice: don't lock read of sys->dev
authorThomas Guillem <thomas@gllm.fr>
Wed, 21 Feb 2018 07:08:18 +0000 (08:08 +0100)
committerThomas Guillem <thomas@gllm.fr>
Wed, 21 Feb 2018 07:17:14 +0000 (08:17 +0100)
sys->dev can't be changed (unless requested by the current thread) from the MMSession thread here.

modules/audio_output/mmdevice.c

index 2e3fdb3..7314748 100644 (file)
@@ -1081,6 +1081,9 @@ static int Start(audio_output_t *aout, audio_sample_format_t *restrict fmt)
 {
     aout_sys_t *sys = aout->sys;
 
+    if (sys->dev == NULL)
+        return -1;
+
     const bool b_spdif = AOUT_FMT_SPDIF(fmt);
     const bool b_hdmi = AOUT_FMT_HDMI(fmt);
     if (b_spdif || b_hdmi)
@@ -1108,14 +1111,6 @@ static int Start(audio_output_t *aout, audio_sample_format_t *restrict fmt)
 
     EnterMTA();
     EnterCriticalSection(&sys->lock);
-
-    if (sys->dev == NULL)
-    {
-        LeaveCriticalSection(&sys->lock);
-        LeaveMTA();
-        return -1;
-    }
-
     for (;;)
     {
         char *modlist = var_InheritString(aout, "mmdevice-backend");