comparison libmpcodecs/ad_pcm.c @ 19383:0a6382b5b6ee

Change pcm decode_audio to return data based on minlen instead of maxlen to avoid demuxing unnecessarily much at once.
author uau
date Sun, 13 Aug 2006 23:09:17 +0000
parents 03f12c4dac0d
children 666efb20e7d5
comparison
equal deleted inserted replaced
19382:7c6c205b88b6 19383:0a6382b5b6ee
118 } 118 }
119 119
120 static int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int maxlen) 120 static int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int maxlen)
121 { 121 {
122 unsigned len = sh_audio->channels*sh_audio->samplesize; 122 unsigned len = sh_audio->channels*sh_audio->samplesize;
123 len = maxlen - maxlen % len; // sample align 123 len = (minlen + len - 1) / len * len;
124 if (len > maxlen)
125 // if someone needs hundreds of channels adjust audio_out_minsize
126 // based on channels in preinit()
127 return -1;
124 len=demux_read_data(sh_audio->ds,buf,len); 128 len=demux_read_data(sh_audio->ds,buf,len);
125 return len; 129 return len;
126 } 130 }