From f90aeade4fcb5cec6884833442ae1111fcf027e9 Mon Sep 17 00:00:00 2001 From: Dragos Oancea <dragos@signalwire.com> Date: Thu, 26 Jan 2023 20:14:35 +0200 Subject: [PATCH] [core] Opus RTP timestamp: adding an exception on RTP session creation. https://www.rfc-editor.org/rfc/rfc7587.html "The RTP timestamp is incremented with a 48000 Hz clock rate for all modes of Opus and all sampling rates. The unit for the timestamp is samples per single (mono) channel" Follow up: 50f57f85732b0d5a58a39f3fca7b654f894b0c9d, ccbef9e0c7e31c410ce08b5276c3e2e5a2f69883 . --- src/switch_core_media.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/switch_core_media.c b/src/switch_core_media.c index c6ed02cfe1..8ed496bda7 100644 --- a/src/switch_core_media.c +++ b/src/switch_core_media.c @@ -8724,7 +8724,8 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi a_engine->cur_payload_map->remote_sdp_ip, a_engine->cur_payload_map->remote_sdp_port, a_engine->cur_payload_map->pt, - a_engine->read_impl.samples_per_packet, + strcasecmp("opus", a_engine->read_impl.iananame) ? a_engine->read_impl.samples_per_packet : + a_engine->read_impl.samples_per_second * (a_engine->read_impl.microseconds_per_packet / 1000) / 1000, a_engine->cur_payload_map->codec_ms * 1000, flags, timer_name, &err, switch_core_session_get_pool(session), 0, 0);