|
|
|
|
@ -735,15 +735,13 @@ static const char *janus_videoroom_configure(struct websocket_message *wm, struc
|
|
|
|
|
json_builder_set_member_name(builder, "configured");
|
|
|
|
|
json_builder_add_string_value(builder, "ok");
|
|
|
|
|
|
|
|
|
|
json_builder_set_member_name(builder, "streams");
|
|
|
|
|
json_builder_begin_array(builder);
|
|
|
|
|
|
|
|
|
|
const char *a_codec = NULL, *v_codec = NULL;
|
|
|
|
|
|
|
|
|
|
for (GList *l = ml->medias.head; l; l = l->next) {
|
|
|
|
|
struct call_media *media = l->data;
|
|
|
|
|
const char *ent = NULL;
|
|
|
|
|
if (media->type_id == MT_AUDIO)
|
|
|
|
|
ent = "audio_codec";
|
|
|
|
|
else if (media->type_id == MT_VIDEO)
|
|
|
|
|
ent = "video_codec";
|
|
|
|
|
else
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
const char *codec = NULL;
|
|
|
|
|
for (GList *k = media->codecs.codec_prefs.head; k; k = k->next) {
|
|
|
|
|
@ -752,13 +750,46 @@ static const char *janus_videoroom_configure(struct websocket_message *wm, struc
|
|
|
|
|
// XXX check codec support?
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
if (!codec)
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
json_builder_set_member_name(builder, ent);
|
|
|
|
|
json_builder_add_string_value(builder, codec);
|
|
|
|
|
json_builder_begin_object(builder);
|
|
|
|
|
|
|
|
|
|
json_builder_set_member_name(builder, "type");
|
|
|
|
|
json_builder_add_string_value(builder, media->type.s);
|
|
|
|
|
json_builder_set_member_name(builder, "mindex");
|
|
|
|
|
json_builder_add_int_value(builder, media->index - 1);
|
|
|
|
|
json_builder_set_member_name(builder, "mid");
|
|
|
|
|
if (media->media_id.s)
|
|
|
|
|
json_builder_add_string_value(builder, media->media_id.s);
|
|
|
|
|
else
|
|
|
|
|
json_builder_add_null_value(builder);
|
|
|
|
|
json_builder_set_member_name(builder, "codec");
|
|
|
|
|
if (codec)
|
|
|
|
|
json_builder_add_string_value(builder, codec);
|
|
|
|
|
else
|
|
|
|
|
json_builder_add_null_value(builder);
|
|
|
|
|
|
|
|
|
|
json_builder_end_object(builder);
|
|
|
|
|
|
|
|
|
|
if (media->type_id == MT_AUDIO)
|
|
|
|
|
a_codec = codec;
|
|
|
|
|
else if (media->type_id == MT_VIDEO)
|
|
|
|
|
v_codec = codec;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
json_builder_end_array(builder);
|
|
|
|
|
|
|
|
|
|
json_builder_set_member_name(builder, "audio_codec");
|
|
|
|
|
if (a_codec)
|
|
|
|
|
json_builder_add_string_value(builder, a_codec);
|
|
|
|
|
else
|
|
|
|
|
json_builder_add_null_value(builder);
|
|
|
|
|
|
|
|
|
|
json_builder_set_member_name(builder, "video_codec");
|
|
|
|
|
if (v_codec)
|
|
|
|
|
json_builder_add_string_value(builder, v_codec);
|
|
|
|
|
else
|
|
|
|
|
json_builder_add_null_value(builder);
|
|
|
|
|
|
|
|
|
|
janus_notify_publishers(wm, room_id, handle->id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|