aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorqwell <qwell@f38db490-d61c-443f-a65b-d21fe96a405b>2008-03-28 16:19:56 +0000
committerqwell <qwell@f38db490-d61c-443f-a65b-d21fe96a405b>2008-03-28 16:19:56 +0000
commit236e6fcb18262fdddd8ed776e489b64ac0731c38 (patch)
treec54027cf22618d230491e6938a43c2f674f1cebc
parent3bbdc8e06c23f62842b31d2b190c8ac9dd2d0c92 (diff)
The file size of WAV49 does not need to be an even number.
(closes issue #12128) Reported by: mdu113 Patches: 12128-noevenlength.diff uploaded by qwell (license 4) Tested by: qwell, mdu113 git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@111658 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--formats/format_wav_gsm.c14
1 files changed, 2 insertions, 12 deletions
diff --git a/formats/format_wav_gsm.c b/formats/format_wav_gsm.c
index 727f9cf22..1655cbd21 100644
--- a/formats/format_wav_gsm.c
+++ b/formats/format_wav_gsm.c
@@ -227,8 +227,8 @@ static int update_header(FILE *f)
/* in a gsm WAV, data starts 60 bytes in */
bytes = end - MSGSM_DATA_OFFSET;
samples = htoll(bytes / MSGSM_FRAME_SIZE * MSGSM_SAMPLES);
- datalen = htoll((bytes + 1) & ~0x1);
- filelen = htoll(MSGSM_DATA_OFFSET - 8 + ((bytes + 1) & ~0x1));
+ datalen = htoll(bytes);
+ filelen = htoll(MSGSM_DATA_OFFSET - 8 + bytes);
if (cur < 0) {
ast_log(LOG_WARNING, "Unable to find our position\n");
return -1;
@@ -402,15 +402,6 @@ static int wav_rewrite(struct ast_filestream *s, const char *comment)
return 0;
}
-static void wav_close(struct ast_filestream *s)
-{
- char zero = 0;
- /* Pad to even length */
- fseek(s->f, 0, SEEK_END);
- if (ftello(s->f) & 0x1)
- fwrite(&zero, 1, 1, s->f);
-}
-
static struct ast_frame *wav_read(struct ast_filestream *s, int *whennext)
{
/* Send a frame from the file to the appropriate channel */
@@ -552,7 +543,6 @@ static const struct ast_format wav49_f = {
.trunc = wav_trunc,
.tell = wav_tell,
.read = wav_read,
- .close = wav_close,
.buf_size = 2*GSM_FRAME_SIZE + AST_FRIENDLY_OFFSET,
.desc_size = sizeof(struct wavg_desc),
};