summaryrefslogtreecommitdiff
path: root/codecs
diff options
context:
space:
mode:
authorDavid Vossel <dvossel@digium.com>2011-04-20 16:37:15 +0000
committerDavid Vossel <dvossel@digium.com>2011-04-20 16:37:15 +0000
commite3222d81113bd22e01e167f3a38c71249c7387d0 (patch)
tree7bb5e405db22b04aaf4ba2a88c1be21ade68a350 /codecs
parent632cd26411022bc1fc6a6881657577a5d7c14321 (diff)
Fixes error with frame datalen being calculated from samples when this is not allwaya accurate.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@314415 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'codecs')
-rw-r--r--codecs/codec_resample.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/codecs/codec_resample.c b/codecs/codec_resample.c
index ab5f57e49..66ef584bd 100644
--- a/codecs/codec_resample.c
+++ b/codecs/codec_resample.c
@@ -71,7 +71,12 @@ static int resamp_framein(struct ast_trans_pvt *pvt, struct ast_frame *f)
{
SpeexResamplerState *resamp_pvt = pvt->pvt;
unsigned int out_samples = (OUTBUF_SIZE / sizeof(int16_t)) - pvt->samples;
- unsigned int in_samples = f->samples;
+ unsigned int in_samples;
+
+ if (!f->datalen) {
+ return -1;
+ }
+ in_samples = f->datalen / 2;
speex_resampler_process_int(resamp_pvt,
0,