In the repo, there is only one function that enumerates protocols:

  fftools/cmdutils.c: show_protocols()

This commit simply has that function make calls directly to the
desired functions, namely:

  * avio_enum_protocols_for_input()
  * avio_enum_protocols_for_output()
---
 fftools/cmdutils.c      |  4 ++--
 libavformat/avio.h      | 22 ++++++++++++++++++++++
 libavformat/protocols.c |  2 --
 3 files changed, 24 insertions(+), 4 deletions(-)

diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c
index 64237a4796..87f9be64c3 100644
--- a/fftools/cmdutils.c
+++ b/fftools/cmdutils.c
@@ -1681,10 +1681,10 @@ int show_protocols(void *optctx, const char *opt, const 
char *arg)
 
     printf("Supported file protocols:\n"
            "Input:\n");
-    while ((name = avio_enum_protocols(&opaque, 0)))
+    while ((name = avio_enum_protocols_for_input(&opaque)))
         printf("  %s\n", name);
     printf("Output:\n");
-    while ((name = avio_enum_protocols(&opaque, 1)))
+    while ((name = avio_enum_protocols_for_output(&opaque)))
         printf("  %s\n", name);
     return 0;
 }
diff --git a/libavformat/avio.h b/libavformat/avio.h
index 3b92cf742a..455b872260 100644
--- a/libavformat/avio.h
+++ b/libavformat/avio.h
@@ -788,6 +788,28 @@ int avio_close_dyn_buf(AVIOContext *s, uint8_t **pbuffer);
  */
 const char *avio_enum_protocols(void **const opaque, const int output);
 
+/**
+ * Iterate through names of available output protocols.
+ *
+ * @param opaque A private pointer representing current protocol.
+ *        It must be a pointer to NULL on first iteration and will
+ *        be updated by successive calls to avio_enum_protocols_for_output.
+ *
+ * @return A static string containing the name of current protocol or NULL
+ */
+const char *avio_enum_protocols_for_output(void **const opaque);
+
+/**
+ * Iterate through names of available input protocols.
+ *
+ * @param opaque A private pointer representing current protocol.
+ *        It must be a pointer to NULL on first iteration and will
+ *        be updated by successive calls to avio_enum_protocols_for_input.
+ *
+ * @return A static string containing the name of current protocol or NULL
+ */
+const char *avio_enum_protocols_for_input(void **const opaque);
+
 /**
  * Get AVClass by names of available protocols.
  *
diff --git a/libavformat/protocols.c b/libavformat/protocols.c
index 4cb8ae0b63..ca04ed2eb5 100644
--- a/libavformat/protocols.c
+++ b/libavformat/protocols.c
@@ -102,13 +102,11 @@ const AVClass *ff_urlcontext_child_class_iterate(void 
**iter)
     *opaque = NULL; \
     return NULL;
 
-static inline
 const char *avio_enum_protocols_for_output(void **const opaque)
 {
     AVIO_ENUM_PROTOCOLS(url_write);
 }
 
-static inline
 const char *avio_enum_protocols_for_input(void **const opaque)
 {
     AVIO_ENUM_PROTOCOLS(url_read);
-- 
2.22.0

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to