diff options
author | Martin Pycko <martinp@digium.com> | 2003-08-28 20:02:10 +0000 |
---|---|---|
committer | Martin Pycko <martinp@digium.com> | 2003-08-28 20:02:10 +0000 |
commit | f14004abfd974a328736442971caee22053cfeec (patch) | |
tree | 457a4a3e8dec7fcff81b0a750356704758734e0c /formats/format_wav.c | |
parent | 3ee27a8a8992dce78c0bf062d32ef7034d98b555 (diff) |
Fix synchronization of recorded files when using Monitor application
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1446 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'formats/format_wav.c')
-rwxr-xr-x | formats/format_wav.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/formats/format_wav.c b/formats/format_wav.c index 3771df354..2a549b710 100755 --- a/formats/format_wav.c +++ b/formats/format_wav.c @@ -499,14 +499,16 @@ static int wav_seek(struct ast_filestream *fs, long sample_offset, int whence) min = 44; /* wav header is 44 bytes */ cur = lseek(fs->fd, 0, SEEK_CUR); max = lseek(fs->fd, 0, SEEK_END); - if(whence == SEEK_SET) + if (whence == SEEK_SET) offset = samples + min; - if(whence == SEEK_CUR) + else if (whence == SEEK_CUR || whence == SEEK_FORCECUR) offset = samples + cur; - if(whence == SEEK_END) - offset = max - samples; - offset = (offset > max)?max:offset; - offset = (offset < min)?min:offset; + else if (whence == SEEK_END) + offset = max - samples; + if (whence != SEEK_FORCECUR) { + offset = (offset > max)?max:offset; + offset = (offset < min)?min:offset; + } return lseek(fs->fd,offset,SEEK_SET); } |