From bfd089516ad8a39a9d0d175d77c06f06be87c257 Mon Sep 17 00:00:00 2001
From: Marvin W <git@larma.de>
Date: Sat, 5 Feb 2022 23:56:55 +0100
Subject: RTP: Add support for G.722

---
 plugins/rtp/src/codec_util.vala |  4 ++++
 plugins/rtp/src/module.vala     | 12 +++++++-----
 2 files changed, 11 insertions(+), 5 deletions(-)

(limited to 'plugins')

diff --git a/plugins/rtp/src/codec_util.vala b/plugins/rtp/src/codec_util.vala
index 51b37e31..443baa7e 100644
--- a/plugins/rtp/src/codec_util.vala
+++ b/plugins/rtp/src/codec_util.vala
@@ -91,6 +91,8 @@ public class Dino.Plugins.Rtp.CodecUtil {
                     return new string[] {"alawenc"};
                 case "pcmu":
                     return new string[] {"mulawenc"};
+                case "g722":
+                    return new string[] {"avenc_g722"};
             }
         } else if (media == "video") {
             switch (codec) {
@@ -117,6 +119,8 @@ public class Dino.Plugins.Rtp.CodecUtil {
                     return new string[] {"alawdec"};
                 case "pcmu":
                     return new string[] {"mulawdec"};
+                case "g722":
+                    return new string[] {"avdec_g722"};
             }
         } else if (media == "video") {
             switch (codec) {
diff --git a/plugins/rtp/src/module.vala b/plugins/rtp/src/module.vala
index 4f48b6c4..c78fb274 100644
--- a/plugins/rtp/src/module.vala
+++ b/plugins/rtp/src/module.vala
@@ -131,17 +131,19 @@ public class Dino.Plugins.Rtp.Module : JingleRtp.Module {
     public override async Gee.List<JingleRtp.PayloadType> get_supported_payloads(string media) {
         Gee.List<JingleRtp.PayloadType> list = new ArrayList<JingleRtp.PayloadType>(JingleRtp.PayloadType.equals_func);
         if (media == "audio") {
-            var opus = new JingleRtp.PayloadType() { channels = 1, clockrate = 48000, name = "opus", id = 99 };
+            var opus = new JingleRtp.PayloadType() { channels = 1, clockrate = 48000, name = "opus", id = 111 };
             opus.parameters["useinbandfec"] = "1";
-            var speex32 = new JingleRtp.PayloadType() { channels = 1, clockrate = 32000, name = "speex", id = 100 };
-            var speex16 = new JingleRtp.PayloadType() { channels = 1, clockrate = 16000, name = "speex", id = 101 };
-            var speex8 = new JingleRtp.PayloadType() { channels = 1, clockrate = 8000, name = "speex", id = 102 };
+            var speex32 = new JingleRtp.PayloadType() { channels = 1, clockrate = 32000, name = "speex", id = 112 };
+            var speex16 = new JingleRtp.PayloadType() { channels = 1, clockrate = 16000, name = "speex", id = 113 };
+            var speex8 = new JingleRtp.PayloadType() { channels = 1, clockrate = 8000, name = "speex", id = 114 };
+            var g722 = new JingleRtp.PayloadType() { channels = 1, clockrate = 8000, name = "G722", id = 9 };
             var pcmu = new JingleRtp.PayloadType() { channels = 1, clockrate = 8000, name = "PCMU", id = 0 };
             var pcma = new JingleRtp.PayloadType() { channels = 1, clockrate = 8000, name = "PCMA", id = 8 };
             yield add_if_supported(list, media, opus);
             yield add_if_supported(list, media, speex32);
             yield add_if_supported(list, media, speex16);
             yield add_if_supported(list, media, speex8);
+            yield add_if_supported(list, media, g722);
             yield add_if_supported(list, media, pcmu);
             yield add_if_supported(list, media, pcma);
         } else if (media == "video") {
@@ -234,4 +236,4 @@ public class Dino.Plugins.Rtp.Module : JingleRtp.Module {
         Crypto.randomize(key_and_salt);
         return remote.rekey(key_and_salt);
     }
-}
\ No newline at end of file
+}
-- 
cgit v1.2.3-70-g09d2