avutil/fifo: Fix the case where func() returns less bytes than requested in av_fifo_generic_write()

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Zhang Rui 2015-07-14 14:47:26 +08:00 committed by Michael Niedermayer
parent 6e80fe1ecd
commit fcbea93cf8

View File

@ -129,7 +129,8 @@ int av_fifo_generic_write(AVFifoBuffer *f, void *src, int size,
do {
int len = FFMIN(f->end - wptr, size);
if (func) {
if (func(src, wptr, len) <= 0)
len = func(src, wptr, len);
if (len <= 0)
break;
} else {
memcpy(wptr, src, len);