X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Faviobuf.c;h=fa63ddf2b901361a0bba7e1190133c0c68fac0ae;hb=add41decd94b2d3581a3715ba10f27168b8cdb1b;hp=cde5f269b58358fa4b114a58f2323a4adb788c18;hpb=ff1ec0c3f8fce10e92010f82f7e859e08f9c742a;p=ffmpeg diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c index cde5f269b58..fa63ddf2b90 100644 --- a/libavformat/aviobuf.c +++ b/libavformat/aviobuf.c @@ -38,9 +38,7 @@ #define SHORT_SEEK_THRESHOLD 4096 static void fill_buffer(AVIOContext *s); -#if !FF_API_URL_RESETBUF static int url_resetbuf(AVIOContext *s, int flags); -#endif int ffio_init_context(AVIOContext *s, unsigned char *buffer, @@ -55,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; @@ -115,6 +113,8 @@ AVIOContext *avio_alloc_context( int64_t (*seek)(void *opaque, int64_t offset, int whence)) { AVIOContext *s = av_mallocz(sizeof(AVIOContext)); + if (!s) + return NULL; ffio_init_context(s, buffer, buffer_size, write_flag, opaque, read_packet, write_packet, seek); return s; @@ -845,7 +845,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); @@ -874,24 +874,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; } -#if FF_API_URL_RESETBUF -int url_resetbuf(AVIOContext *s, int flags) -#else static int url_resetbuf(AVIOContext *s, int flags) -#endif { -#if FF_API_URL_RESETBUF - if (flags & AVIO_RDWR) - return AVERROR(EINVAL); -#else - assert(flags == AVIO_WRONLY || flags == AVIO_RDONLY); -#endif + 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 { @@ -1049,7 +1040,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);