Mercurial > libavformat.hg
diff internal.h @ 5837:d605f589f0be libavformat
move ff_url_split() and ff_url_join() declarations to internal.h
those functions are not part of the public API
author | aurel |
---|---|
date | Sun, 14 Mar 2010 23:59:48 +0000 |
parents | 2997c88028cd |
children | ba41d3865253 |
line wrap: on
line diff
--- a/internal.h Sun Mar 14 22:40:16 2010 +0000 +++ b/internal.h Sun Mar 14 23:59:48 2010 +0000 @@ -59,4 +59,57 @@ 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 */