diff --git a/daemon/codec.c b/daemon/codec.c index fc9a636b8..1469cc6e8 100644 --- a/daemon/codec.c +++ b/daemon/codec.c @@ -651,7 +651,6 @@ static int __packet_encoded(encoder_t *enc, void *u1, void *u2) { while (1) { // figure out how big of a buffer we need unsigned int payload_len = MAX(enc->avpkt.size, ch->bytes_per_packet); - payload_len += 16; // extra room for certain protocols, e.g. AMR framing unsigned int pkt_len = sizeof(struct rtp_header) + payload_len + RTP_BUFFER_TAIL_ROOM; // prepare our buffers char *buf = malloc(pkt_len); diff --git a/lib/codeclib.c b/lib/codeclib.c index 7e48776ec..aade19483 100644 --- a/lib/codeclib.c +++ b/lib/codeclib.c @@ -312,6 +312,7 @@ static codec_def_t __codec_defs[] = { .default_ptime = 20, .default_fmtp = "octet-align=1", .packetizer = packetizer_amr, + .bits_per_sample = 2, // max is 12200 / 8000 = 1.525 bits per sample, rounded up .media_type = MT_AUDIO, .codec_type = &codec_type_amr, .set_enc_options = amr_set_enc_options, @@ -327,6 +328,7 @@ static codec_def_t __codec_defs[] = { .default_ptime = 20, .default_fmtp = "octet-align=1", .packetizer = packetizer_amr, + .bits_per_sample = 2, // max is 23850 / 16000 = 1.490625 bits per sample, rounded up .media_type = MT_AUDIO, .codec_type = &codec_type_amr, .set_enc_options = amr_set_enc_options,