Rockbox open source high quality audio player as a Music Player Daemon
mpris rockbox mpd libadwaita audio rust zig deno
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

hosted: alsa: Fix two bugs when recording

Change-Id: Ib97857874676ea4aa8f04d44e048de8465a4da4f

+6 -4
+6 -4
firmware/target/hosted/pcm-alsa.c
··· 475 475 err = snd_pcm_start(handle); 476 476 if (err < 0) { 477 477 logf("cb start error: %s", snd_strerror(err)); 478 - goto abort; 478 + /* Depending on the error we might be SOL */ 479 479 } 480 480 } 481 481 ··· 532 532 /* Close old handle */ 533 533 close_hwdev(); 534 534 535 - if ((err = snd_pcm_open(&handle, device, SND_PCM_STREAM_PLAYBACK, 0)) < 0) 535 + if ((err = snd_pcm_open(&handle, device, mode, 0)) < 0) 536 536 { 537 537 panicf("%s(): Cannot open device %s: %s", __func__, device, snd_strerror(err)); 538 538 } ··· 687 687 return; 688 688 case SND_PCM_STATE_XRUN: 689 689 { 690 - logf("Trying to recover from error"); 690 + logf("Trying to recover from underrun"); 691 691 int err = snd_pcm_recover(handle, -EPIPE, 0); 692 692 if (err < 0) 693 693 logf("Recovery failed: %s", snd_strerror(err)); ··· 735 735 err = snd_pcm_start(handle); 736 736 if (err < 0) { 737 737 logf("start error: %s", snd_strerror(err)); 738 + /* We will recover on the next iteration */ 738 739 } 739 740 740 741 break; ··· 806 807 void pcm_rec_dma_close(void) 807 808 { 808 809 logf("Rec DMA Close"); 809 - close_hwdev(); 810 + // close_hwdev(); 811 + open_hwdev(playback_dev, SND_PCM_STREAM_PLAYBACK; 810 812 } 811 813 812 814 void pcm_rec_dma_start(void *start, size_t size)