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.tags/n0.8
| @@ -3750,7 +3750,7 @@ static void opt_output_file(const char *filename) | |||
| } | |||
| /* 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); | |||
| ffmpeg_exit(1); | |||
| } | |||
| @@ -3422,7 +3422,7 @@ static int rtp_new_av_stream(HTTPContext *c, | |||
| "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; | |||
| c->rtp_handles[stream_index] = 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 */ | |||
| 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", | |||
| feed->feed_filename); | |||
| exit(1); | |||
| @@ -170,7 +170,7 @@ static int parse_playlist(AppleHTTPContext *c, const char *url, | |||
| if (!in) { | |||
| close_in = 1; | |||
| if ((ret = avio_open(&in, url, AVIO_RDONLY)) < 0) | |||
| if ((ret = avio_open(&in, url, AVIO_FLAG_READ)) < 0) | |||
| return ret; | |||
| } | |||
| @@ -293,7 +293,7 @@ reload: | |||
| ret = ffurl_open(&v->input, | |||
| v->segments[v->cur_seq_no - v->start_seq_no]->url, | |||
| AVIO_RDONLY); | |||
| AVIO_FLAG_READ); | |||
| if (ret < 0) | |||
| return ret; | |||
| } | |||
| @@ -115,7 +115,7 @@ static int parse_playlist(URLContext *h, const char *url) | |||
| char line[1024]; | |||
| const char *ptr; | |||
| if ((ret = avio_open(&in, url, AVIO_RDONLY)) < 0) | |||
| if ((ret = avio_open(&in, url, AVIO_FLAG_READ)) < 0) | |||
| return ret; | |||
| 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; | |||
| const char *nested_url; | |||
| if (flags & (AVIO_WRONLY | AVIO_RDWR)) | |||
| if (flags & AVIO_FLAG_WRITE) | |||
| return AVERROR(ENOSYS); | |||
| s = av_mallocz(sizeof(AppleHTTPContext)); | |||
| @@ -275,7 +275,7 @@ retry: | |||
| } | |||
| url = s->segments[s->cur_seq_no - s->start_seq_no]->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 (url_interrupt_cb()) | |||
| return AVERROR_EXIT; | |||
| @@ -129,7 +129,7 @@ int ffurl_connect(URLContext* uc) | |||
| return err; | |||
| uc->is_connected = 1; | |||
| //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")) | |||
| if(!uc->is_streamed && ffurl_seek(uc, 0, SEEK_SET) < 0) | |||
| 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) | |||
| { | |||
| if (h->flags & AVIO_WRONLY) | |||
| if (h->flags & AVIO_FLAG_WRITE) | |||
| return AVERROR(EIO); | |||
| return retry_transfer_wrapper(h, buf, size, 1, h->prot->url_read); | |||
| } | |||
| 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 retry_transfer_wrapper(h, buf, size, size, h->prot->url_read); | |||
| } | |||
| 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); | |||
| /* avoid sending too big packets */ | |||
| 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) | |||
| { | |||
| URLContext *h; | |||
| if (ffurl_open(&h, filename, AVIO_RDONLY) < 0) | |||
| if (ffurl_open(&h, filename, AVIO_FLAG_READ) < 0) | |||
| return 0; | |||
| ffurl_close(h); | |||
| return 1; | |||
| @@ -347,7 +347,7 @@ attribute_deprecated int url_exist(const char *url); | |||
| #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 | |||
| * AVERROR code in case of failure. The returned access flags are | |||
| * 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. | |||
| * @{ | |||
| */ | |||
| #define AVIO_RDONLY 1 /**< read-only */ | |||
| #define AVIO_WRONLY 2 /**< write-only */ | |||
| #define AVIO_RDWR 4 /**< read-write */ | |||
| #define AVIO_FLAG_READ 1 /**< read-only */ | |||
| #define AVIO_FLAG_WRITE 2 /**< write-only */ | |||
| #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->buf_ptr = buffer; | |||
| 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->read_packet = read_packet; | |||
| s->seek = seek; | |||
| @@ -843,7 +843,7 @@ int ffio_fdopen(AVIOContext **s, URLContext *h) | |||
| } | |||
| 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) { | |||
| av_free(buffer); | |||
| av_freep(s); | |||
| @@ -872,15 +872,15 @@ int ffio_set_buf_size(AVIOContext *s, int buf_size) | |||
| s->buffer = buffer; | |||
| s->buffer_size = buf_size; | |||
| 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; | |||
| } | |||
| 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->write_flag = 1; | |||
| } else { | |||
| @@ -1038,7 +1038,7 @@ int url_open_buf(AVIOContext **s, uint8_t *buf, int buf_size, int flags) | |||
| if(!*s) | |||
| return AVERROR(ENOMEM); | |||
| ret = ffio_init_context(*s, buf, buf_size, | |||
| (flags & AVIO_WRONLY || flags & AVIO_RDWR), | |||
| flags & AVIO_FLAG_WRITE, | |||
| NULL, NULL, NULL, NULL); | |||
| if(ret != 0) | |||
| av_freep(s); | |||
| @@ -60,9 +60,9 @@ static int file_open(URLContext *h, const char *filename, int flags) | |||
| 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; | |||
| } else if (flags & AVIO_WRONLY) { | |||
| } else if (flags & AVIO_FLAG_WRITE) { | |||
| access = O_CREAT | O_TRUNC | O_WRONLY; | |||
| } else { | |||
| access = O_RDONLY; | |||
| @@ -102,9 +102,8 @@ static int file_check(URLContext *h, int mask) | |||
| if (ret < 0) | |||
| return AVERROR(errno); | |||
| ret |= st.st_mode&S_IRUSR ? mask&AVIO_RDONLY : 0; | |||
| ret |= st.st_mode&S_IWUSR ? mask&AVIO_WRONLY : 0; | |||
| ret |= st.st_mode&S_IWUSR && st.st_mode&S_IRUSR ? mask&AVIO_RDWR : 0; | |||
| ret |= st.st_mode&S_IRUSR ? mask&AVIO_FLAG_READ : 0; | |||
| ret |= st.st_mode&S_IWUSR ? mask&AVIO_FLAG_WRITE : 0; | |||
| return ret; | |||
| } | |||
| @@ -132,7 +131,7 @@ static int pipe_open(URLContext *h, const char *filename, int flags) | |||
| fd = strtol(filename, &final, 10); | |||
| if((filename == final) || *final ) {/* No digits found, or something like 10ab */ | |||
| if (flags & AVIO_WRONLY) { | |||
| if (flags & AVIO_FLAG_WRITE) { | |||
| fd = 1; | |||
| } else { | |||
| 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); | |||
| s->hd = NULL; | |||
| err = ffurl_open(&s->hd, buf, AVIO_RDWR); | |||
| err = ffurl_open(&s->hd, buf, AVIO_FLAG_READ_WRITE); | |||
| if (err < 0) | |||
| goto fail; | |||
| @@ -124,7 +124,7 @@ static int http_open_cnx(URLContext *h) | |||
| port = 80; | |||
| 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) | |||
| goto fail; | |||
| @@ -296,7 +296,7 @@ static int http_connect(URLContext *h, const char *path, const char *hoststr, | |||
| /* 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, | |||
| post ? "POST" : "GET"); | |||
| @@ -451,7 +451,7 @@ static int http_close(URLContext *h) | |||
| HTTPContext *s = h->priv_data; | |||
| /* 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 = 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) | |||
| return AVERROR(EIO); | |||
| 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) | |||
| break; | |||
| 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); | |||
| } | |||
| 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); | |||
| return AVERROR(EIO); | |||
| } | |||
| @@ -94,7 +94,7 @@ static int rtmp_open(URLContext *s, const char *uri, int flags) | |||
| goto fail; | |||
| } | |||
| if (flags & AVIO_WRONLY) | |||
| if (flags & AVIO_FLAG_WRITE) | |||
| RTMP_EnableWrite(r); | |||
| 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) { | |||
| int ret; | |||
| 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); | |||
| if (ret < 0) | |||
| return ret; | |||
| @@ -36,7 +36,7 @@ static int md5_open(URLContext *h, const char *filename, int flags) | |||
| return -1; | |||
| } | |||
| if (flags != AVIO_WRONLY) | |||
| if (!flags & AVIO_FLAG_WRITE) | |||
| return AVERROR(EINVAL); | |||
| av_md5_init(h->priv_data); | |||
| @@ -65,7 +65,7 @@ static int md5_close(URLContext *h) | |||
| av_strstart(filename, "md5:", &filename); | |||
| if (*filename) { | |||
| err = ffurl_open(&out, filename, AVIO_WRONLY); | |||
| err = ffurl_open(&out, filename, AVIO_FLAG_WRITE); | |||
| if (err) | |||
| return err; | |||
| 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 | |||
| 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); | |||
| } | |||
| @@ -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. | |||
| ffurl_close(mms->mms_hd); | |||
| 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); | |||
| } | |||
| 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. | |||
| 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) | |||
| 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); | |||
| if (!avio_open(pb, filename, AVIO_RDONLY)) | |||
| if (!avio_open(pb, filename, AVIO_FLAG_READ)) | |||
| return 0; | |||
| } | |||
| } | |||
| @@ -492,7 +492,7 @@ int main(int argc, char **argv) | |||
| /* open the output file, if needed */ | |||
| 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); | |||
| exit(1); | |||
| } | |||
| @@ -805,7 +805,7 @@ static int rtmp_open(URLContext *s, const char *uri, int flags) | |||
| if (!rt) | |||
| return AVERROR(ENOMEM); | |||
| 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, | |||
| path, sizeof(path), s->filename); | |||
| @@ -814,8 +814,8 @@ static int rtmp_open(URLContext *s, const char *uri, int flags) | |||
| port = RTMP_DEFAULT_PORT; | |||
| ff_url_join(buf, sizeof(buf), "tcp", NULL, hostname, port, NULL); | |||
| if (ffurl_open(&rt->stream, buf, AVIO_RDWR) < 0) { | |||
| av_log(s, AV_LOG_ERROR, "Cannot open connection %s\n", buf); | |||
| if (ffurl_open(&rt->stream, buf, AVIO_FLAG_READ_WRITE) < 0) { | |||
| av_log(s , AV_LOG_ERROR, "Cannot open connection %s\n", buf); | |||
| goto fail; | |||
| } | |||
| @@ -145,7 +145,7 @@ static int rtp_open(URLContext *h, const char *uri, int flags) | |||
| char path[1024]; | |||
| const char *p; | |||
| is_output = (flags & AVIO_WRONLY); | |||
| is_output = (flags & AVIO_FLAG_WRITE); | |||
| s = av_mallocz(sizeof(RTPContext)); | |||
| if (!s) | |||
| @@ -1116,14 +1116,14 @@ int ff_rtsp_make_setup_request(AVFormatContext *s, const char *host, int port, | |||
| "?localport=%d", j); | |||
| /* we will use two ports per rtp stream (rtp and rtcp) */ | |||
| 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; | |||
| } | |||
| } | |||
| #if 0 | |||
| /* 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; | |||
| 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); | |||
| ff_url_join(url, sizeof(url), "rtp", NULL, namebuf, | |||
| 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; | |||
| goto fail; | |||
| } | |||
| @@ -1396,7 +1396,7 @@ redirect: | |||
| av_get_random_seed(), av_get_random_seed()); | |||
| /* 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); | |||
| goto fail; | |||
| } | |||
| @@ -1417,7 +1417,7 @@ redirect: | |||
| } | |||
| /* 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); | |||
| goto fail; | |||
| } | |||
| @@ -1460,7 +1460,7 @@ redirect: | |||
| } else { | |||
| /* open the tcp connection */ | |||
| 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); | |||
| goto fail; | |||
| } | |||
| @@ -1807,7 +1807,7 @@ static int sdp_read_header(AVFormatContext *s, AVFormatParameters *ap) | |||
| namebuf, rtsp_st->sdp_port, | |||
| "?localport=%d&ttl=%d", rtsp_st->sdp_port, | |||
| 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; | |||
| goto fail; | |||
| } | |||
| @@ -1863,7 +1863,7 @@ static int rtp_read_header(AVFormatContext *s, | |||
| if (!ff_network_init()) | |||
| return AVERROR(EIO); | |||
| ret = ffurl_open(&in, s->filename, AVIO_RDONLY); | |||
| ret = ffurl_open(&in, s->filename, AVIO_FLAG_READ); | |||
| if (ret) | |||
| 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", | |||
| port); | |||
| ret = ffurl_open(&sap->ann_fd, url, AVIO_RDONLY); | |||
| ret = ffurl_open(&sap->ann_fd, url, AVIO_FLAG_READ); | |||
| if (ret) | |||
| goto fail; | |||
| @@ -146,7 +146,7 @@ static int sap_write_header(AVFormatContext *s) | |||
| "?ttl=%d", ttl); | |||
| if (!same_port) | |||
| base_port += 2; | |||
| ret = ffurl_open(&fd, url, AVIO_WRONLY); | |||
| ret = ffurl_open(&fd, url, AVIO_FLAG_WRITE); | |||
| if (ret) { | |||
| ret = AVERROR(EIO); | |||
| goto fail; | |||
| @@ -158,7 +158,7 @@ static int sap_write_header(AVFormatContext *s) | |||
| ff_url_join(url, sizeof(url), "udp", NULL, announce_addr, port, | |||
| "?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) { | |||
| ret = AVERROR(EIO); | |||
| goto fail; | |||
| @@ -315,7 +315,7 @@ static int udp_open(URLContext *h, const char *uri, int flags) | |||
| h->is_streamed = 1; | |||
| h->max_packet_size = 1472; | |||
| is_output = (flags & AVIO_WRONLY); | |||
| is_output = (flags & AVIO_FLAG_WRITE); | |||
| s = av_mallocz(sizeof(UDPContext)); | |||
| if (!s) | |||
| @@ -358,14 +358,14 @@ static int udp_open(URLContext *h, const char *uri, int flags) | |||
| /* XXX: fix av_url_split */ | |||
| if (hostname[0] == '\0' || hostname[0] == '?') { | |||
| /* only accepts null hostname if input */ | |||
| if (flags & AVIO_WRONLY) | |||
| if (flags & AVIO_FLAG_WRITE) | |||
| goto fail; | |||
| } else { | |||
| if (ff_udp_set_remote_url(h, uri) < 0) | |||
| goto fail; | |||
| } | |||
| if (s->is_multicast && !(h->flags & AVIO_WRONLY)) | |||
| if (s->is_multicast && !(h->flags & AVIO_FLAG_WRITE)) | |||
| s->local_port = port; | |||
| udp_fd = udp_socket_create(s, &my_addr, &len); | |||
| 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 */ | |||
| /* 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 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); | |||
| if (s->is_multicast) { | |||
| if (h->flags & AVIO_WRONLY) { | |||
| if (h->flags & AVIO_FLAG_WRITE) { | |||
| /* output */ | |||
| if (udp_set_multicast_ttl(udp_fd, s->ttl, (struct sockaddr *)&s->dest_addr) < 0) | |||
| goto fail; | |||
| @@ -478,7 +478,7 @@ static int udp_close(URLContext *h) | |||
| { | |||
| 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); | |||
| closesocket(s->udp_fd); | |||
| av_free(s); | |||
| @@ -561,7 +561,7 @@ int av_open_input_file(AVFormatContext **ic_ptr, const char *filename, | |||
| hack needed to handle RTSP/TCP */ | |||
| if (!fmt || !(fmt->flags & AVFMT_NOFILE)) { | |||
| /* 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; | |||
| } | |||
| if (buf_size > 0) { | |||