From f192a6c4290a2da79ae1479397b0f58d444e8587 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Wed, 31 Aug 2011 01:00:01 +0200 Subject: rtp: Add 5.15kb RTP mode... 15 byte per sample for 5.15kb mode --- openbsc/src/libmgcp/rtp_helper.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'openbsc/src') diff --git a/openbsc/src/libmgcp/rtp_helper.c b/openbsc/src/libmgcp/rtp_helper.c index d1c356cd0..ad6dc0633 100644 --- a/openbsc/src/libmgcp/rtp_helper.c +++ b/openbsc/src/libmgcp/rtp_helper.c @@ -89,8 +89,12 @@ static int guess_amr_size(const uint8_t *_data) { const struct amr_toc *toc; toc = (struct amr_toc *) _data; + /* SID */ if (toc->ft_bits == 8 && toc->f_bit == 0 && toc->q_bit == 1) return 7; + /* 5.15 */ + if (toc->ft_bits == 1 && toc->f_bit == 0 && toc->q_bit == 1) + return 15; return 17; } @@ -317,9 +321,9 @@ int rtp_compress(struct mgcp_rtp_compr_state *state, struct msgb *msg, } payload_len = msgb_l2len(rtp) - sizeof(struct rtp_hdr); - if (payload_len != 7 && payload_len != 17) { + if (payload_len != 7 && payload_len != 17 && payload_len != 15) { LOGP(DMGCP, LOGL_ERROR, - "We assume every payload is 17 or 7 byte: %d\n", + "We assume every payload is 17,7,5 byte: %d\n", msgb_l2len(rtp) - sizeof(struct rtp_hdr)); llist_del(&rtp->list); talloc_free(rtp); -- cgit v1.2.3