Browse Source

avio: make url_alloc internal.

tags/n0.8
Anton Khirnov 14 years ago
parent
commit
5652bb9471
5 changed files with 57 additions and 19 deletions
  1. +7
    -2
      libavformat/avio.c
  2. +1
    -13
      libavformat/avio.h
  3. +3
    -2
      libavformat/mmsh.c
  4. +3
    -2
      libavformat/rtsp.c
  5. +43
    -0
      libavformat/url.h

+ 7
- 2
libavformat/avio.c View File

@@ -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);


+ 1
- 13
libavformat/avio.h View File

@@ -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
*/ */


+ 3
- 2
libavformat/mmsh.c View File

@@ -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);


+ 3
- 2
libavformat/rtsp.c View File

@@ -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;
} }


+ 43
- 0
libavformat/url.h View File

@@ -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

Loading…
Cancel
Save