aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarvin W <git@larma.de>2022-02-05 23:56:55 +0100
committerMarvin W <git@larma.de>2022-02-06 00:19:26 +0100
commitbfd089516ad8a39a9d0d175d77c06f06be87c257 (patch)
tree57a2cb6facc6b31adcd788748c0a7907f7a85344
parent51dc41463134a07a5768fcd46243f97f8da077bb (diff)
downloaddino-bfd089516ad8a39a9d0d175d77c06f06be87c257.tar.gz
dino-bfd089516ad8a39a9d0d175d77c06f06be87c257.zip
RTP: Add support for G.722
-rw-r--r--plugins/rtp/src/codec_util.vala4
-rw-r--r--plugins/rtp/src/module.vala12
2 files changed, 11 insertions, 5 deletions
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
+}