From 06d5e7023a2b5b2591cb59c2ecf7662ae9606e26 Mon Sep 17 00:00:00 2001 From: drowe67 Date: Thu, 25 Feb 2016 19:44:12 +0000 Subject: [PATCH] Jereon - small bug in the new freedv_codecrx() function git-svn-id: https://svn.code.sf.net/p/freetel/code@2709 01035d8c-6547-0410-b346-abe4f91aad63 --- codec2-dev/src/freedv_api.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/codec2-dev/src/freedv_api.c b/codec2-dev/src/freedv_api.c index d1156467..46bb466a 100644 --- a/codec2-dev/src/freedv_api.c +++ b/codec2-dev/src/freedv_api.c @@ -1187,12 +1187,13 @@ int freedv_codecrx(struct freedv *f, unsigned char *packed_codec_bits, short dem } #endif - if (valid == 0) { - int bytes_per_frame; - bytes_per_frame = (f->n_codec_bits + 7) / 8; + if (valid == 1) { + int bits_per_codec_frame = codec2_bits_per_frame(f->codec2); + int bytes_per_codec_frame = (bits_per_codec_frame + 7) / 8; + int codec_frames = f->n_codec_bits / bits_per_codec_frame; - memcpy(packed_codec_bits, f->packed_codec_bits, bytes_per_frame); - ret = bytes_per_frame; + memcpy(packed_codec_bits, f->packed_codec_bits, bytes_per_codec_frame * codec_frames); + ret = bytes_per_codec_frame * codec_frames; } return ret; -- 2.25.1