summaryrefslogtreecommitdiff
path: root/main/app.c
diff options
context:
space:
mode:
authorTilghman Lesher <tilghman@meg.abyt.es>2009-03-02 23:10:18 +0000
committerTilghman Lesher <tilghman@meg.abyt.es>2009-03-02 23:10:18 +0000
commit3252cd2e5b59c00a9e79f21d79779ce4ee1f568e (patch)
tree93bb29a12055762f475b9a7a0ee57e70498f3158 /main/app.c
parentd6652e97608126cd4f87e29bc9bd12546dec76d4 (diff)
Merged revisions 179468 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r179468 | tilghman | 2009-03-02 17:09:01 -0600 (Mon, 02 Mar 2009) | 10 lines When ending a recording with silence detection, remember to reduce the duration. The end of the recording is correspondingly trimmed, but the duration was not trimmed by the number of seconds trimmed, so the saved duration was necessarily longer than the actual soundfile duration. (closes issue #14406) Reported by: sasargen Patches: 20090226__bug14406.diff.txt uploaded by tilghman (license 14) Tested by: sasargen ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@179469 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/app.c')
-rw-r--r--main/app.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/main/app.c b/main/app.c
index cf48b2f1f..820434435 100644
--- a/main/app.c
+++ b/main/app.c
@@ -840,8 +840,16 @@ static int __ast_play_and_record(struct ast_channel *chan, const char *playfile,
* off the recording. However, if we ended with '#', we don't want
* to trim ANY part of the recording.
*/
- if (res > 0 && totalsilence)
+ if (res > 0 && totalsilence) {
ast_stream_rewind(others[x], totalsilence - 200);
+ /* Reduce duration by a corresponding amount */
+ if (x == 0 && *duration) {
+ *duration -= (totalsilence - 200) / 1000;
+ if (*duration < 0) {
+ *duration = 0;
+ }
+ }
+ }
ast_truncstream(others[x]);
ast_closestream(others[x]);
}