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>
(cherry picked from commit fcbea93cf8)

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 3953c497e2
commit d819a2c986
1 changed files with 2 additions and 1 deletions

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);