Changeset 914:6d4cb6fa9644 in mediastreamer2


Ignore:
Timestamp:
Mar 17, 2010 10:54:52 AM (3 years ago)
Author:
Simon Morlat <simon.morlat@…>
Branch:
default
Message:

Restart alsa when suspended.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/alsa.c

    r856 r914  
    311311} 
    312312 
     313static void alsa_resume(snd_pcm_t *handle){ 
     314        int err; 
     315        ms_warning("Maybe suspended, trying resume"); 
     316        if ((err=snd_pcm_resume(handle))!=0){ 
     317                if (err!=EWOULDBLOCK) ms_warning("snd_pcm_resume() failed: %s",snd_strerror(err)); 
     318        } 
     319} 
     320 
    313321static int alsa_read(snd_pcm_t *handle,unsigned char *buf,int nsamples) 
    314322{ 
     
    321329                        err=snd_pcm_readi(handle,buf,nsamples); 
    322330                        if (err<0) ms_warning("alsa_read: snd_pcm_readi() failed:%s.",snd_strerror(err)); 
     331                }else if (err==-ESTRPIPE){ 
     332                        alsa_resume(handle); 
    323333                }else if (err!=-EWOULDBLOCK){ 
    324334                        ms_warning("alsa_read: snd_pcm_readi() failed:%s.",snd_strerror(err)); 
     
    342352                        err=snd_pcm_writei(handle,buf,nsamples); 
    343353                        if (err<0) ms_warning("alsa_card_write: Error writing sound buffer (nsamples=%i):%s",nsamples,snd_strerror(err)); 
     354                }else if (err==-ESTRPIPE){ 
     355                        alsa_resume(handle); 
    344356                }else if (err!=-EWOULDBLOCK){ 
    345357                        ms_warning("alsa_card_write: snd_pcm_writei() failed:%s.",snd_strerror(err)); 
Note: See TracChangeset for help on using the changeset viewer.