diff options
author | Diego 'Flameeyes' Pettenò <flameeyes@gmail.com> | 2007-04-03 01:18:24 +0200 |
---|---|---|
committer | Diego 'Flameeyes' Pettenò <flameeyes@gmail.com> | 2007-04-03 01:18:24 +0200 |
commit | fb09531720a4aa2dfa97e5a9a246a453b6278fd2 (patch) | |
tree | 61525c3a8ddb419d3838a26e488fc3659079bbcd /contrib/ffmpeg/libavformat/avio.c | |
parent | 294d01046724e28b7193bcb65bf2a0391b0135b6 (diff) | |
download | xine-lib-fb09531720a4aa2dfa97e5a9a246a453b6278fd2.tar.gz xine-lib-fb09531720a4aa2dfa97e5a9a246a453b6278fd2.tar.bz2 |
Sync with a more recent version of FFmpeg.
Diffstat (limited to 'contrib/ffmpeg/libavformat/avio.c')
-rw-r--r-- | contrib/ffmpeg/libavformat/avio.c | 36 |
1 files changed, 15 insertions, 21 deletions
diff --git a/contrib/ffmpeg/libavformat/avio.c b/contrib/ffmpeg/libavformat/avio.c index a2b8a8325..a22bd22f3 100644 --- a/contrib/ffmpeg/libavformat/avio.c +++ b/contrib/ffmpeg/libavformat/avio.c @@ -67,14 +67,17 @@ int url_open(URLContext **puc, const char *filename, int flags) goto found; up = up->next; } - err = -ENOENT; + err = AVERROR(ENOENT); goto fail; found: - uc = av_malloc(sizeof(URLContext) + strlen(filename)); + uc = av_malloc(sizeof(URLContext) + strlen(filename) + 1); if (!uc) { - err = -ENOMEM; + err = AVERROR(ENOMEM); goto fail; } +#if LIBAVFORMAT_VERSION_INT >= (52<<16) + uc->filename = (char *) &uc[1]; +#endif strcpy(uc->filename, filename); uc->prot = up; uc->flags = flags; @@ -121,7 +124,7 @@ offset_t url_seek(URLContext *h, offset_t pos, int whence) offset_t ret; if (!h->prot->url_seek) - return -EPIPE; + return AVERROR(EPIPE); ret = h->prot->url_seek(h, pos, whence); return ret; } @@ -148,20 +151,17 @@ offset_t url_filesize(URLContext *h) { offset_t pos, size; - pos = url_seek(h, 0, SEEK_CUR); - size = url_seek(h, -1, SEEK_END)+1; - url_seek(h, pos, SEEK_SET); + size= url_seek(h, 0, AVSEEK_SIZE); + if(size<0){ + pos = url_seek(h, 0, SEEK_CUR); + if ((size = url_seek(h, -1, SEEK_END)) < 0) + return size; + size++; + url_seek(h, pos, SEEK_SET); + } return size; } -/* - * Return the maximum packet size associated to packetized file - * handle. If the file is not packetized (stream like http or file on - * disk), then 0 is returned. - * - * @param h file handle - * @return maximum packet size in bytes - */ int url_get_max_packet_size(URLContext *h) { return h->max_packet_size; @@ -178,12 +178,6 @@ static int default_interrupt_cb(void) return 0; } -/** - * The callback is called in blocking functions to test regulary if - * asynchronous interruption is needed. -EINTR is returned in this - * case by the interrupted function. 'NULL' means no interrupt - * callback is given. - */ void url_set_interrupt_cb(URLInterruptCB *interrupt_cb) { if (!interrupt_cb) |