Bug 5984 - Convert file offsets to 64 bit

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@10579 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Tilghman Lesher
2006-02-20 23:35:12 +00:00
parent 67e55d4d67
commit aa20c556f7
17 changed files with 131 additions and 132 deletions

View File

@@ -195,14 +195,14 @@ static int gsm_write(struct ast_filestream *fs, struct ast_frame *f)
return 0;
}
static int gsm_seek(struct ast_filestream *fs, long sample_offset, int whence)
static int gsm_seek(struct ast_filestream *fs, off_t sample_offset, int whence)
{
off_t offset=0,min,cur,max,distance;
min = 0;
cur = ftell(fs->f);
fseek(fs->f, 0, SEEK_END);
max = ftell(fs->f);
cur = ftello(fs->f);
fseeko(fs->f, 0, SEEK_END);
max = ftello(fs->f);
/* have to fudge to frame here, so not fully to sample */
distance = (sample_offset/160) * 33;
if(whence == SEEK_SET)
@@ -217,23 +217,23 @@ static int gsm_seek(struct ast_filestream *fs, long sample_offset, int whence)
offset = (offset > max)?max:offset;
} else if (offset > max) {
int i;
fseek(fs->f, 0, SEEK_END);
fseeko(fs->f, 0, SEEK_END);
for (i=0; i< (offset - max) / 33; i++) {
fwrite(gsm_silence, 1, 33, fs->f);
}
}
return fseek(fs->f, offset, SEEK_SET);
return fseeko(fs->f, offset, SEEK_SET);
}
static int gsm_trunc(struct ast_filestream *fs)
{
return ftruncate(fileno(fs->f), ftell(fs->f));
return ftruncate(fileno(fs->f), ftello(fs->f));
}
static long gsm_tell(struct ast_filestream *fs)
static off_t gsm_tell(struct ast_filestream *fs)
{
off_t offset;
offset = ftell(fs->f);
offset = ftello(fs->f);
return (offset/33)*160;
}