#include "avformat.h"
#include "libavutil/avstring.h"
#include "libavutil/mem.h"
+#include "url.h"
#define AV_CAT_SEPARATOR "|"
struct concat_nodes *nodes = data->nodes;
for (i = 0; i != data->length; i++)
- err |= url_close(nodes[i].uc);
+ err |= ffurl_close(nodes[i].uc);
av_freep(&data->nodes);
av_freep(&h->priv_data);
uri += len + strspn(uri+len, AV_CAT_SEPARATOR);
/* creating URLContext */
- if ((err = url_open(&uc, node_uri, flags)) < 0)
+ if ((err = ffurl_open(&uc, node_uri, flags)) < 0)
break;
/* creating size */
- if ((size = url_filesize(uc)) < 0) {
- url_close(uc);
+ if ((size = ffurl_size(uc)) < 0) {
+ ffurl_close(uc);
err = AVERROR(ENOSYS);
break;
}
size_t i = data->current;
while (size > 0) {
- result = url_read(nodes[i].uc, buf, size);
+ result = ffurl_read(nodes[i].uc, buf, size);
if (result < 0)
return total ? total : result;
if (!result)
if (i + 1 == data->length ||
- url_seek(nodes[++i].uc, 0, SEEK_SET) < 0)
+ ffurl_seek(nodes[++i].uc, 0, SEEK_SET) < 0)
break;
total += result;
buf += result;
/* get the absolute position */
for (i = 0; i != data->current; i++)
pos += nodes[i].size;
- pos += url_seek(nodes[i].uc, 0, SEEK_CUR);
+ pos += ffurl_seek(nodes[i].uc, 0, SEEK_CUR);
whence = SEEK_SET;
/* fall through with the absolute position */
case SEEK_SET:
return AVERROR(EINVAL);
}
- result = url_seek(nodes[i].uc, pos, whence);
+ result = ffurl_seek(nodes[i].uc, pos, whence);
if (result >= 0) {
data->current = i;
while (i)
}
URLProtocol ff_concat_protocol = {
- "concat",
- concat_open,
- concat_read,
- NULL,
- concat_seek,
- concat_close,
+ .name = "concat",
+ .url_open = concat_open,
+ .url_read = concat_read,
+ .url_seek = concat_seek,
+ .url_close = concat_close,
};