aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMåns Rullgård <mans@mansr.com>2010-06-27 14:16:46 +0000
committerMåns Rullgård <mans@mansr.com>2010-06-27 14:16:46 +0000
commitf3bfe388b5ba1767ce982c8304dfe9ef0f38a454 (patch)
tree8cef06f9ff5ba5e6cd681ea5b3e6b3922a0858e2
parent350120d269033f4cc206850b3c81f797ed2cb9c6 (diff)
downloadffmpeg-f3bfe388b5ba1767ce982c8304dfe9ef0f38a454.tar.gz
Make ff_url_split() public
ff_url_split() is retained as an alias, as it was used by ffserver, to avoid breaking ABI compatibility with it. Originally committed as revision 23822 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--ffserver.c6
-rw-r--r--libavformat/avformat.h26
-rw-r--r--libavformat/gopher.c2
-rw-r--r--libavformat/http.c4
-rw-r--r--libavformat/internal.h27
-rw-r--r--libavformat/mmst.c2
-rw-r--r--libavformat/rtmpproto.c2
-rw-r--r--libavformat/rtpproto.c4
-rw-r--r--libavformat/rtsp.c4
-rw-r--r--libavformat/sdp.c2
-rw-r--r--libavformat/tcp.c2
-rw-r--r--libavformat/udp.c6
-rw-r--r--libavformat/utils.c18
13 files changed, 66 insertions, 39 deletions
diff --git a/ffserver.c b/ffserver.c
index 14141f7ab2..e48af709a9 100644
--- a/ffserver.c
+++ b/ffserver.c
@@ -2978,7 +2978,7 @@ static void rtsp_cmd_describe(HTTPContext *c, const char *url)
struct sockaddr_in my_addr;
/* find which url is asked */
- ff_url_split(NULL, 0, NULL, 0, NULL, 0, NULL, path1, sizeof(path1), url);
+ av_url_split(NULL, 0, NULL, 0, NULL, 0, NULL, path1, sizeof(path1), url);
path = path1;
if (*path == '/')
path++;
@@ -3055,7 +3055,7 @@ static void rtsp_cmd_setup(HTTPContext *c, const char *url,
RTSPActionServerSetup setup;
/* find which url is asked */
- ff_url_split(NULL, 0, NULL, 0, NULL, 0, NULL, path1, sizeof(path1), url);
+ av_url_split(NULL, 0, NULL, 0, NULL, 0, NULL, path1, sizeof(path1), url);
path = path1;
if (*path == '/')
path++;
@@ -3198,7 +3198,7 @@ static HTTPContext *find_rtp_session_with_url(const char *url,
return NULL;
/* find which url is asked */
- ff_url_split(NULL, 0, NULL, 0, NULL, 0, NULL, path1, sizeof(path1), url);
+ av_url_split(NULL, 0, NULL, 0, NULL, 0, NULL, path1, sizeof(path1), url);
path = path1;
if (*path == '/')
path++;
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 6b19e7425e..283b5b943a 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -1185,6 +1185,32 @@ int64_t av_gen_search(AVFormatContext *s, int stream_index,
int av_set_parameters(AVFormatContext *s, AVFormatParameters *ap);
/**
+ * Split a URL string into components.
+ *
+ * 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 is not found, it is set to a negative
+ * value.
+ *
+ * @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 av_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);
+
+/**
* Allocates the stream private data and writes the stream header to an
* output media file.
*
diff --git a/libavformat/gopher.c b/libavformat/gopher.c
index 13f3a5f9e1..b528f9bbbf 100644
--- a/libavformat/gopher.c
+++ b/libavformat/gopher.c
@@ -90,7 +90,7 @@ static int gopher_open(URLContext *h, const char *uri, int flags)
h->priv_data = s;
/* needed in any case to build the host string */
- ff_url_split(NULL, 0, auth, sizeof(auth), hostname, sizeof(hostname), &port,
+ av_url_split(NULL, 0, auth, sizeof(auth), hostname, sizeof(hostname), &port,
path, sizeof(path), uri);
if (port < 0)
diff --git a/libavformat/http.c b/libavformat/http.c
index a3edd816a7..2b503a1a08 100644
--- a/libavformat/http.c
+++ b/libavformat/http.c
@@ -105,12 +105,12 @@ static int http_open_cnx(URLContext *h)
/* fill the dest addr */
redo:
/* needed in any case to build the host string */
- ff_url_split(NULL, 0, auth, sizeof(auth), hostname, sizeof(hostname), &port,
+ av_url_split(NULL, 0, auth, sizeof(auth), hostname, sizeof(hostname), &port,
path1, sizeof(path1), s->location);
ff_url_join(hoststr, sizeof(hoststr), NULL, NULL, hostname, port, NULL);
if (use_proxy) {
- ff_url_split(NULL, 0, auth, sizeof(auth), hostname, sizeof(hostname), &port,
+ av_url_split(NULL, 0, auth, sizeof(auth), hostname, sizeof(hostname), &port,
NULL, 0, proxy_path);
path = s->location;
} else {
diff --git a/libavformat/internal.h b/libavformat/internal.h
index 8a164bde73..d77e36399b 100644
--- a/libavformat/internal.h
+++ b/libavformat/internal.h
@@ -89,27 +89,9 @@ int ff_probe_input_buffer(ByteIOContext **pb, AVInputFormat **fmt,
const char *filename, void *logctx,
unsigned int offset, unsigned int max_probe_size);
+#if LIBAVFORMAT_VERSION_MAJOR < 53
/**
- * 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
+ * @deprecated use av_url_split() instead
*/
void ff_url_split(char *proto, int proto_size,
char *authorization, int authorization_size,
@@ -117,15 +99,16 @@ void ff_url_split(char *proto, int proto_size,
int *port_ptr,
char *path, int path_size,
const char *url);
+#endif
/**
* Assembles a URL string from components. This is the reverse operation
- * of ff_url_split.
+ * of av_url_split.
*
* Note, this requires networking to be initialized, so the caller must
* ensure ff_network_init has been called.
*
- * @see ff_url_split
+ * @see av_url_split
*
* @param str the buffer to fill with the url
* @param size the size of the str buffer
diff --git a/libavformat/mmst.c b/libavformat/mmst.c
index c19a68f24c..1750390a2d 100644
--- a/libavformat/mmst.c
+++ b/libavformat/mmst.c
@@ -581,7 +581,7 @@ static int mms_open(URLContext *h, const char *uri, int flags)
return AVERROR(ENOMEM);
// only for MMS over TCP, so set proto = NULL
- ff_url_split(NULL, 0, NULL, 0,
+ av_url_split(NULL, 0, NULL, 0,
mms->host, sizeof(mms->host), &port, mms->path,
sizeof(mms->path), uri);
diff --git a/libavformat/rtmpproto.c b/libavformat/rtmpproto.c
index f76cf0f495..a02bad5cf8 100644
--- a/libavformat/rtmpproto.c
+++ b/libavformat/rtmpproto.c
@@ -813,7 +813,7 @@ static int rtmp_open(URLContext *s, const char *uri, int flags)
s->priv_data = rt;
rt->is_input = !(flags & URL_WRONLY);
- ff_url_split(proto, sizeof(proto), NULL, 0, hostname, sizeof(hostname), &port,
+ av_url_split(proto, sizeof(proto), NULL, 0, hostname, sizeof(hostname), &port,
path, sizeof(path), s->filename);
if (port < 0)
diff --git a/libavformat/rtpproto.c b/libavformat/rtpproto.c
index bbcf0d91c3..1875424a73 100644
--- a/libavformat/rtpproto.c
+++ b/libavformat/rtpproto.c
@@ -66,7 +66,7 @@ int rtp_set_remote_url(URLContext *h, const char *uri)
char buf[1024];
char path[1024];
- ff_url_split(NULL, 0, NULL, 0, hostname, sizeof(hostname), &port,
+ av_url_split(NULL, 0, NULL, 0, hostname, sizeof(hostname), &port,
path, sizeof(path), uri);
ff_url_join(buf, sizeof(buf), "udp", NULL, hostname, port, "%s", path);
@@ -146,7 +146,7 @@ static int rtp_open(URLContext *h, const char *uri, int flags)
return AVERROR(ENOMEM);
h->priv_data = s;
- ff_url_split(NULL, 0, NULL, 0, hostname, sizeof(hostname), &rtp_port,
+ av_url_split(NULL, 0, NULL, 0, hostname, sizeof(hostname), &rtp_port,
path, sizeof(path), uri);
/* extract parameters */
ttl = -1;
diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index bca3bd26fb..37d3be9217 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -327,7 +327,7 @@ static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1,
rtsp_st = st->priv_data;
/* XXX: may need to add full url resolution */
- ff_url_split(proto, sizeof(proto), NULL, 0, NULL, 0,
+ av_url_split(proto, sizeof(proto), NULL, 0, NULL, 0,
NULL, NULL, 0, p);
if (proto[0] == '\0') {
/* relative control URL */
@@ -1366,7 +1366,7 @@ int ff_rtsp_connect(AVFormatContext *s)
redirect:
rt->control_transport = RTSP_MODE_PLAIN;
/* extract hostname and port */
- ff_url_split(NULL, 0, auth, sizeof(auth),
+ av_url_split(NULL, 0, auth, sizeof(auth),
host, sizeof(host), &port, path, sizeof(path), s->filename);
if (*auth) {
av_strlcpy(rt->auth, auth, sizeof(rt->auth));
diff --git a/libavformat/sdp.c b/libavformat/sdp.c
index 10f43c35fa..b34b944e59 100644
--- a/libavformat/sdp.c
+++ b/libavformat/sdp.c
@@ -109,7 +109,7 @@ static int sdp_get_address(char *dest_addr, int size, int *ttl, const char *url)
const char *p;
char proto[32];
- ff_url_split(proto, sizeof(proto), NULL, 0, dest_addr, size, &port, NULL, 0, url);
+ av_url_split(proto, sizeof(proto), NULL, 0, dest_addr, size, &port, NULL, 0, url);
*ttl = 0;
diff --git a/libavformat/tcp.c b/libavformat/tcp.c
index fb6dec798f..1827aa00a7 100644
--- a/libavformat/tcp.c
+++ b/libavformat/tcp.c
@@ -45,7 +45,7 @@ static int tcp_open(URLContext *h, const char *uri, int flags)
char hostname[1024],proto[1024],path[1024];
char portstr[10];
- ff_url_split(proto, sizeof(proto), NULL, 0, hostname, sizeof(hostname),
+ av_url_split(proto, sizeof(proto), NULL, 0, hostname, sizeof(hostname),
&port, path, sizeof(path), uri);
if (strcmp(proto,"tcp") || port <= 0 || port >= 65536)
return AVERROR(EINVAL);
diff --git a/libavformat/udp.c b/libavformat/udp.c
index fd6b5c19ba..227c0d0bee 100644
--- a/libavformat/udp.c
+++ b/libavformat/udp.c
@@ -266,7 +266,7 @@ int udp_set_remote_url(URLContext *h, const char *uri)
char hostname[256];
int port;
- ff_url_split(NULL, 0, NULL, 0, hostname, sizeof(hostname), &port, NULL, 0, uri);
+ av_url_split(NULL, 0, NULL, 0, hostname, sizeof(hostname), &port, NULL, 0, uri);
/* set the destination address */
s->dest_addr_len = udp_set_url(&s->dest_addr, hostname, port);
@@ -347,9 +347,9 @@ static int udp_open(URLContext *h, const char *uri, int flags)
}
/* fill the dest addr */
- ff_url_split(NULL, 0, NULL, 0, hostname, sizeof(hostname), &port, NULL, 0, uri);
+ av_url_split(NULL, 0, NULL, 0, hostname, sizeof(hostname), &port, NULL, 0, uri);
- /* XXX: fix ff_url_split */
+ /* XXX: fix av_url_split */
if (hostname[0] == '\0' || hostname[0] == '?') {
/* only accepts null hostname if input */
if (flags & URL_WRONLY)
diff --git a/libavformat/utils.c b/libavformat/utils.c
index e33cb50661..efbf4e4a0e 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -3493,6 +3493,8 @@ void av_pkt_dump_log(void *avcl, int level, AVPacket *pkt, int dump_payload)
pkt_dump_internal(avcl, NULL, level, pkt, dump_payload);
}
+#if LIBAVFORMAT_VERSION_MAJOR < 53
+attribute_deprecated
void ff_url_split(char *proto, int proto_size,
char *authorization, int authorization_size,
char *hostname, int hostname_size,
@@ -3500,6 +3502,22 @@ void ff_url_split(char *proto, int proto_size,
char *path, int path_size,
const char *url)
{
+ av_url_split(proto, proto_size,
+ authorization, authorization_size,
+ hostname, hostname_size,
+ port_ptr,
+ path, path_size,
+ url);
+}
+#endif
+
+void av_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)
+{
const char *p, *ls, *at, *col, *brk;
if (port_ptr) *port_ptr = -1;