summaryrefslogtreecommitdiff
path: root/libavformat/concat.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavformat/concat.c')
-rw-r--r--libavformat/concat.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/libavformat/concat.c b/libavformat/concat.c
index 46b520fe80..19c83c309a 100644
--- a/libavformat/concat.c
+++ b/libavformat/concat.c
@@ -135,19 +135,20 @@ static int concat_read(URLContext *h, unsigned char *buf, int size)
while (size > 0) {
result = ffurl_read(nodes[i].uc, buf, size);
- if (result < 0)
- return total ? total : result;
- if (!result) {
+ if (result == AVERROR_EOF) {
if (i + 1 == data->length ||
ffurl_seek(nodes[++i].uc, 0, SEEK_SET) < 0)
break;
+ result = 0;
}
+ if (result < 0)
+ return total ? total : result;
total += result;
buf += result;
size -= result;
}
data->current = i;
- return total;
+ return total ? total : result;
}
static int64_t concat_seek(URLContext *h, int64_t pos, int whence)