diff options
-rw-r--r-- | main/codec.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/main/codec.c b/main/codec.c index c253233bb..d0e63682b 100644 --- a/main/codec.c +++ b/main/codec.c @@ -393,6 +393,11 @@ unsigned int ast_codec_samples_count(struct ast_frame *frame) if (codec->samples_count) { samples = codec->samples_count(frame); + if ((int) samples < 0) { + ast_log(LOG_WARNING, "Codec %s returned invalid number of samples.\n", + ast_format_get_name(frame->subclass.format)); + samples = 0; + } } else { ast_log(LOG_WARNING, "Unable to calculate samples for codec %s\n", ast_format_get_name(frame->subclass.format)); |