Mercurial > mplayer.hg
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 } |