diff --git a/libavformat/avio.c b/libavformat/avio.c index f6f067d63f..c0198ccbfb 100644 --- a/libavformat/avio.c +++ b/libavformat/avio.c @@ -29,6 +29,7 @@ #if CONFIG_NETWORK #include "network.h" #endif +#include "url.h" #if FF_API_URL_CLASS /** @name Logging context. */ @@ -167,6 +168,10 @@ int url_open_protocol (URLContext **puc, struct URLProtocol *up, *puc = NULL; return ret; } +int url_alloc(URLContext **puc, const char *filename, int flags) +{ + return ffurl_alloc(puc, filename, flags); +} #endif #define URL_SCHEME_CHARS \ @@ -174,7 +179,7 @@ int url_open_protocol (URLContext **puc, struct URLProtocol *up, "ABCDEFGHIJKLMNOPQRSTUVWXYZ" \ "0123456789+-." -int url_alloc(URLContext **puc, const char *filename, int flags) +int ffurl_alloc(URLContext **puc, const char *filename, int flags) { URLProtocol *up; char proto_str[128], proto_nested[128], *ptr; @@ -204,7 +209,7 @@ int url_alloc(URLContext **puc, const char *filename, int flags) int url_open(URLContext **puc, const char *filename, int flags) { - int ret = url_alloc(puc, filename, flags); + int ret = ffurl_alloc(puc, filename, flags); if (ret) return ret; ret = url_connect(*puc); diff --git a/libavformat/avio.h b/libavformat/avio.h index 6279cdeb60..8ba8a23f6e 100644 --- a/libavformat/avio.h +++ b/libavformat/avio.h @@ -102,21 +102,9 @@ typedef int URLInterruptCB(void); */ attribute_deprecated int url_open_protocol (URLContext **puc, struct URLProtocol *up, const char *url, int flags); +attribute_deprecated int url_alloc(URLContext **h, const char *url, int flags); #endif -/** - * Create a URLContext for accessing to the resource indicated by - * url, but do not initiate the connection yet. - * - * @param puc pointer to the location where, in case of success, the - * function puts the pointer to the created URLContext - * @param flags flags which control how the resource indicated by url - * is to be opened - * @return 0 in case of success, a negative value corresponding to an - * AVERROR code in case of failure - */ -int url_alloc(URLContext **h, const char *url, int flags); - /** * Connect an URLContext that has been allocated by url_alloc */ diff --git a/libavformat/mmsh.c b/libavformat/mmsh.c index ac6b60dc95..43087744ea 100644 --- a/libavformat/mmsh.c +++ b/libavformat/mmsh.c @@ -32,6 +32,7 @@ #include "mms.h" #include "asf.h" #include "http.h" +#include "url.h" #define CHUNK_HEADER_LENGTH 4 // 2bytes chunk type and 2bytes chunk length. #define EXT_HEADER_LENGTH 8 // 4bytes sequence, 2bytes useless and 2bytes chunk length. @@ -232,7 +233,7 @@ static int mmsh_open(URLContext *h, const char *uri, int flags) port = 80; // default mmsh protocol port ff_url_join(httpname, sizeof(httpname), "http", NULL, host, port, path); - if (url_alloc(&mms->mms_hd, httpname, URL_RDONLY) < 0) { + if (ffurl_alloc(&mms->mms_hd, httpname, URL_RDONLY) < 0) { return AVERROR(EIO); } @@ -260,7 +261,7 @@ static int mmsh_open(URLContext *h, const char *uri, int flags) // close the socket and then reopen it for sending the second play request. url_close(mms->mms_hd); memset(headers, 0, sizeof(headers)); - if (url_alloc(&mms->mms_hd, httpname, URL_RDONLY) < 0) { + if (ffurl_alloc(&mms->mms_hd, httpname, URL_RDONLY) < 0) { return AVERROR(EIO); } stream_selection = av_mallocz(mms->stream_num * 19 + 1); diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index 90073d63a2..9d988a7923 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -42,6 +42,7 @@ #include "rdt.h" #include "rtpdec_formats.h" #include "rtpenc_chain.h" +#include "url.h" //#define DEBUG //#define DEBUG_RTP_TCP @@ -1395,7 +1396,7 @@ redirect: av_get_random_seed(), av_get_random_seed()); /* GET requests */ - if (url_alloc(&rt->rtsp_hd, httpname, URL_RDONLY) < 0) { + if (ffurl_alloc(&rt->rtsp_hd, httpname, URL_RDONLY) < 0) { err = AVERROR(EIO); goto fail; } @@ -1416,7 +1417,7 @@ redirect: } /* POST requests */ - if (url_alloc(&rt->rtsp_hd_out, httpname, URL_WRONLY) < 0 ) { + if (ffurl_alloc(&rt->rtsp_hd_out, httpname, URL_WRONLY) < 0 ) { err = AVERROR(EIO); goto fail; } diff --git a/libavformat/url.h b/libavformat/url.h new file mode 100644 index 0000000000..d15d4abba2 --- /dev/null +++ b/libavformat/url.h @@ -0,0 +1,43 @@ +/* + * + * This file is part of Libav. + * + * Libav is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * Libav is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with Libav; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * unbuffered private I/O API + */ + +#ifndef AVFORMAT_URL_H +#define AVFORMAT_URL_H + +#include "avio.h" + +/** + * Create a URLContext for accessing to the resource indicated by + * url, but do not initiate the connection yet. + * + * @param puc pointer to the location where, in case of success, the + * function puts the pointer to the created URLContext + * @param flags flags which control how the resource indicated by url + * is to be opened + * @return 0 in case of success, a negative value corresponding to an + * AVERROR code in case of failure + */ +int ffurl_alloc(URLContext **h, const char *url, int flags); + +#endif //AVFORMAT_URL_H