X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Faviobuf.c;h=7762d6cace1e92bc62010376945c04a61d5d78ab;hb=89e568feeca69b1e4b975d0b26aeafbe72fd5418;hp=f53ec562f54122ba197fbd10ec40aa837cee617f;hpb=61840b43607679e8c4a1a63f005770f69dda12fa;p=ffmpeg diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c index f53ec562f54..7762d6cace1 100644 --- a/libavformat/aviobuf.c +++ b/libavformat/aviobuf.c @@ -176,7 +176,7 @@ void put_flush_packet(AVIOContext *s) s->must_flush = 0; } -int64_t url_fseek(AVIOContext *s, int64_t offset, int whence) +int64_t avio_seek(AVIOContext *s, int64_t offset, int whence) { int64_t offset1; int64_t pos; @@ -233,18 +233,20 @@ int64_t url_fseek(AVIOContext *s, int64_t offset, int whence) return offset; } +#if FF_API_OLD_AVIO int url_fskip(AVIOContext *s, int64_t offset) { - int64_t ret = url_fseek(s, offset, SEEK_CUR); + int64_t ret = avio_seek(s, offset, SEEK_CUR); return ret < 0 ? ret : 0; } int64_t url_ftell(AVIOContext *s) { - return url_fseek(s, 0, SEEK_CUR); + return avio_seek(s, 0, SEEK_CUR); } +#endif -int64_t url_fsize(AVIOContext *s) +int64_t avio_size(AVIOContext *s) { int64_t size; @@ -365,6 +367,14 @@ int url_fclose(AVIOContext *s) { return avio_close(s); } +int64_t url_fseek(AVIOContext *s, int64_t offset, int whence) +{ + return avio_seek(s, offset, whence); +} +int64_t url_fsize(AVIOContext *s) +{ + return avio_size(s); +} #endif int avio_put_str(AVIOContext *s, const char *str) @@ -462,7 +472,7 @@ void put_tag(AVIOContext *s, const char *tag) static void fill_buffer(AVIOContext *s) { - uint8_t *dst= !s->max_packet_size && s->buf_end - s->buffer < s->buffer_size ? s->buf_ptr : s->buffer; + uint8_t *dst= !s->max_packet_size && s->buf_end - s->buffer < s->buffer_size ? s->buf_end : s->buffer; int len= s->buffer_size - (dst - s->buffer); int max_buffer_size = s->max_packet_size ? s->max_packet_size : IO_BUFFER_SIZE; @@ -535,6 +545,7 @@ int avio_r8(AVIOContext *s) return 0; } +#if FF_API_OLD_AVIO int url_fgetc(AVIOContext *s) { if (s->buf_ptr >= s->buf_end) @@ -543,6 +554,7 @@ int url_fgetc(AVIOContext *s) return *s->buf_ptr++; return URL_EOF; } +#endif int avio_read(AVIOContext *s, unsigned char *buf, int size) { @@ -669,20 +681,13 @@ unsigned int avio_rb32(AVIOContext *s) return val; } +#if FF_API_OLD_AVIO char *get_strz(AVIOContext *s, char *buf, int maxlen) { - int i = 0; - char c; - - while ((c = avio_r8(s))) { - if (i < maxlen-1) - buf[i++] = c; - } - - buf[i] = 0; /* Ensure null terminated, but may be truncated */ - + avio_get_str(s, INT_MAX, buf, maxlen); return buf; } +#endif int ff_get_line(AVIOContext *s, char *buf, int maxlen) { @@ -699,6 +704,23 @@ int ff_get_line(AVIOContext *s, char *buf, int maxlen) return i; } +int avio_get_str(AVIOContext *s, int maxlen, char *buf, int buflen) +{ + int i; + + // reserve 1 byte for terminating 0 + buflen = FFMIN(buflen - 1, maxlen); + for (i = 0; i < buflen; i++) + if (!(buf[i] = avio_r8(s))) + return i + 1; + if (buflen) + buf[i] = 0; + for (; i < maxlen; i++) + if (!avio_r8(s)) + return i + 1; + return maxlen; +} + #define GET_STR16(type, read) \ int avio_get_str16 ##type(AVIOContext *pb, int maxlen, char *buf, int buflen)\ {\ @@ -815,7 +837,7 @@ static int url_resetbuf(AVIOContext *s, int flags) return 0; } -int ff_rewind_with_probe_data(AVIOContext *s, unsigned char *buf, int buf_size) +int ffio_rewind_with_probe_data(AVIOContext *s, unsigned char *buf, int buf_size) { int64_t buffer_start; int buffer_size; @@ -899,21 +921,22 @@ int url_fprintf(AVIOContext *s, const char *fmt, ...) } #endif //CONFIG_MUXERS +#if FF_API_OLD_AVIO char *url_fgets(AVIOContext *s, char *buf, int buf_size) { int c; char *q; - c = url_fgetc(s); - if (c == EOF) + c = avio_r8(s); + if (url_feof(s)) return NULL; q = buf; for(;;) { - if (c == EOF || c == '\n') + if (url_feof(s) || c == '\n') break; if ((q - buf) < buf_size - 1) *q++ = c; - c = url_fgetc(s); + c = avio_r8(s); } if (buf_size > 0) *q = '\0'; @@ -924,6 +947,7 @@ int url_fget_max_packet_size(AVIOContext *s) { return s->max_packet_size; } +#endif int av_url_read_fpause(AVIOContext *s, int pause) {