Browse Source

Merge pull request #11 from thekr1s/alsa-open-crash

Prevent crash in audio_backend/alsa.rs when switching from Kodi audio…
Sasha Hilton 7 years ago
parent
commit
53fab4dc86
1 changed files with 9 additions and 4 deletions
  1. 9 4
      src/audio_backend/alsa.rs

+ 9 - 4
src/audio_backend/alsa.rs

@@ -16,12 +16,17 @@ impl Open for AlsaSink {
 
 impl Sink for AlsaSink {
     fn start(&mut self) -> io::Result<()> {
-        if self.0.is_some() {
-        } else {
-            self.0 = Some(PCM::open(&*self.1,
+        if self.0.is_none() {
+            match PCM::open(&*self.1,
                                     Stream::Playback, Mode::Blocking,
                                     Format::Signed16, Access::Interleaved,
-                                    2, 44100).ok().unwrap());
+                                    2, 44100) {
+                Ok(f) => self.0 = Some(f),
+                Err(e) => {
+                    error!("Alsa error PCM open {}", e); 
+                    return Err(io::Error::new(io::ErrorKind::Other, "Alsa error: PCM open failed"));
+                }
+            }
         }
         Ok(())
     }