diff options
author | martinp <martinp@f38db490-d61c-443f-a65b-d21fe96a405b> | 2003-08-28 20:02:10 +0000 |
---|---|---|
committer | martinp <martinp@f38db490-d61c-443f-a65b-d21fe96a405b> | 2003-08-28 20:02:10 +0000 |
commit | 0f7540708770a2ddd4c5afcb057e9ab89e658d3b (patch) | |
tree | 457a4a3e8dec7fcff81b0a750356704758734e0c /formats/format_g729.c | |
parent | a5c52defec739c228fbc6e9c9bbfd79bbf57c04e (diff) |
Fix synchronization of recorded files when using Monitor application
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1446 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'formats/format_g729.c')
-rwxr-xr-x | formats/format_g729.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/formats/format_g729.c b/formats/format_g729.c index b35ff966f..23a3c5a6d 100755 --- a/formats/format_g729.c +++ b/formats/format_g729.c @@ -174,14 +174,16 @@ static int g729_seek(struct ast_filestream *fs, long sample_offset, int whence) max = lseek(fs->fd, 0, SEEK_END); bytes = 20 * (sample_offset / 160); - if(whence == SEEK_SET) + if (whence == SEEK_SET) offset = bytes; - if(whence == SEEK_CUR) + else if (whence == SEEK_CUR || whence == SEEK_FORCECUR) offset = cur + bytes; - if(whence == SEEK_END) + else if (whence == SEEK_END) offset = max - bytes; - offset = (offset > max)?max:offset; - offset = (offset < min)?min:offset; + if (whence != SEEK_FORCECUR) { + offset = (offset > max)?max:offset; + offset = (offset < min)?min:offset; + } if (lseek(fs->fd, offset, SEEK_SET) < 0) return -1; return 0; |