( locsemege | 2019. 10. 12., szo – 12:22 )

Ne ez az, ha meg van kergülve, nekem is ezt csinálja. Másodpercenként vagy egy tucatszor eldobja az audio kapcsolatot, s újra kell azt építeni. Az snd_pcm_writei() negatív értékkel tér vissza.

snd_pcm_sframes_t audio_write(struct audio_data *ad, int16_t *buffer, snd_pcm_uframes_t buffersize, int silent)
{
    if ((ad->frames = snd_pcm_writei(ad->pcm_handle, buffer, buffersize)) < 0) {
        if (*ad->verbose || !silent) {
            snprintf(msgbuf, MBS, "Cannot write to pcm (%s)", snd_strerror((int)ad->frames));
            msgbook_enqueue(&mb0, MB_TYPE_ERROR, MODULE, msgbuf);
        }
    }

    return ad->frames;
}

Illetve még ez érdekes:

    if (mix_audio(pctx)) {
        /* playback decoded data */
        ret_frames = audio_write(&pctx->ad_playback, pctx->pcm, pctx->pcmlen, 1);
        if (ret_frames < 0) {
            int ret;
            /* underrun, let's handle it and try again */
            pctx->underruns++;
            ret = audio_recover(&pctx->ad_playback, (int)ret_frames, 1);
            if (ret == 0) {
                ret_frames = audio_write(&pctx->ad_playback, pctx->pcm, pctx->pcmlen, 0);
                if (ret_frames < 0)
                    die("audio_write() failed", 1);
            } else {
                die("audio_recover() on playback failed", 1);
            }
        }
    }

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE