Commit 7d61dc95 authored by Anton Khirnov's avatar Anton Khirnov

lavf: move urlcontext_child_class_next() to protocols.c

It needs to access the list of protocols directly, so it more properly
belongs there.
parent 0fa00d05
...@@ -49,25 +49,6 @@ static void *urlcontext_child_next(void *obj, void *prev) ...@@ -49,25 +49,6 @@ static void *urlcontext_child_next(void *obj, void *prev)
return NULL; 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 } }; static const AVOption options[] = { { NULL } };
const AVClass ffurl_context_class = { const AVClass ffurl_context_class = {
.class_name = "URLContext", .class_name = "URLContext",
...@@ -75,7 +56,7 @@ const AVClass ffurl_context_class = { ...@@ -75,7 +56,7 @@ const AVClass ffurl_context_class = {
.option = options, .option = options,
.version = LIBAVUTIL_VERSION_INT, .version = LIBAVUTIL_VERSION_INT,
.child_next = urlcontext_child_next, .child_next = urlcontext_child_next,
.child_class_next = urlcontext_child_class_next, .child_class_next = ff_urlcontext_child_class_next,
}; };
/*@}*/ /*@}*/
......
...@@ -163,6 +163,26 @@ const URLProtocol *ff_url_protocols[] = { ...@@ -163,6 +163,26 @@ const URLProtocol *ff_url_protocols[] = {
NULL, 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 char *avio_enum_protocols(void **opaque, int output)
{ {
const URLProtocol **p = *opaque; const URLProtocol **p = *opaque;
......
...@@ -264,6 +264,8 @@ int ff_url_join(char *str, int size, const char *proto, ...@@ -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, void ff_make_absolute_url(char *buf, int size, const char *base,
const char *rel); const char *rel);
const AVClass *ff_urlcontext_child_class_next(const AVClass *prev);
extern const URLProtocol *ff_url_protocols[]; extern const URLProtocol *ff_url_protocols[];
#endif /* AVFORMAT_URL_H */ #endif /* AVFORMAT_URL_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment