Skip to content

Commit e296d1a

Browse files
committed
Enforce FEC and DTX settings when configured in VideoRoom instances
1 parent c08c219 commit e296d1a

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/plugins/janus_videoroom.c

+8-8
Original file line numberDiff line numberDiff line change
@@ -3173,9 +3173,9 @@ static void janus_videoroom_create_dummy_publisher(janus_videoroom *room, GHashT
31733173
if(fmtp != NULL && strcmp(fmtp, "none")) {
31743174
/* Parse the fmtp string to see what we support (opus only) */
31753175
if(ps->acodec == JANUS_AUDIOCODEC_OPUS) {
3176-
if(strstr(fmtp, "useinbandfec=1"))
3176+
if(strstr(fmtp, "useinbandfec=1") && room->do_opusfec)
31773177
ps->opusfec = TRUE;
3178-
if(strstr(fmtp, "usedtx=1"))
3178+
if(strstr(fmtp, "usedtx=1") && room->do_opusdtx)
31793179
ps->opusdtx = TRUE;
31803180
if(strstr(fmtp, "stereo=1"))
31813181
ps->opusstereo = TRUE;
@@ -7897,8 +7897,8 @@ static json_t *janus_videoroom_process_synchronous_request(janus_videoroom_sessi
78977897
ps->disabled = TRUE;
78987898
} else {
78997899
ps->opusstereo = json_is_true(json_object_get(s, "stereo"));
7900-
ps->opusfec = json_is_true(json_object_get(s, "fec"));
7901-
ps->opusdtx = json_is_true(json_object_get(s, "dtx"));
7900+
ps->opusfec = json_is_true(json_object_get(s, "fec")) && videoroom->do_opusfec;
7901+
ps->opusdtx = json_is_true(json_object_get(s, "dtx")) && videoroom->do_opusdtx;
79027902
}
79037903
int audio_level_extmap_id = json_integer_value(json_object_get(s, "audiolevel_ext_id"));
79047904
if(audio_level_extmap_id > 0)
@@ -8242,8 +8242,8 @@ static json_t *janus_videoroom_process_synchronous_request(janus_videoroom_sessi
82428242
ps->disabled = TRUE;
82438243
} else {
82448244
ps->opusstereo = json_is_true(json_object_get(s, "stereo"));
8245-
ps->opusfec = json_is_true(json_object_get(s, "fec"));
8246-
ps->opusdtx = json_is_true(json_object_get(s, "dtx"));
8245+
ps->opusfec = json_is_true(json_object_get(s, "fec")) && videoroom->do_opusfec;
8246+
ps->opusdtx = json_is_true(json_object_get(s, "dtx")) && videoroom->do_opusdtx;
82478247
}
82488248
int audio_level_extmap_id = json_integer_value(json_object_get(s, "audiolevel_ext_id"));
82498249
if(audio_level_extmap_id > 0)
@@ -12799,9 +12799,9 @@ static void *janus_videoroom_handler(void *data) {
1279912799
ps->playout_delay_extmap_id == 0 && strstr(a->value, JANUS_RTP_EXTMAP_PLAYOUT_DELAY)) {
1280012800
ps->playout_delay_extmap_id = atoi(a->value);
1280112801
} else if(videoroom->do_opusfec && m->type == JANUS_SDP_AUDIO && !strcasecmp(a->name, "fmtp")) {
12802-
if(strstr(a->value, "useinbandfec=1"))
12802+
if(strstr(a->value, "useinbandfec=1") && videoroom->do_opusfec)
1280312803
ps->opusfec = TRUE;
12804-
if(strstr(a->value, "usedtx=1"))
12804+
if(strstr(a->value, "usedtx=1") && videoroom->do_opusdtx)
1280512805
ps->opusdtx = TRUE;
1280612806
if(strstr(a->value, "stereo=1"))
1280712807
ps->opusstereo = TRUE;

0 commit comments

Comments
 (0)