rtl_source_c: fix several off-by-one errors

Those summed up and caused sample loss.
Thanks to Hoernchen for helping me tracking those down.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
This commit is contained in:
Steve Markgraf 2012-05-13 04:17:02 +02:00
parent 52b5a8a4d3
commit 20d4ef7e4a
1 changed files with 3 additions and 3 deletions

View File

@ -249,14 +249,14 @@ int rtl_source_c::work( int noutput_items,
unsigned short *buf = _buf[_buf_head];
if (noutput_items <= int(_samp_avail)) {
for (int i = 0; i <= noutput_items; ++i)
for (int i = 0; i < noutput_items; ++i)
*out++ = _lut[ *(buf + _buf_offset + i) ];
_buf_offset += noutput_items;
_samp_avail -= noutput_items;
return noutput_items;
} else {
for (int i = 0; i <= int(_samp_avail); ++i)
for (int i = 0; i < int(_samp_avail); ++i)
*out++ = _lut[ *(buf + _buf_offset + i) ];
{
@ -271,7 +271,7 @@ int rtl_source_c::work( int noutput_items,
int remaining = noutput_items - _samp_avail;
for (int i = 0; i <= remaining; ++i)
for (int i = 0; i < remaining; ++i)
*out++ = _lut[ *(buf + _buf_offset + i) ];
_buf_offset = remaining;