avio: remove AVIO_* access symbols in favor of new AVIO_FLAG_* symbols

Make AVIO_FLAG_ access constants work as flags, and in particular fix
the behavior of functions (such as avio_check()) which expect them to
be flags rather than modes.

This breaks API.
pull/2/head
Stefano Sabatini 14 years ago committed by Anton Khirnov
parent 490a022d86
commit 59d96941f0
  1. 2
      ffmpeg.c
  2. 4
      ffserver.c
  3. 4
      libavformat/applehttp.c
  4. 6
      libavformat/applehttpproto.c
  5. 10
      libavformat/avio.c
  6. 8
      libavformat/avio.h
  7. 12
      libavformat/aviobuf.c
  8. 11
      libavformat/file.c
  9. 2
      libavformat/gopher.c
  10. 6
      libavformat/http.c
  11. 4
      libavformat/img2.c
  12. 2
      libavformat/librtmp.c
  13. 2
      libavformat/matroskadec.c
  14. 4
      libavformat/md5proto.c
  15. 4
      libavformat/mmsh.c
  16. 2
      libavformat/mmst.c
  17. 2
      libavformat/mov.c
  18. 2
      libavformat/output-example.c
  19. 6
      libavformat/rtmpproto.c
  20. 2
      libavformat/rtpproto.c
  21. 16
      libavformat/rtsp.c
  22. 2
      libavformat/sapdec.c
  23. 4
      libavformat/sapenc.c
  24. 12
      libavformat/udp.c
  25. 2
      libavformat/utils.c

@ -3750,7 +3750,7 @@ static void opt_output_file(const char *filename)
} }
/* open the file */ /* open the file */
if ((err = avio_open(&oc->pb, filename, AVIO_WRONLY)) < 0) { if ((err = avio_open(&oc->pb, filename, AVIO_FLAG_WRITE)) < 0) {
print_error(filename, err); print_error(filename, err);
ffmpeg_exit(1); ffmpeg_exit(1);
} }

