those functions are not part of the public API Originally committed as revision 22534 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.6
@@ -1339,59 +1339,6 @@ struct tm *brktimegm(time_t secs, struct tm *tm); | |||||
const char *small_strptime(const char *p, const char *fmt, | const char *small_strptime(const char *p, const char *fmt, | ||||
struct tm *dt); | struct tm *dt); | ||||
/** | |||||
* 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, ...); | |||||
/** | /** | ||||
* Returns a positive value if the given filename has one of the given | * Returns a positive value if the given filename has one of the given | ||||
* extensions, 0 otherwise. | * extensions, 0 otherwise. | ||||
@@ -24,6 +24,7 @@ | |||||
#include "libavutil/avstring.h" | #include "libavutil/avstring.h" | ||||
#include "avformat.h" | #include "avformat.h" | ||||
#include "internal.h" | |||||
#include "network.h" | #include "network.h" | ||||
typedef struct { | typedef struct { | ||||
@@ -24,6 +24,7 @@ | |||||
#include "avformat.h" | #include "avformat.h" | ||||
#include <unistd.h> | #include <unistd.h> | ||||
#include <strings.h> | #include <strings.h> | ||||
#include "internal.h" | |||||
#include "network.h" | #include "network.h" | ||||
#include "os_support.h" | #include "os_support.h" | ||||
@@ -59,4 +59,57 @@ int ff_probe_input_buffer(ByteIOContext **pb, AVInputFormat **fmt, | |||||
const char *filename, void *logctx, | const char *filename, void *logctx, | ||||
unsigned int offset, unsigned int max_probe_size); | 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 */ | #endif /* AVFORMAT_INTERNAL_H */ |
@@ -29,6 +29,7 @@ | |||||
#include "libavutil/lfg.h" | #include "libavutil/lfg.h" | ||||
#include "libavutil/sha.h" | #include "libavutil/sha.h" | ||||
#include "avformat.h" | #include "avformat.h" | ||||
#include "internal.h" | |||||
#include "network.h" | #include "network.h" | ||||
@@ -30,6 +30,7 @@ | |||||
#include <unistd.h> | #include <unistd.h> | ||||
#include <stdarg.h> | #include <stdarg.h> | ||||
#include "internal.h" | |||||
#include "network.h" | #include "network.h" | ||||
#include "os_support.h" | #include "os_support.h" | ||||
#include <fcntl.h> | #include <fcntl.h> | ||||
@@ -29,6 +29,7 @@ | |||||
#include <sys/select.h> | #include <sys/select.h> | ||||
#endif | #endif | ||||
#include <strings.h> | #include <strings.h> | ||||
#include "internal.h" | |||||
#include "network.h" | #include "network.h" | ||||
#include "os_support.h" | #include "os_support.h" | ||||
#include "rtsp.h" | #include "rtsp.h" | ||||
@@ -20,6 +20,7 @@ | |||||
*/ | */ | ||||
#include "avformat.h" | #include "avformat.h" | ||||
#include <unistd.h> | #include <unistd.h> | ||||
#include "internal.h" | |||||
#include "network.h" | #include "network.h" | ||||
#include "os_support.h" | #include "os_support.h" | ||||
#if HAVE_SYS_SELECT_H | #if HAVE_SYS_SELECT_H | ||||
@@ -27,6 +27,7 @@ | |||||
#define _BSD_SOURCE /* Needed for using struct ip_mreq with recent glibc */ | #define _BSD_SOURCE /* Needed for using struct ip_mreq with recent glibc */ | ||||
#include "avformat.h" | #include "avformat.h" | ||||
#include <unistd.h> | #include <unistd.h> | ||||
#include "internal.h" | |||||
#include "network.h" | #include "network.h" | ||||
#include "os_support.h" | #include "os_support.h" | ||||
#if HAVE_SYS_SELECT_H | #if HAVE_SYS_SELECT_H | ||||