Conversations
Conversations copied to clipboard
REGRESSION: audio codec support in ch.threema:webrtc-android
Using upstream WebRTC:
<description xmlns="urn:xmpp:jingle:apps:rtp:1" media="audio">
<payload-type clockrate="48000" channels="2" id="111" name="opus">
<parameter value="10" name="minptime"/>
<parameter value="1" name="useinbandfec"/>
<rtcp-fb xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0" type="transport-cc"/>
</payload-type>
<payload-type clockrate="48000" channels="2" id="63" name="red"/>
<payload-type id="103" clockrate="16000" name="ISAC"/>
<payload-type id="104" clockrate="32000" name="ISAC"/>
<payload-type id="9" clockrate="8000" name="G722"/>
<payload-type id="102" clockrate="8000" name="ILBC"/>
<payload-type id="0" clockrate="8000" name="PCMU"/>
<payload-type id="8" clockrate="8000" name="PCMA"/>
<payload-type id="106" clockrate="32000" name="CN"/>
<payload-type id="105" clockrate="16000" name="CN"/>
<payload-type id="13" clockrate="8000" name="CN"/>
<payload-type id="110" clockrate="48000" name="telephone-event"/>
<payload-type id="112" clockrate="32000" name="telephone-event"/>
<payload-type id="113" clockrate="16000" name="telephone-event"/>
<payload-type id="126" clockrate="8000" name="telephone-event"/>
<rtp-hdrext xmlns="urn:xmpp:jingle:apps:rtp:rtp-hdrext:0" uri="urn:ietf:params:rtp-hdrext:ssrc-audio-level" id="1"/>
<rtp-hdrext xmlns="urn:xmpp:jingle:apps:rtp:rtp-hdrext:0" uri="http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time" id="2"/>
<rtp-hdrext xmlns="urn:xmpp:jingle:apps:rtp:rtp-hdrext:0" uri="http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01" id="3"/>
<rtp-hdrext xmlns="urn:xmpp:jingle:apps:rtp:rtp-hdrext:0" uri="urn:ietf:params:rtp-hdrext:sdes:mid" id="4"/>
<extmap-allow-mixed xmlns="urn:xmpp:jingle:apps:rtp:rtp-hdrext:0"/>
<source xmlns="urn:xmpp:jingle:apps:rtp:ssma:0" ssrc="3162795796">
<parameter value="l1xfh9IliR6Fgp6W" name="cname"/>
<parameter value="- my-audio-track" name="msid"/>
<parameter value="-" name="mslabel"/>
<parameter value="my-audio-track" name="label"/>
</source>
<rtcp-mux/>
</description>
With the threema build:
<description xmlns="urn:xmpp:jingle:apps:rtp:1" media="audio">
<payload-type clockrate="48000" channels="2" id="96" name="opus">
<parameter value="1" name="cbr"/>
<parameter value="10" name="minptime"/>
<parameter value="1" name="useinbandfec"/>
<rtcp-fb xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0" type="transport-cc"/>
</payload-type>
<payload-type clockrate="48000" channels="2" id="97" name="red"/>
<rtp-hdrext xmlns="urn:xmpp:jingle:apps:rtp:rtp-hdrext:0" uri="urn:ietf:params:rtp-hdrext:ssrc-audio-level" id="1"/>
<rtp-hdrext xmlns="urn:xmpp:jingle:apps:rtp:rtp-hdrext:0" uri="http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time" id="2"/>
<rtp-hdrext xmlns="urn:xmpp:jingle:apps:rtp:rtp-hdrext:0" uri="http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01" id="3"/>
<rtp-hdrext xmlns="urn:xmpp:jingle:apps:rtp:rtp-hdrext:0" uri="urn:ietf:params:rtp-hdrext:sdes:mid" id="4"/>
<extmap-allow-mixed xmlns="urn:xmpp:jingle:apps:rtp:rtp-hdrext:0"/>
<source xmlns="urn:xmpp:jingle:apps:rtp:ssma:0" ssrc="2545312963">
<parameter value="F0OYtOf/xWG796Pp" name="cname"/>
<parameter value="- my-audio-track" name="msid"/>
<parameter value="-" name="mslabel"/>
<parameter value="my-audio-track" name="label"/>
</source>
<rtcp-mux/>
</description>
As you can see, support for G722, PCMU, and PCMA are all dropped (as is telephone-event support, relevant for https://github.com/iNPUTmice/Conversations/pull/4214)
Ref: https://github.com/threema-ch/webrtc-build-docker/tree/master/patches
Feel free to fork it - building with it is easy. You're welcome! :slightly_smiling_face:
@lgrahl it's not about being able to build
See https://gitlab.com/fdroid/fdroiddata/-/issues/2064
Well, as @saghul already said, having a standard WebRTC library somewhere on Maven could be helpful to some but those who are more involved do apply special configurations and/or custom patches. And that probably led to the status quo where no one is maintaining the go-to Maven WebRTC repo.
Does this break calling to and from JMP or just the dialtone?
I've asked:
the telephony bridge thing jmp uses does not support better codecs or resampling?
Answer:
no, we don't run a live transcoder on all calls at this time. That sounds like a good way to spend a lot of money on CPU The DTMF regression would be fatal on its own though, even if we supported opus
Does this break calling to and from JMP or just the dialtone?
Yes, breaks all calls to/from JMP.