Browse Source

mmdevice: distinguish between initial init failure and device not acquired

So we can keep the module around waiting for a new device.
mmdevice-clean/8
Steve Lhomme 7 months ago
parent
commit
84e6202e4d
  1. 5
      modules/audio_output/mmdevice.c

5
modules/audio_output/mmdevice.c

@ -76,6 +76,7 @@ static char default_device_b[1] = "";
enum device_acquisition_status {
DEVICE_PENDING,
DEVICE_INITIALISATION_FAILED,
DEVICE_ACQUISITION_FAILED,
DEVICE_ACQUIRED,
};
@ -1152,7 +1153,7 @@ static void *MMThread(void *data)
error:
vlc_mutex_lock(&sys->lock);
sys->device_status = DEVICE_ACQUISITION_FAILED;
sys->device_status = DEVICE_INITIALISATION_FAILED;
vlc_cond_signal(&sys->ready);
vlc_mutex_unlock(&sys->lock);
return NULL;
@ -1381,7 +1382,7 @@ static int Open(vlc_object_t *obj)
{
vlc_cond_wait(&sys->ready, &sys->lock);
if (sys->device_status == DEVICE_ACQUISITION_FAILED)
if (sys->device_status == DEVICE_INITIALISATION_FAILED)
{
vlc_mutex_unlock(&sys->lock);
Close(obj);

Loading…
Cancel
Save