diff options
Diffstat (limited to 'libavformat/avio.c')
-rw-r--r-- | libavformat/avio.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/libavformat/avio.c b/libavformat/avio.c index 7b066e3c08..934fa213e9 100644 --- a/libavformat/avio.c +++ b/libavformat/avio.c @@ -49,7 +49,7 @@ static const AVClass urlcontext_class = static int default_interrupt_cb(void); URLProtocol *first_protocol = NULL; -URLInterruptCB *url_interrupt_cb = default_interrupt_cb; +int (*url_interrupt_cb)(void) = default_interrupt_cb; URLProtocol *av_protocol_next(URLProtocol *p) { @@ -57,6 +57,16 @@ URLProtocol *av_protocol_next(URLProtocol *p) else return first_protocol; } +const char *avio_enum_protocols(void **opaque, int output) +{ + URLProtocol **p = opaque; + *p = *p ? (*p)->next : first_protocol; + if (!*p) return NULL; + if ((output && (*p)->url_write) || (!output && (*p)->url_read)) + return (*p)->name; + return avio_enum_protocols(opaque, output); +} + int ffurl_register_protocol(URLProtocol *protocol, int size) { URLProtocol **p; @@ -389,7 +399,7 @@ static int default_interrupt_cb(void) return 0; } -void avio_set_interrupt_cb(URLInterruptCB *interrupt_cb) +void avio_set_interrupt_cb(int (*interrupt_cb)(void)) { if (!interrupt_cb) interrupt_cb = default_interrupt_cb; |