@ -3422,7 +3422,7 @@ static int rtp_new_av_stream(HTTPContext *c,
"rtp://%s:%d", ipaddr, ntohs(dest_addr->sin_port)); "rtp://%s:%d", ipaddr, ntohs(dest_addr->sin_port));
} }
if (url_open(&h, ctx->filename, AVIO_WRONLY) < 0) if (url_open(&h, ctx->filename, AVIO_FLAG_WRITE) < 0)
goto fail; goto fail;
c->rtp_handles[stream_index] = h; c->rtp_handles[stream_index] = h;
max_packet_size = url_get_max_packet_size(h); max_packet_size = url_get_max_packet_size(h);
@ -3762,7 +3762,7 @@ static void build_feed_streams(void)
} }
/* only write the header of the ffm file */ /* only write the header of the ffm file */
if (avio_open(&s->pb, feed->feed_filename, AVIO_WRONLY) < 0) { if (avio_open(&s->pb, feed->feed_filename, AVIO_FLAG_WRITE) < 0) {
http_log("Could not open output feed file '%s'\n", http_log("Could not open output feed file '%s'\n",
feed->feed_filename); feed->feed_filename);
exit(1); exit(1);

@ -170,7 +170,7 @@ static int parse_playlist(AppleHTTPContext *c, const char *url,
if (!in) { if (!in) {
close_in = 1; close_in = 1;
if ((ret = avio_open(&in, url, AVIO_RDONLY)) < 0) if ((ret = avio_open(&in, url, AVIO_FLAG_READ)) < 0)
return ret; return ret;
} }
@ -293,7 +293,7 @@ reload:
ret = ffurl_open(&v->input, ret = ffurl_open(&v->input,
v->segments[v->cur_seq_no - v->start_seq_no]->url, v->segments[v->cur_seq_no - v->start_seq_no]->url,
AVIO_RDONLY); AVIO_FLAG_READ);
if (ret < 0) if (ret < 0)
return ret; return ret;
} }

@ -115,7 +115,7 @@ static int parse_playlist(URLContext *h, const char *url)
char line[1024]; char line[1024];
const char *ptr; const char *ptr;
if ((ret = avio_open(&in, url, AVIO_RDONLY)) < 0) if ((ret = avio_open(&in, url, AVIO_FLAG_READ)) < 0)
return ret; return ret;
read_chomp_line(in, line, sizeof(line)); read_chomp_line(in, line, sizeof(line));
@ -180,7 +180,7 @@ static int applehttp_open(URLContext *h, const char *uri, int flags)
int ret, i; int ret, i;
const char *nested_url; const char *nested_url;
if (flags & (AVIO_WRONLY | AVIO_RDWR)) if (flags & AVIO_FLAG_WRITE)
return AVERROR(ENOSYS); return AVERROR(ENOSYS);
s = av_mallocz(sizeof(AppleHTTPContext)); s = av_mallocz(sizeof(AppleHTTPContext));
@ -275,7 +275,7 @@ retry:
} }
url = s->segments[s->cur_seq_no - s->start_seq_no]->url, url = s->segments[s->cur_seq_no - s->start_seq_no]->url,
av_log(NULL, AV_LOG_DEBUG, "opening %s\n", url); av_log(NULL, AV_LOG_DEBUG, "opening %s\n", url);
ret = ffurl_open(&s->seg_hd, url, AVIO_RDONLY); ret = ffurl_open(&s->seg_hd, url, AVIO_FLAG_READ);
if (ret < 0) { if (ret < 0) {
if (url_interrupt_cb()) if (url_interrupt_cb())
return AVERROR_EXIT; return AVERROR_EXIT;

@ -129,7 +129,7 @@ int ffurl_connect(URLContext* uc)
return err; return err;
uc->is_connected = 1; uc->is_connected = 1;
//We must be careful here as ffurl_seek() could be slow, for example for http //We must be careful here as ffurl_seek() could be slow, for example for http
if( (uc->flags & (AVIO_WRONLY | AVIO_RDWR)) if( (uc->flags & AVIO_FLAG_WRITE)
|| !strcmp(uc->prot->name, "file")) || !strcmp(uc->prot->name, "file"))
if(!uc->is_streamed && ffurl_seek(uc, 0, SEEK_SET) < 0) if(!uc->is_streamed && ffurl_seek(uc, 0, SEEK_SET) < 0)
uc->is_streamed= 1; uc->is_streamed= 1;
@ -289,21 +289,21 @@ static inline int retry_transfer_wrapper(URLContext *h, unsigned char *buf, int
int ffurl_read(URLContext *h, unsigned char *buf, int size) int ffurl_read(URLContext *h, unsigned char *buf, int size)
{ {
if (h->flags & AVIO_WRONLY) if (h->flags & AVIO_FLAG_WRITE)
return AVERROR(EIO); return AVERROR(EIO);
return retry_transfer_wrapper(h, buf, size, 1, h->prot->url_read); return retry_transfer_wrapper(h, buf, size, 1, h->prot->url_read);
} }
int ffurl_read_complete(URLContext *h, unsigned char *buf, int size) int ffurl_read_complete(URLContext *h, unsigned char *buf, int size)
{ {
if (h->flags & AVIO_WRONLY) if (h->flags & AVIO_FLAG_WRITE)
return AVERROR(EIO); return AVERROR(EIO);
return retry_transfer_wrapper(h, buf, size, size, h->prot->url_read); return retry_transfer_wrapper(h, buf, size, size, h->prot->url_read);
} }
int ffurl_write(URLContext *h, const unsigned char *buf, int size) int ffurl_write(URLContext *h, const unsigned char *buf, int size)
{ {
if (!(h->flags & (AVIO_WRONLY | AVIO_RDWR))) if (!(h->flags & AVIO_FLAG_WRITE))
return AVERROR(EIO); return AVERROR(EIO);
/* avoid sending too big packets */ /* avoid sending too big packets */
if (h->max_packet_size && size > h->max_packet_size) if (h->max_packet_size && size > h->max_packet_size)
@ -342,7 +342,7 @@ int ffurl_close(URLContext *h)
int url_exist(const char *filename) int url_exist(const char *filename)
{ {
URLContext *h; URLContext *h;
if (ffurl_open(&h, filename, AVIO_RDONLY) < 0) if (ffurl_open(&h, filename, AVIO_FLAG_READ) < 0)
return 0; return 0;
ffurl_close(h); ffurl_close(h);
return 1; return 1;

@ -347,7 +347,7 @@ attribute_deprecated int url_exist(const char *url);
#endif // FF_API_OLD_AVIO #endif // FF_API_OLD_AVIO
/** /**
* Return AVIO_* access flags corresponding to the access permissions * Return AVIO_FLAG_* access flags corresponding to the access permissions
* of the resource in url, or a negative value corresponding to an * of the resource in url, or a negative value corresponding to an
* AVERROR code in case of failure. The returned access flags are * AVERROR code in case of failure. The returned access flags are
* masked by the value in flags. * masked by the value in flags.
@ -527,9 +527,9 @@ int avio_get_str16be(AVIOContext *pb, int maxlen, char *buf, int buflen);
* constants, optionally ORed with other flags. * constants, optionally ORed with other flags.
* @{ * @{
*/ */
#define AVIO_RDONLY 1 /**< read-only */ #define AVIO_FLAG_READ 1 /**< read-only */
#define AVIO_WRONLY 2 /**< write-only */ #define AVIO_FLAG_WRITE 2 /**< write-only */
#define AVIO_RDWR 4 /**< read-write */ #define AVIO_FLAG_READ_WRITE (AVIO_FLAG_READ|AVIO_FLAG_WRITE) /**< read-write pseudo flag */
/** /**
* @} * @}
*/ */

@ -53,7 +53,7 @@ int ffio_init_context(AVIOContext *s,
s->buffer_size = buffer_size; s->buffer_size = buffer_size;
s->buf_ptr = buffer; s->buf_ptr = buffer;
s->opaque = opaque; s->opaque = opaque;
url_resetbuf(s, write_flag ? AVIO_WRONLY : AVIO_RDONLY); url_resetbuf(s, write_flag ? AVIO_FLAG_WRITE : AVIO_FLAG_READ);
s->write_packet = write_packet; s->write_packet = write_packet;
s->read_packet = read_packet; s->read_packet = read_packet;
s->seek = seek; s->seek = seek;
@ -843,7 +843,7 @@ int ffio_fdopen(AVIOContext **s, URLContext *h)
} }
if (ffio_init_context(*s, buffer, buffer_size, if (ffio_init_context(*s, buffer, buffer_size,
(h->flags & AVIO_WRONLY || h->flags & AVIO_RDWR), h, h->flags & AVIO_FLAG_WRITE, h,
ffurl_read, ffurl_write, ffurl_seek) < 0) { ffurl_read, ffurl_write, ffurl_seek) < 0) {
av_free(buffer); av_free(buffer);
av_freep(s); av_freep(s);
@ -872,15 +872,15 @@ int ffio_set_buf_size(AVIOContext *s, int buf_size)
s->buffer = buffer; s->buffer = buffer;
s->buffer_size = buf_size; s->buffer_size = buf_size;
s->buf_ptr = buffer; s->buf_ptr = buffer;
url_resetbuf(s, s->write_flag ? AVIO_WRONLY : AVIO_RDONLY); url_resetbuf(s, s->write_flag ? AVIO_FLAG_WRITE : AVIO_FLAG_READ);
return 0; return 0;
} }
static int url_resetbuf(AVIOContext *s, int flags) static int url_resetbuf(AVIOContext *s, int flags)
{ {
assert(flags == AVIO_WRONLY || flags == AVIO_RDONLY); assert(flags == AVIO_FLAG_WRITE || flags == AVIO_FLAG_READ);
if (flags & AVIO_WRONLY) { if (flags & AVIO_FLAG_WRITE) {
s->buf_end = s->buffer + s->buffer_size; s->buf_end = s->buffer + s->buffer_size;
s->write_flag = 1; s->write_flag = 1;
} else { } else {
@ -1038,7 +1038,7 @@ int url_open_buf(AVIOContext **s, uint8_t *buf, int buf_size, int flags)
if(!*s) if(!*s)
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
ret = ffio_init_context(*s, buf, buf_size, ret = ffio_init_context(*s, buf, buf_size,
(flags & AVIO_WRONLY || flags & AVIO_RDWR), flags & AVIO_FLAG_WRITE,
NULL, NULL, NULL, NULL); NULL, NULL, NULL, NULL);
if(ret != 0) if(ret != 0)
av_freep(s); av_freep(s);

@ -60,9 +60,9 @@ static int file_open(URLContext *h, const char *filename, int flags)
av_strstart(filename, "file:", &filename); av_strstart(filename, "file:", &filename);
if (flags & AVIO_RDWR) { if (flags & AVIO_FLAG_WRITE && flags & AVIO_FLAG_READ) {
access = O_CREAT | O_TRUNC | O_RDWR; access = O_CREAT | O_TRUNC | O_RDWR;
} else if (flags & AVIO_WRONLY) { } else if (flags & AVIO_FLAG_WRITE) {
access = O_CREAT | O_TRUNC | O_WRONLY; access = O_CREAT | O_TRUNC | O_WRONLY;
} else { } else {
access = O_RDONLY; access = O_RDONLY;
@ -102,9 +102,8 @@ static int file_check(URLContext *h, int mask)
if (ret < 0) if (ret < 0)
return AVERROR(errno); return AVERROR(errno);
ret |= st.st_mode&S_IRUSR ? mask&AVIO_RDONLY : 0; ret |= st.st_mode&S_IRUSR ? mask&AVIO_FLAG_READ : 0;
ret |= st.st_mode&S_IWUSR ? mask&AVIO_WRONLY : 0; ret |= st.st_mode&S_IWUSR ? mask&AVIO_FLAG_WRITE : 0;
ret |= st.st_mode&S_IWUSR && st.st_mode&S_IRUSR ? mask&AVIO_RDWR : 0;
return ret; return ret;
} }
@ -132,7 +131,7 @@ static int pipe_open(URLContext *h, const char *filename, int flags)
fd = strtol(filename, &final, 10); fd = strtol(filename, &final, 10);
if((filename == final) || *final ) {/* No digits found, or something like 10ab */ if((filename == final) || *final ) {/* No digits found, or something like 10ab */
if (flags & AVIO_WRONLY) { if (flags & AVIO_FLAG_WRITE) {
fd = 1; fd = 1;
} else { } else {
fd = 0; fd = 0;

@ -100,7 +100,7 @@ static int gopher_open(URLContext *h, const char *uri, int flags)
ff_url_join(buf, sizeof(buf), "tcp", NULL, hostname, port, NULL); ff_url_join(buf, sizeof(buf), "tcp", NULL, hostname, port, NULL);
s->hd = NULL; s->hd = NULL;
err = ffurl_open(&s->hd, buf, AVIO_RDWR); err = ffurl_open(&s->hd, buf, AVIO_FLAG_READ_WRITE);
if (err < 0) if (err < 0)
goto fail; goto fail;

@ -124,7 +124,7 @@ static int http_open_cnx(URLContext *h)
port = 80; port = 80;
ff_url_join(buf, sizeof(buf), "tcp", NULL, hostname, port, NULL); ff_url_join(buf, sizeof(buf), "tcp", NULL, hostname, port, NULL);
err = ffurl_open(&hd, buf, AVIO_RDWR); err = ffurl_open(&hd, buf, AVIO_FLAG_READ_WRITE);
if (err < 0) if (err < 0)
goto fail; goto fail;
@ -296,7 +296,7 @@ static int http_connect(URLContext *h, const char *path, const char *hoststr,
/* send http header */ /* send http header */
post = h->flags & AVIO_WRONLY; post = h->flags & AVIO_FLAG_WRITE;
authstr = ff_http_auth_create_response(&s->auth_state, auth, path, authstr = ff_http_auth_create_response(&s->auth_state, auth, path,
post ? "POST" : "GET"); post ? "POST" : "GET");
@ -451,7 +451,7 @@ static int http_close(URLContext *h)
HTTPContext *s = h->priv_data; HTTPContext *s = h->priv_data;
/* signal end of chunked encoding if used */ /* signal end of chunked encoding if used */
if ((h->flags & AVIO_WRONLY) && s->chunksize != -1) { if ((h->flags & AVIO_FLAG_WRITE) && s->chunksize != -1) {
ret = ffurl_write(s->hd, footer, sizeof(footer) - 1); ret = ffurl_write(s->hd, footer, sizeof(footer) - 1);
ret = ret > 0 ? 0 : ret; ret = ret > 0 ? 0 : ret;
} }

@ -278,7 +278,7 @@ static int read_packet(AVFormatContext *s1, AVPacket *pkt)
s->path, s->img_number)<0 && s->img_number > 1) s->path, s->img_number)<0 && s->img_number > 1)
return AVERROR(EIO); return AVERROR(EIO);
for(i=0; i<3; i++){ for(i=0; i<3; i++){
if (avio_open(&f[i], filename, AVIO_RDONLY) < 0) { if (avio_open(&f[i], filename, AVIO_FLAG_READ) < 0) {
if(i==1) if(i==1)
break; break;
av_log(s1, AV_LOG_ERROR, "Could not open file : %s\n",filename); av_log(s1, AV_LOG_ERROR, "Could not open file : %s\n",filename);
@ -362,7 +362,7 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt)
return AVERROR(EIO); return AVERROR(EIO);
} }
for(i=0; i<3; i++){ for(i=0; i<3; i++){
if (avio_open(&pb[i], filename, AVIO_WRONLY) < 0) { if (avio_open(&pb[i], filename, AVIO_FLAG_WRITE) < 0) {
av_log(s, AV_LOG_ERROR, "Could not open file : %s\n",filename); av_log(s, AV_LOG_ERROR, "Could not open file : %s\n",filename);
return AVERROR(EIO); return AVERROR(EIO);
} }

@ -94,7 +94,7 @@ static int rtmp_open(URLContext *s, const char *uri, int flags)
goto fail; goto fail;
} }
if (flags & AVIO_WRONLY) if (flags & AVIO_FLAG_WRITE)
RTMP_EnableWrite(r); RTMP_EnableWrite(r);
if (!RTMP_Connect(r, NULL) || !RTMP_ConnectStream(r, 0)) { if (!RTMP_Connect(r, NULL) || !RTMP_ConnectStream(r, 0)) {

@ -1331,7 +1331,7 @@ static int matroska_read_header(AVFormatContext *s, AVFormatParameters *ap)
&& track->codec_priv.data != NULL) { && track->codec_priv.data != NULL) {
int ret; int ret;
ffio_init_context(&b, track->codec_priv.data, track->codec_priv.size, ffio_init_context(&b, track->codec_priv.data, track->codec_priv.size,
AVIO_RDONLY, NULL, NULL, NULL, NULL); AVIO_FLAG_READ, NULL, NULL, NULL, NULL);
ret = ff_get_wav_header(&b, st->codec, track->codec_priv.size); ret = ff_get_wav_header(&b, st->codec, track->codec_priv.size);
if (ret < 0) if (ret < 0)
return ret; return ret;

@ -36,7 +36,7 @@ static int md5_open(URLContext *h, const char *filename, int flags)
return -1; return -1;
} }
if (flags != AVIO_WRONLY) if (!flags & AVIO_FLAG_WRITE)
return AVERROR(EINVAL); return AVERROR(EINVAL);
av_md5_init(h->priv_data); av_md5_init(h->priv_data);
@ -65,7 +65,7 @@ static int md5_close(URLContext *h)
av_strstart(filename, "md5:", &filename); av_strstart(filename, "md5:", &filename);
if (*filename) { if (*filename) {
err = ffurl_open(&out, filename, AVIO_WRONLY); err = ffurl_open(&out, filename, AVIO_FLAG_WRITE);
if (err) if (err)
return err; return err;
err = ffurl_write(out, buf, i*2+1); err = ffurl_write(out, buf, i*2+1);

@ -233,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 (ffurl_alloc(&mms->mms_hd, httpname, AVIO_RDONLY) < 0) { if (ffurl_alloc(&mms->mms_hd, httpname, AVIO_FLAG_READ) < 0) {
return AVERROR(EIO); return AVERROR(EIO);
} }
@ -261,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.
ffurl_close(mms->mms_hd); ffurl_close(mms->mms_hd);
memset(headers, 0, sizeof(headers)); memset(headers, 0, sizeof(headers));
if (ffurl_alloc(&mms->mms_hd, httpname, AVIO_RDONLY) < 0) { if (ffurl_alloc(&mms->mms_hd, httpname, AVIO_FLAG_READ) < 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);

@ -523,7 +523,7 @@ static int mms_open(URLContext *h, const char *uri, int flags)
// establish tcp connection. // establish tcp connection.
ff_url_join(tcpname, sizeof(tcpname), "tcp", NULL, mmst->host, port, NULL); ff_url_join(tcpname, sizeof(tcpname), "tcp", NULL, mmst->host, port, NULL);
err = ffurl_open(&mms->mms_hd, tcpname, AVIO_RDWR); err = ffurl_open(&mms->mms_hd, tcpname, AVIO_FLAG_READ_WRITE);
if (err) if (err)
goto fail; goto fail;

@ -1721,7 +1721,7 @@ static int mov_open_dref(AVIOContext **pb, char *src, MOVDref *ref)
av_strlcat(filename, ref->path + l + 1, 1024); av_strlcat(filename, ref->path + l + 1, 1024);
if (!avio_open(pb, filename, AVIO_RDONLY)) if (!avio_open(pb, filename, AVIO_FLAG_READ))
return 0; return 0;
} }
} }

@ -492,7 +492,7 @@ int main(int argc, char **argv)
/* open the output file, if needed */ /* open the output file, if needed */
if (!(fmt->flags & AVFMT_NOFILE)) { if (!(fmt->flags & AVFMT_NOFILE)) {
if (avio_open(&oc->pb, filename, AVIO_WRONLY) < 0) { if (avio_open(&oc->pb, filename, AVIO_FLAG_WRITE) < 0) {
fprintf(stderr, "Could not open '%s'\n", filename); fprintf(stderr, "Could not open '%s'\n", filename);
exit(1); exit(1);
} }

@ -805,7 +805,7 @@ static int rtmp_open(URLContext *s, const char *uri, int flags)
if (!rt) if (!rt)
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
s->priv_data = rt; s->priv_data = rt;
rt->is_input = !(flags & AVIO_WRONLY); rt->is_input = !(flags & AVIO_FLAG_WRITE);
av_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); path, sizeof(path), s->filename);
@ -814,8 +814,8 @@ static int rtmp_open(URLContext *s, const char *uri, int flags)
port = RTMP_DEFAULT_PORT; port = RTMP_DEFAULT_PORT;
ff_url_join(buf, sizeof(buf), "tcp", NULL, hostname, port, NULL); ff_url_join(buf, sizeof(buf), "tcp", NULL, hostname, port, NULL);
if (ffurl_open(&rt->stream, buf, AVIO_RDWR) < 0) { if (ffurl_open(&rt->stream, buf, AVIO_FLAG_READ_WRITE) < 0) {
av_log(s, AV_LOG_ERROR, "Cannot open connection %s\n", buf); av_log(s , AV_LOG_ERROR, "Cannot open connection %s\n", buf);
goto fail; goto fail;
} }

@ -145,7 +145,7 @@ static int rtp_open(URLContext *h, const char *uri, int flags)
char path[1024]; char path[1024];
const char *p; const char *p;
is_output = (flags & AVIO_WRONLY); is_output = (flags & AVIO_FLAG_WRITE);
s = av_mallocz(sizeof(RTPContext)); s = av_mallocz(sizeof(RTPContext));
if (!s) if (!s)

@ -1116,14 +1116,14 @@ int ff_rtsp_make_setup_request(AVFormatContext *s, const char *host, int port,
"?localport=%d", j); "?localport=%d", j);
/* we will use two ports per rtp stream (rtp and rtcp) */ /* we will use two ports per rtp stream (rtp and rtcp) */
j += 2; j += 2;
if (ffurl_open(&rtsp_st->rtp_handle, buf, AVIO_RDWR) == 0) if (ffurl_open(&rtsp_st->rtp_handle, buf, AVIO_FLAG_READ_WRITE) == 0)
goto rtp_opened; goto rtp_opened;
} }
} }
#if 0 #if 0
/* then try on any port */ /* then try on any port */
if (ffurl_open(&rtsp_st->rtp_handle, "rtp://", AVIO_RDONLY) < 0) { if (ffurl_open(&rtsp_st->rtp_handle, "rtp://", AVIO_FLAG_READ) < 0) {
err = AVERROR_INVALIDDATA; err = AVERROR_INVALIDDATA;
goto fail; goto fail;
} }
@ -1269,7 +1269,7 @@ int ff_rtsp_make_setup_request(AVFormatContext *s, const char *host, int port,
namebuf, sizeof(namebuf), NULL, 0, NI_NUMERICHOST); namebuf, sizeof(namebuf), NULL, 0, NI_NUMERICHOST);
ff_url_join(url, sizeof(url), "rtp", NULL, namebuf, ff_url_join(url, sizeof(url), "rtp", NULL, namebuf,
port, "?ttl=%d", ttl); port, "?ttl=%d", ttl);
if (ffurl_open(&rtsp_st->rtp_handle, url, AVIO_RDWR) < 0) { if (ffurl_open(&rtsp_st->rtp_handle, url, AVIO_FLAG_READ_WRITE) < 0) {
err = AVERROR_INVALIDDATA; err = AVERROR_INVALIDDATA;
goto fail; goto fail;
} }
@ -1396,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 (ffurl_alloc(&rt->rtsp_hd, httpname, AVIO_RDONLY) < 0) { if (ffurl_alloc(&rt->rtsp_hd, httpname, AVIO_FLAG_READ) < 0) {
err = AVERROR(EIO); err = AVERROR(EIO);
goto fail; goto fail;
} }
@ -1417,7 +1417,7 @@ redirect:
} }
/* POST requests */ /* POST requests */
if (ffurl_alloc(&rt->rtsp_hd_out, httpname, AVIO_WRONLY) < 0 ) { if (ffurl_alloc(&rt->rtsp_hd_out, httpname, AVIO_FLAG_WRITE) < 0 ) {
err = AVERROR(EIO); err = AVERROR(EIO);
goto fail; goto fail;
} }
@ -1460,7 +1460,7 @@ redirect:
} else { } else {
/* open the tcp connection */ /* open the tcp connection */
ff_url_join(tcpname, sizeof(tcpname), "tcp", NULL, host, port, NULL); ff_url_join(tcpname, sizeof(tcpname), "tcp", NULL, host, port, NULL);
if (ffurl_open(&rt->rtsp_hd, tcpname, AVIO_RDWR) < 0) { if (ffurl_open(&rt->rtsp_hd, tcpname, AVIO_FLAG_READ_WRITE) < 0) {
err = AVERROR(EIO); err = AVERROR(EIO);
goto fail; goto fail;
} }
@ -1807,7 +1807,7 @@ static int sdp_read_header(AVFormatContext *s, AVFormatParameters *ap)
namebuf, rtsp_st->sdp_port, namebuf, rtsp_st->sdp_port,
"?localport=%d&ttl=%d", rtsp_st->sdp_port, "?localport=%d&ttl=%d", rtsp_st->sdp_port,
rtsp_st->sdp_ttl); rtsp_st->sdp_ttl);
if (ffurl_open(&rtsp_st->rtp_handle, url, AVIO_RDWR) < 0) { if (ffurl_open(&rtsp_st->rtp_handle, url, AVIO_FLAG_READ_WRITE) < 0) {
err = AVERROR_INVALIDDATA; err = AVERROR_INVALIDDATA;
goto fail; goto fail;
} }
@ -1863,7 +1863,7 @@ static int rtp_read_header(AVFormatContext *s,
if (!ff_network_init()) if (!ff_network_init())
return AVERROR(EIO); return AVERROR(EIO);
ret = ffurl_open(&in, s->filename, AVIO_RDONLY); ret = ffurl_open(&in, s->filename, AVIO_FLAG_READ);
if (ret) if (ret)
goto fail; goto fail;

@ -85,7 +85,7 @@ static int sap_read_header(AVFormatContext *s,
ff_url_join(url, sizeof(url), "udp", NULL, host, port, "?localport=%d", ff_url_join(url, sizeof(url), "udp", NULL, host, port, "?localport=%d",
port); port);
ret = ffurl_open(&sap->ann_fd, url, AVIO_RDONLY); ret = ffurl_open(&sap->ann_fd, url, AVIO_FLAG_READ);
if (ret) if (ret)
goto fail; goto fail;

@ -146,7 +146,7 @@ static int sap_write_header(AVFormatContext *s)
"?ttl=%d", ttl); "?ttl=%d", ttl);
if (!same_port) if (!same_port)
base_port += 2; base_port += 2;
ret = ffurl_open(&fd, url, AVIO_WRONLY); ret = ffurl_open(&fd, url, AVIO_FLAG_WRITE);
if (ret) { if (ret) {
ret = AVERROR(EIO); ret = AVERROR(EIO);
goto fail; goto fail;
@ -158,7 +158,7 @@ static int sap_write_header(AVFormatContext *s)
ff_url_join(url, sizeof(url), "udp", NULL, announce_addr, port, ff_url_join(url, sizeof(url), "udp", NULL, announce_addr, port,
"?ttl=%d&connect=1", ttl); "?ttl=%d&connect=1", ttl);
ret = ffurl_open(&sap->ann_fd, url, AVIO_WRONLY); ret = ffurl_open(&sap->ann_fd, url, AVIO_FLAG_WRITE);
if (ret) { if (ret) {
ret = AVERROR(EIO); ret = AVERROR(EIO);
goto fail; goto fail;

@ -315,7 +315,7 @@ static int udp_open(URLContext *h, const char *uri, int flags)
h->is_streamed = 1; h->is_streamed = 1;
h->max_packet_size = 1472; h->max_packet_size = 1472;
is_output = (flags & AVIO_WRONLY); is_output = (flags & AVIO_FLAG_WRITE);
s = av_mallocz(sizeof(UDPContext)); s = av_mallocz(sizeof(UDPContext));
if (!s) if (!s)
@ -358,14 +358,14 @@ static int udp_open(URLContext *h, const char *uri, int flags)
/* XXX: fix av_url_split */ /* XXX: fix av_url_split */
if (hostname[0] == '\0' || hostname[0] == '?') { if (hostname[0] == '\0' || hostname[0] == '?') {
/* only accepts null hostname if input */ /* only accepts null hostname if input */
if (flags & AVIO_WRONLY) if (flags & AVIO_FLAG_WRITE)
goto fail; goto fail;
} else { } else {
if (ff_udp_set_remote_url(h, uri) < 0) if (ff_udp_set_remote_url(h, uri) < 0)
goto fail; goto fail;
} }
if (s->is_multicast && !(h->flags & AVIO_WRONLY)) if (s->is_multicast && !(h->flags & AVIO_FLAG_WRITE))
s->local_port = port; s->local_port = port;
udp_fd = udp_socket_create(s, &my_addr, &len); udp_fd = udp_socket_create(s, &my_addr, &len);
if (udp_fd < 0) if (udp_fd < 0)
@ -382,7 +382,7 @@ static int udp_open(URLContext *h, const char *uri, int flags)
/* the bind is needed to give a port to the socket now */ /* the bind is needed to give a port to the socket now */
/* if multicast, try the multicast address bind first */ /* if multicast, try the multicast address bind first */
if (s->is_multicast && !(h->flags & AVIO_WRONLY)) { if (s->is_multicast && !(h->flags & AVIO_FLAG_WRITE)) {
bind_ret = bind(udp_fd,(struct sockaddr *)&s->dest_addr, len); bind_ret = bind(udp_fd,(struct sockaddr *)&s->dest_addr, len);
} }
/* bind to the local address if not multicast or if the multicast /* bind to the local address if not multicast or if the multicast
@ -395,7 +395,7 @@ static int udp_open(URLContext *h, const char *uri, int flags)
s->local_port = udp_port(&my_addr, len); s->local_port = udp_port(&my_addr, len);
if (s->is_multicast) { if (s->is_multicast) {
if (h->flags & AVIO_WRONLY) { if (h->flags & AVIO_FLAG_WRITE) {
/* output */ /* output */
if (udp_set_multicast_ttl(udp_fd, s->ttl, (struct sockaddr *)&s->dest_addr) < 0) if (udp_set_multicast_ttl(udp_fd, s->ttl, (struct sockaddr *)&s->dest_addr) < 0)
goto fail; goto fail;
@ -478,7 +478,7 @@ static int udp_close(URLContext *h)
{ {
UDPContext *s = h->priv_data; UDPContext *s = h->priv_data;
if (s->is_multicast && !(h->flags & AVIO_WRONLY)) if (s->is_multicast && !(h->flags & AVIO_FLAG_WRITE))
udp_leave_multicast_group(s->udp_fd, (struct sockaddr *)&s->dest_addr); udp_leave_multicast_group(s->udp_fd, (struct sockaddr *)&s->dest_addr);
closesocket(s->udp_fd); closesocket(s->udp_fd);
av_free(s); av_free(s);

@ -561,7 +561,7 @@ int av_open_input_file(AVFormatContext **ic_ptr, const char *filename,
hack needed to handle RTSP/TCP */ hack needed to handle RTSP/TCP */
if (!fmt || !(fmt->flags & AVFMT_NOFILE)) { if (!fmt || !(fmt->flags & AVFMT_NOFILE)) {
/* if no file needed do not try to open one */ /* if no file needed do not try to open one */
if ((err=avio_open(&pb, filename, AVIO_RDONLY)) < 0) { if ((err=avio_open(&pb, filename, AVIO_FLAG_READ)) < 0) {
goto fail; goto fail;
} }
if (buf_size > 0) { if (buf_size > 0) {

Loading…
Cancel
Save