$OpenBSD: patch-libmpcodecs_ad_pcm_c,v 1.2 2005/10/16 21:29:30 espie Exp $ --- libmpcodecs/ad_pcm.c.orig Sun Feb 27 00:02:09 2005 +++ libmpcodecs/ad_pcm.c Sun Oct 16 23:23:48 2005 @@ -20,6 +20,8 @@ LIBAD_EXTERN(pcm) static int init(sh_audio_t *sh_audio) { WAVEFORMATEX *h=sh_audio->wf; + if (!h) + return 0; sh_audio->i_bps=h->nAvgBytesPerSec; sh_audio->channels=h->nChannels; sh_audio->samplerate=h->nSamplesPerSec; @@ -96,8 +98,8 @@ static int control(sh_audio_t *sh,int cm static int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int maxlen) { - int len=sh_audio->channels*sh_audio->samplesize-1; - len=(minlen+len)&(~len); // sample align + unsigned len = sh_audio->channels*sh_audio->samplesize; + len = maxlen - maxlen % len; // sample align len=demux_read_data(sh_audio->ds,buf,len); return len; }