From 58a48c6511f1aded04885933fdb2449251f0ec64 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Thu, 31 Mar 2011 17:30:31 +0200 Subject: [PATCH] avio: make url_seek() internal. --- libavformat/avio.c | 18 +++++++++++------- libavformat/avio.h | 17 +---------------- libavformat/aviobuf.c | 2 +- libavformat/concat.c | 6 +++--- libavformat/url.h | 16 ++++++++++++++++ 5 files changed, 32 insertions(+), 27 deletions(-) diff --git a/libavformat/avio.c b/libavformat/avio.c index 568f6885df..8f13e5f6e5 100644 --- a/libavformat/avio.c +++ b/libavformat/avio.c @@ -143,10 +143,10 @@ int ffurl_connect(URLContext* uc) if (err) return err; uc->is_connected = 1; - //We must be careful here as url_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 & (URL_WRONLY | URL_RDWR)) || !strcmp(uc->prot->name, "file")) - if(!uc->is_streamed && url_seek(uc, 0, SEEK_SET) < 0) + if(!uc->is_streamed && ffurl_seek(uc, 0, SEEK_SET) < 0) uc->is_streamed= 1; return 0; } @@ -192,6 +192,10 @@ int url_write(URLContext *h, const unsigned char *buf, int size) { return ffurl_write(h, buf, size); } +int64_t url_seek(URLContext *h, int64_t pos, int whence) +{ + return ffurl_seek(h, pos, whence); +} #endif #define URL_SCHEME_CHARS \ @@ -295,7 +299,7 @@ int ffurl_write(URLContext *h, const unsigned char *buf, int size) return retry_transfer_wrapper(h, buf, size, size, h->prot->url_write); } -int64_t url_seek(URLContext *h, int64_t pos, int whence) +int64_t ffurl_seek(URLContext *h, int64_t pos, int whence) { int64_t ret; @@ -334,13 +338,13 @@ int64_t url_filesize(URLContext *h) { int64_t pos, size; - size= url_seek(h, 0, AVSEEK_SIZE); + size= ffurl_seek(h, 0, AVSEEK_SIZE); if(size<0){ - pos = url_seek(h, 0, SEEK_CUR); - if ((size = url_seek(h, -1, SEEK_END)) < 0) + pos = ffurl_seek(h, 0, SEEK_CUR); + if ((size = ffurl_seek(h, -1, SEEK_END)) < 0) return size; size++; - url_seek(h, pos, SEEK_SET); + ffurl_seek(h, pos, SEEK_SET); } return size; } diff --git a/libavformat/avio.h b/libavformat/avio.h index fe9dc36c24..7f53fdddc6 100644 --- a/libavformat/avio.h +++ b/libavformat/avio.h @@ -108,24 +108,9 @@ attribute_deprecated int url_open(URLContext **h, const char *url, int flags); attribute_deprecated int url_read(URLContext *h, unsigned char *buf, int size); attribute_deprecated int url_read_complete(URLContext *h, unsigned char *buf, int size); attribute_deprecated int url_write(URLContext *h, const unsigned char *buf, int size); +attribute_deprecated int64_t url_seek(URLContext *h, int64_t pos, int whence); #endif -/** - * Change the position that will be used by the next read/write - * operation on the resource accessed by h. - * - * @param pos specifies the new position to set - * @param whence specifies how pos should be interpreted, it must be - * one of SEEK_SET (seek from the beginning), SEEK_CUR (seek from the - * current position), SEEK_END (seek from the end), or AVSEEK_SIZE - * (return the filesize of the requested resource, pos is ignored). - * @return a negative value corresponding to an AVERROR code in case - * of failure, or the resulting file position, measured in bytes from - * the beginning of the file. You can use this feature together with - * SEEK_CUR to read the current file position. - */ -int64_t url_seek(URLContext *h, int64_t pos, int whence); - /** * Close the resource accessed by the URLContext h, and free the * memory used by it. diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c index c7bdec8492..306fe1c653 100644 --- a/libavformat/aviobuf.c +++ b/libavformat/aviobuf.c @@ -846,7 +846,7 @@ int ffio_fdopen(AVIOContext **s, URLContext *h) if (ffio_init_context(*s, buffer, buffer_size, (h->flags & URL_WRONLY || h->flags & URL_RDWR), h, - ffurl_read, ffurl_write, url_seek) < 0) { + ffurl_read, ffurl_write, ffurl_seek) < 0) { av_free(buffer); av_freep(s); return AVERROR(EIO); diff --git a/libavformat/concat.c b/libavformat/concat.c index 8147fda6c3..0f3ecb0d21 100644 --- a/libavformat/concat.c +++ b/libavformat/concat.c @@ -141,7 +141,7 @@ static int concat_read(URLContext *h, unsigned char *buf, int size) return total ? total : result; if (!result) if (i + 1 == data->length || - url_seek(nodes[++i].uc, 0, SEEK_SET) < 0) + ffurl_seek(nodes[++i].uc, 0, SEEK_SET) < 0) break; total += result; buf += result; @@ -169,7 +169,7 @@ static int64_t concat_seek(URLContext *h, int64_t pos, int whence) /* get the absolute position */ for (i = 0; i != data->current; i++) pos += nodes[i].size; - pos += url_seek(nodes[i].uc, 0, SEEK_CUR); + pos += ffurl_seek(nodes[i].uc, 0, SEEK_CUR); whence = SEEK_SET; /* fall through with the absolute position */ case SEEK_SET: @@ -180,7 +180,7 @@ static int64_t concat_seek(URLContext *h, int64_t pos, int whence) return AVERROR(EINVAL); } - result = url_seek(nodes[i].uc, pos, whence); + result = ffurl_seek(nodes[i].uc, pos, whence); if (result >= 0) { data->current = i; while (i) diff --git a/libavformat/url.h b/libavformat/url.h index 45bf8c9397..ad0f35de79 100644 --- a/libavformat/url.h +++ b/libavformat/url.h @@ -86,4 +86,20 @@ int ffurl_read_complete(URLContext *h, unsigned char *buf, int size); */ int ffurl_write(URLContext *h, const unsigned char *buf, int size); +/** + * Change the position that will be used by the next read/write + * operation on the resource accessed by h. + * + * @param pos specifies the new position to set + * @param whence specifies how pos should be interpreted, it must be + * one of SEEK_SET (seek from the beginning), SEEK_CUR (seek from the + * current position), SEEK_END (seek from the end), or AVSEEK_SIZE + * (return the filesize of the requested resource, pos is ignored). + * @return a negative value corresponding to an AVERROR code in case + * of failure, or the resulting file position, measured in bytes from + * the beginning of the file. You can use this feature together with + * SEEK_CUR to read the current file position. + */ +int64_t ffurl_seek(URLContext *h, int64_t pos, int whence); + #endif //AVFORMAT_URL_H