extern const URLProtocol ff_file_protocol;
extern const URLProtocol ff_ftp_protocol;
extern const URLProtocol ff_gopher_protocol;
+extern const URLProtocol ff_gophers_protocol;
extern const URLProtocol ff_hls_protocol;
extern const URLProtocol ff_http_protocol;
extern const URLProtocol ff_httpproxy_protocol;
extern const URLProtocol ff_udp_protocol;
extern const URLProtocol ff_udplite_protocol;
extern const URLProtocol ff_unix_protocol;
+extern const URLProtocol ff_libamqp_protocol;
+extern const URLProtocol ff_librist_protocol;
extern const URLProtocol ff_librtmp_protocol;
extern const URLProtocol ff_librtmpe_protocol;
extern const URLProtocol ff_librtmps_protocol;
extern const URLProtocol ff_libsrt_protocol;
extern const URLProtocol ff_libssh_protocol;
extern const URLProtocol ff_libsmbclient_protocol;
+extern const URLProtocol ff_libzmq_protocol;
#include "libavformat/protocol_list.c"
-const AVClass *ff_urlcontext_child_class_next(const AVClass *prev)
+const AVClass *ff_urlcontext_child_class_iterate(void **iter)
{
- int i;
+ const AVClass *ret = NULL;
+ uintptr_t i;
- /* find the protocol that corresponds to prev */
- for (i = 0; prev && url_protocols[i]; i++) {
- if (url_protocols[i]->priv_data_class == prev) {
- i++;
+ for (i = (uintptr_t)*iter; url_protocols[i]; i++) {
+ ret = url_protocols[i]->priv_data_class;
+ if (ret)
break;
- }
}
- /* find next protocol with priv options */
- for (; url_protocols[i]; i++)
- if (url_protocols[i]->priv_data_class)
- return url_protocols[i]->priv_data_class;
- return NULL;
+ *iter = (void*)(uintptr_t)(url_protocols[i] ? i + 1 : i);
+ return ret;
}
-
const char *avio_enum_protocols(void **opaque, int output)
{
const URLProtocol **p = *opaque;
return avio_enum_protocols(opaque, output);
}
+const AVClass *avio_protocol_get_class(const char *name)
+{
+ int i = 0;
+ for (i = 0; url_protocols[i]; i++) {
+ if (!strcmp(url_protocols[i]->name, name))
+ return url_protocols[i]->priv_data_class;
+ }
+ return NULL;
+}
+
const URLProtocol **ffurl_get_protocols(const char *whitelist,
const char *blacklist)
{