raspi/avdec: improve demux read function

This commit is contained in:
Stefan Seyfried
2013-10-20 22:36:52 +02:00
parent 2f7cb6401f
commit 0e49bfdb00

View File

@@ -511,12 +511,15 @@ int Dec::dmx_read(uint8_t *buf, int buf_size)
#ifndef EXTRA_BUFFER #ifndef EXTRA_BUFFER
int tmp, ret = 0, cnt = 0; int tmp, ret = 0, cnt = 0;
while (++cnt < 20) { while (++cnt < 20) {
tmp = dmx->Read(buf + ret, buf_size - ret, 10); tmp = dmx->Read(buf + ret, buf_size - ret, 50);
if (tmp > 0) if (tmp > 0)
ret += tmp; ret += tmp;
if (ret > buf_size - 512) if (ret >= buf_size) /* read until buffer is completely full, libavcodec sometimes */
break; /* requests small blocks and does not like 0 returned */
if (! dec_running)
break; break;
} }
//printf("read: cnt %2d buf_size %5d ret %5d audio: %d\n", cnt, buf_size, ret, dmx == audioDemux);
return ret; return ret;
#else #else
int tmp = 0, ret = 0; int tmp = 0, ret = 0;