lavf: move urlcontext_child_class_next() to protocols.c

It needs to access the list of protocols directly, so it more properly
belongs there.
This commit is contained in:
Anton Khirnov 2016-02-19 10:59:46 +01:00
parent 0fa00d0591
commit 7d61dc95d7
3 changed files with 23 additions and 20 deletions

View File

@ -49,25 +49,6 @@ static void *urlcontext_child_next(void *obj, void *prev)
return NULL;
}
static const AVClass *urlcontext_child_class_next(const AVClass *prev)
{
int i;
/* find the protocol that corresponds to prev */
for (i = 0; ff_url_protocols[i]; i++) {
if (ff_url_protocols[i]->priv_data_class == prev) {
i++;
break;
}
}
/* find next protocol with priv options */
for (; ff_url_protocols[i]; i++)
if (ff_url_protocols[i]->priv_data_class)
return ff_url_protocols[i]->priv_data_class;
return NULL;
}
static const AVOption options[] = { { NULL } };
const AVClass ffurl_context_class = {
.class_name = "URLContext",
@ -75,7 +56,7 @@ const AVClass ffurl_context_class = {
.option = options,
.version = LIBAVUTIL_VERSION_INT,
.child_next = urlcontext_child_next,
.child_class_next = urlcontext_child_class_next,
.child_class_next = ff_urlcontext_child_class_next,
};
/*@}*/

View File

@ -163,6 +163,26 @@ const URLProtocol *ff_url_protocols[] = {
NULL,
};
const AVClass *ff_urlcontext_child_class_next(const AVClass *prev)
{
int i;
/* find the protocol that corresponds to prev */
for (i = 0; ff_url_protocols[i]; i++) {
if (ff_url_protocols[i]->priv_data_class == prev) {
i++;
break;
}
}
/* find next protocol with priv options */
for (; ff_url_protocols[i]; i++)
if (ff_url_protocols[i]->priv_data_class)
return ff_url_protocols[i]->priv_data_class;
return NULL;
}
const char *avio_enum_protocols(void **opaque, int output)
{
const URLProtocol **p = *opaque;

View File

@ -264,6 +264,8 @@ int ff_url_join(char *str, int size, const char *proto,
void ff_make_absolute_url(char *buf, int size, const char *base,
const char *rel);
const AVClass *ff_urlcontext_child_class_next(const AVClass *prev);
extern const URLProtocol *ff_url_protocols[];
#endif /* AVFORMAT_URL_H */