FFMS2: Add a missing function the updated matroska parser expects
Originally committed to SVN as r2890.
This commit is contained in:
parent
35cea05304
commit
94cf1e4c22
2 changed files with 19 additions and 7 deletions
|
@ -98,6 +98,15 @@ int StdIoProgress(StdIoStream *st, ulonglong cur, ulonglong max) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
longlong StdIoGetFileSize(StdIoStream *st) {
|
||||||
|
longlong epos = 0;
|
||||||
|
longlong cpos = _ftelli64(st->fp);
|
||||||
|
_fseeki64(st->fp, 0, SEEK_END);
|
||||||
|
epos = _ftelli64(st->fp);
|
||||||
|
_fseeki64(st->fp, cpos, SEEK_SET);
|
||||||
|
return epos;
|
||||||
|
}
|
||||||
|
|
||||||
void InitStdIoStream(StdIoStream *st) {
|
void InitStdIoStream(StdIoStream *st) {
|
||||||
memset(st,0,sizeof(st));
|
memset(st,0,sizeof(st));
|
||||||
st->base.read = StdIoRead;
|
st->base.read = StdIoRead;
|
||||||
|
@ -108,4 +117,5 @@ void InitStdIoStream(StdIoStream *st) {
|
||||||
st->base.memrealloc = StdIoRealloc;
|
st->base.memrealloc = StdIoRealloc;
|
||||||
st->base.memfree = StdIoFree;
|
st->base.memfree = StdIoFree;
|
||||||
st->base.progress = StdIoProgress;
|
st->base.progress = StdIoProgress;
|
||||||
|
st->base.getfilesize = StdIoGetFileSize;
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,9 +36,9 @@
|
||||||
* source file
|
* source file
|
||||||
*/
|
*/
|
||||||
struct StdIoStream {
|
struct StdIoStream {
|
||||||
struct InputStream base;
|
struct InputStream base;
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
int error;
|
int error;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct StdIoStream StdIoStream;
|
typedef struct StdIoStream StdIoStream;
|
||||||
|
@ -64,16 +64,18 @@ unsigned StdIoGetCacheSize(StdIoStream *st);
|
||||||
const char *StdIoGetLastError(StdIoStream *st);
|
const char *StdIoGetLastError(StdIoStream *st);
|
||||||
|
|
||||||
/* memory allocation, this is done via stdlib */
|
/* memory allocation, this is done via stdlib */
|
||||||
void *StdIoMalloc(StdIoStream *st, size_t size);
|
void *StdIoMalloc(StdIoStream *st, size_t size);
|
||||||
|
|
||||||
void *StdIoRealloc(StdIoStream *st, void *mem, size_t size);
|
void *StdIoRealloc(StdIoStream *st, void *mem, size_t size);
|
||||||
|
|
||||||
void StdIoFree(StdIoStream *st, void *mem);
|
void StdIoFree(StdIoStream *st, void *mem);
|
||||||
|
|
||||||
/* progress report handler for lengthy operations
|
/* progress report handler for lengthy operations
|
||||||
* returns 0 to abort operation, nonzero to continue
|
* returns 0 to abort operation, nonzero to continue
|
||||||
*/
|
*/
|
||||||
int StdIoProgress(StdIoStream *st, ulonglong cur, ulonglong max);
|
int StdIoProgress(StdIoStream *st, ulonglong cur, ulonglong max);
|
||||||
|
|
||||||
|
longlong StdIoGetFileSize(StdIoStream *st);
|
||||||
|
|
||||||
void InitStdIoStream(StdIoStream *st);
|
void InitStdIoStream(StdIoStream *st);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue