summaryrefslogtreecommitdiff
path: root/libavformat/internal.h
diff options
context:
space:
mode:
authorAurelien Jacobs <aurel@gnuage.org>2010-03-14 23:59:48 +0000
committerAurelien Jacobs <aurel@gnuage.org>2010-03-14 23:59:48 +0000
commite4a9e3cc7cc2a93a8ef666af89cd6885709ff7e0 (patch)
tree9dcb7f8dbb15f46e244b98dff3f0df5e68f58780 /libavformat/internal.h
parent66b50bc0b25f09ba8459131cc26766647232b4d3 (diff)
move ff_url_split() and ff_url_join() declarations to internal.h
those functions are not part of the public API Originally committed as revision 22534 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/internal.h')
-rw-r--r--libavformat/internal.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/libavformat/internal.h b/libavformat/internal.h
index be3fbb2b2f..0881fd2210 100644
--- a/libavformat/internal.h
+++ b/libavformat/internal.h
@@ -59,4 +59,57 @@ int ff_probe_input_buffer(ByteIOContext **pb, AVInputFormat **fmt,
const char *filename, void *logctx,
unsigned int offset, unsigned int max_probe_size);
+/**
+ * Splits a URL string into components. To reassemble components back into
+ * a URL, use ff_url_join instead of using snprintf directly.
+ *
+ * The pointers to buffers for storing individual components may be null,
+ * in order to ignore that component. Buffers for components not found are
+ * set to empty strings. If the port isn't found, it is set to a negative
+ * value.
+ *
+ * @see ff_url_join
+ *
+ * @param proto the buffer for the protocol
+ * @param proto_size the size of the proto buffer
+ * @param authorization the buffer for the authorization
+ * @param authorization_size the size of the authorization buffer
+ * @param hostname the buffer for the host name
+ * @param hostname_size the size of the hostname buffer
+ * @param port_ptr a pointer to store the port number in
+ * @param path the buffer for the path
+ * @param path_size the size of the path buffer
+ * @param url the URL to split
+ */
+void ff_url_split(char *proto, int proto_size,
+ char *authorization, int authorization_size,
+ char *hostname, int hostname_size,
+ int *port_ptr,
+ char *path, int path_size,
+ const char *url);
+
+/**
+ * Assembles a URL string from components. This is the reverse operation
+ * of ff_url_split.
+ *
+ * Note, this requires networking to be initialized, so the caller must
+ * ensure ff_network_init has been called.
+ *
+ * @see ff_url_split
+ *
+ * @param str the buffer to fill with the url
+ * @param size the size of the str buffer
+ * @param proto the protocol identifier, if null, the separator
+ * after the identifier is left out, too
+ * @param authorization an optional authorization string, may be null
+ * @param hostname the host name string
+ * @param port the port number, left out from the string if negative
+ * @param fmt a generic format string for everything to add after the
+ * host/port, may be null
+ * @return the number of characters written to the destination buffer
+ */
+int ff_url_join(char *str, int size, const char *proto,
+ const char *authorization, const char *hostname,
+ int port, const char *fmt, ...);
+
#endif /* AVFORMAT_INTERNAL_H */