This website works better with JavaScript.
Home
Help
Sign In
falkTX
/
FFmpeg
mirror of
https://github.com/falkTX/FFmpeg.git
Watch
1
Star
0
Fork
0
Code
Issues
0
Releases
338
Wiki
Activity
Browse Source
seekless filesize retrieving support in 7 lines of code, also doesnt break compatibility
Originally committed as revision 7395 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Michael Niedermayer
19 years ago
parent
ecec87afc6
commit
8e287af090
3 changed files
with
8 additions
and
0 deletions
Split View
Diff Options
Show Stats
Download Patch File
Download Diff File
+3
-0
libavformat/avio.c
+2
-0
libavformat/avio.h
+3
-0
libavformat/aviobuf.c
+ 3
- 0
libavformat/avio.c
View File
@@ -148,9 +148,12 @@ offset_t url_filesize(URLContext *h)
{
offset_t pos, size;
size= url_seek(h, 0, AVSEEK_SIZE);
if(size<0){
pos = url_seek(h, 0, SEEK_CUR);
size = url_seek(h, -1, SEEK_END)+1;
url_seek(h, pos, SEEK_SET);
}
return size;
}
+ 2
- 0
libavformat/avio.h
View File
@@ -69,6 +69,8 @@ void url_set_interrupt_cb(URLInterruptCB *interrupt_cb);
/* not implemented */
int url_poll(URLPollEntry *poll_table, int n, int timeout);
#define AVSEEK_SIZE 0x10000
typedef struct URLProtocol {
const char *name;
int (*url_open)(URLContext *h, const char *filename, int flags);
+ 3
- 0
libavformat/aviobuf.c
View File
@@ -170,8 +170,11 @@ offset_t url_fsize(ByteIOContext *s)
if (!s->seek)
return -EPIPE;
size = s->seek(s->opaque, 0, AVSEEK_SIZE);
if(size<0){
size = s->seek(s->opaque, -1, SEEK_END) + 1;
s->seek(s->opaque, s->pos, SEEK_SET);
}
return size;
}
Write
Preview
Loading…
Cancel
Save