@@ -29,6 +29,7 @@ | |||||
#if CONFIG_NETWORK | #if CONFIG_NETWORK | ||||
#include "network.h" | #include "network.h" | ||||
#endif | #endif | ||||
#include "url.h" | |||||
#if FF_API_URL_CLASS | #if FF_API_URL_CLASS | ||||
/** @name Logging context. */ | /** @name Logging context. */ | ||||
@@ -167,6 +168,10 @@ int url_open_protocol (URLContext **puc, struct URLProtocol *up, | |||||
*puc = NULL; | *puc = NULL; | ||||
return ret; | return ret; | ||||
} | } | ||||
int url_alloc(URLContext **puc, const char *filename, int flags) | |||||
{ | |||||
return ffurl_alloc(puc, filename, flags); | |||||
} | |||||
#endif | #endif | ||||
#define URL_SCHEME_CHARS \ | #define URL_SCHEME_CHARS \ | ||||
@@ -174,7 +179,7 @@ int url_open_protocol (URLContext **puc, struct URLProtocol *up, | |||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" \ | "ABCDEFGHIJKLMNOPQRSTUVWXYZ" \ | ||||
"0123456789+-." | "0123456789+-." | ||||
int url_alloc(URLContext **puc, const char *filename, int flags) | |||||
int ffurl_alloc(URLContext **puc, const char *filename, int flags) | |||||
{ | { | ||||
URLProtocol *up; | URLProtocol *up; | ||||
char proto_str[128], proto_nested[128], *ptr; | 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 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) | if (ret) | ||||
return ret; | return ret; | ||||
ret = url_connect(*puc); | ret = url_connect(*puc); | ||||
@@ -102,21 +102,9 @@ typedef int URLInterruptCB(void); | |||||
*/ | */ | ||||
attribute_deprecated int url_open_protocol (URLContext **puc, struct URLProtocol *up, | attribute_deprecated int url_open_protocol (URLContext **puc, struct URLProtocol *up, | ||||
const char *url, int flags); | const char *url, int flags); | ||||
attribute_deprecated int url_alloc(URLContext **h, const char *url, int flags); | |||||
#endif | #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 | * Connect an URLContext that has been allocated by url_alloc | ||||
*/ | */ | ||||
@@ -32,6 +32,7 @@ | |||||
#include "mms.h" | #include "mms.h" | ||||
#include "asf.h" | #include "asf.h" | ||||
#include "http.h" | #include "http.h" | ||||
#include "url.h" | |||||
#define CHUNK_HEADER_LENGTH 4 // 2bytes chunk type and 2bytes chunk length. | #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. | #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 | port = 80; // default mmsh protocol port | ||||
ff_url_join(httpname, sizeof(httpname), "http", NULL, host, port, path); | 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); | 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. | // close the socket and then reopen it for sending the second play request. | ||||
url_close(mms->mms_hd); | url_close(mms->mms_hd); | ||||
memset(headers, 0, sizeof(headers)); | 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); | return AVERROR(EIO); | ||||
} | } | ||||
stream_selection = av_mallocz(mms->stream_num * 19 + 1); | stream_selection = av_mallocz(mms->stream_num * 19 + 1); | ||||
@@ -42,6 +42,7 @@ | |||||
#include "rdt.h" | #include "rdt.h" | ||||
#include "rtpdec_formats.h" | #include "rtpdec_formats.h" | ||||
#include "rtpenc_chain.h" | #include "rtpenc_chain.h" | ||||
#include "url.h" | |||||
//#define DEBUG | //#define DEBUG | ||||
//#define DEBUG_RTP_TCP | //#define DEBUG_RTP_TCP | ||||
@@ -1395,7 +1396,7 @@ redirect: | |||||
av_get_random_seed(), av_get_random_seed()); | av_get_random_seed(), av_get_random_seed()); | ||||
/* GET requests */ | /* 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); | err = AVERROR(EIO); | ||||
goto fail; | goto fail; | ||||
} | } | ||||
@@ -1416,7 +1417,7 @@ redirect: | |||||
} | } | ||||
/* POST requests */ | /* 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); | err = AVERROR(EIO); | ||||
goto fail; | goto fail; | ||||
} | } | ||||
@@ -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 |